Starting with the originating idea of "A relief donation/seeking system to help the society in this pandemic" given by our teammate Ebtesam, we slowly began to expand the idea into becoming more broad and not just confined to COVID-19. We then went through a few iterations (messaging service, professional guidance, etc.) before arriving at what we agreed up to be the best possible solution; peer-to-peer donation brokering.

What it does

DonAid seeks to match two given users (givers and receivers) in a one-way mirror approach; Givers know who the receivers are, while receivers do not know who the givers are. Receivers are individuals suffering from short-term financial hardship and are looking for funds to help them get through uncertain times. Givers are individuals looking to send funds to those most in need. For the complete description of DonAid, please visit our GitHub repository and check out the README.

How we built it

After passing through a few iterations of the idea, we had the original intention of building out the architecture such that we would leverage Django on the back-end via the Django REST Framework, but realized the cross-over between JavaScript on the front-end (which would be/is React.js) and Python on the back-end would be too cumbersome, which is why we ended up going with Node.js/Express.js on the back-end. From there, we realized we needed some sort of data store to hold all the different users information. Due to potential unforeseen implications regarding the schema and attempting to mitigate any future problems we would run into, we attempted to go with a NoSQL solution via Firestore on Firebase that gave us a flexible schema to make early, quick mistakes with. A full diagram of the original three-tier architecture can be seen in the image gallery.

Challenges we ran into

We were unable to get authentication along with session management working. 3/4 members of the group had never worked with Node.js/JavaScript before, so there was a learning curve associated with picking up the language and the run-time environment. We also were not able to fully implement Plaid and Stripe (although you can see Plaid has been leveraged in some of the routes if you use the username user_good and the password pass_good when authenticating with any financial services institution on Plaid). We were also unable to get the image uploading service implemented via GCP Cloud Storage.

Accomplishments that we're proud of

As stated above, 3/4 members of the team had never worked with Node.js/JavaScript before, which is something the members should be very proud of. To have been able to immerse ourselves in a full-stack project and to see how all the different services feed together to orchestrate a single application was incredibly insightful.

What we learned

We were able to pick up a lot of skills in the 36 hours the hackathon went on for. The pressure-cooked learning environment where the thesis is "Just build." allowed for agile movement in the context of the tools we were able to pick up and build with.

What's next for DonAid

If DonAid was to turn into a profitable business endeavor, we would have to alter the model in a way where in place of 100% of the funds being sent to the receivers, we would take a small portion (5-10 basis points) on every transaction for having brokered the giver-receiver relationship, which would then be reinvested into the business to expand the product further.

Built With

Share this project: