There are many individuals who wish to provide their support to others in times of need, whether during natural emergencies or hard times, paying it forward to build a better society. Unfortunately, too often, the goods people would be more than willing to donate go to waste. Without an easy way to complete the process of donating items, the value of making countless small contributions to an individual’s quality of life simply dissipates.
Assure bridges the gap between such an ideal social standard and reality.
What it does:
Assure offers a quick and easy method to share and request goods in a nearby range, bringing those in need into contact with those willing to provide, forging a new path to helping society.
Recipients can easily view goods available nearby, determine specifically what items they would value, and contact owners directly. By removing the middleman of an often inefficient corporation, we enable recipients to seek support quickly, as soon as they encounter a pressing issue. Complementarily, by allowing the donor to communicate with the future user, they immediately receive the peace of mind that their product is being used to help support a member of our society get back on track.
How we built it:
We began by designing a database framework for the item, donor, and user profile information we determined necessary, which we then built using Express.js and MongoDB and hosted using the Microsoft Azure platform. In parallel, the rest of our team built a web-app using React.js to serve as the front-end user-interface. Within the web-app we also created a chat interface using web sockets to allow communication between requesters and donors.
Challenges we ran into:
A majority of our issues involved difficulties interfacing the web-app and our backend system. We had difficulty with the chat interface between the donors and users, which we implemented using a four table approach (donors, users, items, and chat), but had difficulty hosting. Storing and displaying information from the user-inputted image files also proved a difficult challenge.
Accomplishments that we're proud of:
We are most proud of learning about and understanding web sockets to develop the internal, secure chat application and understanding how to transfer image (and in general, external file) data from server to client and vice versa.
What we learned
- How to structure relational databases using MongoDB
- How to temporarily store user-inputted files
- How to design an elegant web-app using React
- Efficiently querying and processing API requests
- Version control (git)
- Working on a major project in a short development window
What's next for Assure
We want to continue developing the project into a full-scale published application as we believe in the viability of the project in the real world. Our first steps would be to improve the web-design and implement a login authentication system. Then, we also hope to clean up the image storing process into a more streamlined process.