Inspiration
Crises happen every day, all over the world. People need help. Environments need cleaning. Infrastructure needs repairing. All this and more.
Recently, Western North Carolina was devastated by Hurricane Helene. This tragedy hit close to home for many North Carolina locals, prompting the desire to help. However, a large percentage of those who want and/or are willing to volunteer don't know how to contribute.
This app can extend beyond crisis situations too. High school students in service clubs have a much easier way to find volunteering opportunities that they are interested in to help their community.
That is why we created VolunTales.
What it does
VolunTales is a centralized volunteering and aid request platform, where users are able to submit help requests for volunteers, goods, and donations. Volunteers can in turn respond to those requests through comments and sign up to help in whatever manner they can. Additionally, the home page displays a plethora of links to help the local community through various external vendors.
How we built it
Our project was built using a client-server architecture using Next.js, a React.js JavaScript framework as the client makes requests to a Node.js server using Express.js and a SQLite database. Our project fully deployed online, utilizing Vercel hosting for the frontend and Fly.io for the backend, including storage volumes to synchronize user data across devices.
Challenges we ran into
One rather interesting issue we came across was on Sunday morning when we realized that our project had not been updating as it should. This was when we realized that we had used up all of the free allotted deployments on Vercel, so we had to figure out a way to work around that issue. We feared that switching to a new repo would obscure our commit history. The solution we ultimately went with saw us creating a new account linked to the original repository. Another thing we struggled with a little bit was trying not to reinvent the wheel. There were a few parts of the project where we could have utilized our tools and resources to be more efficient. For example, we built all our RESTful APIs and SQLite database management from scratch. This included hours of writing code that could have easily been skipped by using a web solution that handles configuration for you, such as MongoDB.
Accomplishments that we're proud of
We're proud of how smoothly everything went for a group of people who have never coded together (and who are of varying levels of experience) before. For two of the four in our group, it was our first year participating in any Hackathon, including minimal if any coding experience. Despite those potential conflicts, we worked really well together as a team: resolving any concerns, respecting our teammates' opinions, and ensuring that everyone was learning something new! Overall, everyone was able to be handed a task whether it was drawing the art, brainstorming ui and features, or integrating the backend.
What we learned
Through this project, we have learned a lot of valuable lessons from our experiences. Everyone on the team had their own main takeaways. While as a group we all learned new technologies, here are some specific examples of what each person learned.
Christopher: Over the course of this project I was able to learn a lot more about creating REST APIs with an express server that interacts with SQLite. By implementing a REST API and database from scratch, I was able to really understand how all parts of the backend work. In particular, I was proud of solving the problem of user authentication through learning about JWT tokens.
Fayaz: My biggest takeaway was navigating the challenges of creating custom REST APIs for a custom server. While I have experience with full stack, I normally use WebSockets, so HTTP requests felt fairly new. Additionally, I learned a lot about team management-- I’ve only ever worked on a Hackathon with Chris before, as a two-person group, so I had to learn to introduce more people and ensure we’re all working together.
Carynne: This was my first time working in a group on a project like this outside of a strictly academic atmosphere (aka for a class assignment or project). I feel like I got a much better sense of what potential careers in this field could be from creating VolunTales.
Huzaifa: This was my first Hackathon so this entire weekend was a learning experience for me. But the biggest takeaway for me was getting to see and experience how a project develops between each stage, from brainstorming and planning to the actual coding and revisions. Rarely is it possible to complete a feature on the first try. So following a trial and error method and giving each other feedback was essential to the completion of this project. Collaboration is key for hackathons. This was a wonderful experience and I look forward to participating again next year!
What's next for VolunTales
For our demo of the project, we used our own location, Raleigh, as the basis for all of our volunteering opportunities. In the future, we would like to incorporate location-specific volunteering for multiple locations, perhaps even globally. Our goal is to create a reliable platform for all people to be able to volunteer in their local communities and request aid from their neighbors when they need it, as well as a common hub resource for users to get connected with volunteer opportunities with the help they need from external vendors.
Log in or sign up for Devpost to join the conversation.