Inspiration

We were inspired to create our Aid App because we knew that during the Great Depression, unemployment and lack of support and resources, or just general misunderstanding of helpful government programs, etc. were some of the biggest problems. Our app simply aims to solve some of those problems.

What it does

Our website was made to help individuals during the Great Depression. The app we made helps people during the Great Depression (and possibly other difficult time periods) in different ways. Probably the most important feature that our site was designed for is job searching. Employers can create jobs easily that prospective employees can quickly find and apply to. This is far from the most original functionality we could have implemented, but would have been revolutionary during the Great Depression. We made sure to implement it in a way that would be most helpful for people during the Great Depression.

Our app provides other functionality as well. For example, with a single click, people can find nearby employment agencies, soup kitchens, and shelters that are shown on a map and as a list view. This way, people can find help as quickly as possible. Our app also provides detailed information on helpful programs, such as the Alphabet Agencies which were created by the government as part of the New Deal to combat the depression.

How we built it

We built our app using a basic structure that separates the frontend (client) from backend (server). Our backend is a Python Flask API with a SQLite database that stores app data, returns job listings, implements basic JWT authentication, and more. This API is consumed by our front end, which we built using Vue.js and the Nuxt.js JavaScript framework. All styling was created using custom CSS and the Tailwind utility framework. We used Leaflet.js for the javascript maps.

Challenges we ran into

The biggest challenge that our team ran into was in trying to coordinate all of our coding efforts together. For instance, oftentimes, what worked on one person’s computer would not work on another’s computer. Perhaps the best example of this was trying to implement CORS into our app so that our API calls would work. In that instance, what had worked on Jason’s computer did not work at all on Benjamin or Brian’s computer. However, using communication tools such as Discord, our team was able to debug our app.

Accomplishments that we’re proud of

We’re proud that we were able to figure out the CORS issues with our API and enable clean and efficient communication between our frontend and backend. We’re also glad that we were able to implement JWT authentication so quickly into our app. Finally, we learned a lot about collaborating as a team and had fun while doing so!

What we learned

Through doing this project, we were able to learn more about how to create and organize webapps. Specifically, I learned how to create an app by composing it as a frontend single page application and a backend that only handles API calls. Additionally, we learned how to authenticate communication between the frontend and the backend through JWT tokens, which are much simpler than using other methods of authentication. Ultimately, as a team, we were each able to benefit from each other’s strong points to improve our own knowledge of web development.

What's next for Aid App

For our Aid App, the next logical steps would be to implement features that our group was not able to do due to the time constraints of the hackathon. For instance, a feature that would have been suitable for our project would have been a way for Americans in the Great Depression to more easily bargain with other people through our app, using a simple trading feature. This would have been helpful as most people had barely any money and trading was often easier. Another feature we had planned to implement was the ability for users to mark locations on a map for other people to see, with useful information such as the best places for free handouts, the best soup kitchens, the best places to look for jobs, places to stay away from, and more.

And finally, we would create a mobile app through native Javascript frameworks such as Vue Native, which would make it easier to use on mobile (although our app already does already work on mobile, through the browser!).

Built With

Share this project:

Updates

posted an update

Unfortunately, we didn't have time to include a few features in our video. This includes job application functionality. On the account page, employers can also view applications sorted by job, and have the option to close and accept them, which also decrements the available positions counter on the job listing.

Log in or sign up for Devpost to join the conversation.