We saw many homeless people struggling in the cold, which is something we don't witness often in Singapore. We then realised that there are actually many homeless people in the United States which is a very prominent social issue that needs to be solved, both for the homeless and for the society as a whole. Our main aim is to make sure they have sufficient resources for daily survival and at the same time, to help them get back on their feet and provide for themselves.
What it does
Pay It Forward is a platform for the people to donate to the homeless. You can scan the QR code of any homeless you see on the streets and send money to them as long as they have the app. The homeless can then use the app to purchase daily necessities like food and clothes or pay for a course to learn a skill from a list that we provided. We integrated with Stripe to provide a seamless experience when it comes to payments.
How we built it
For the designs, we used Figma to prototype our it; This allows for a common language to be used for communication between designers and developers, creating a fulfilling UI/UX experience. For the actual app, we used Azure DevOps for CI/CD, version control, as well as the sprint board for feature assignment. While we managed to host the initial iterations on hackforhumanity.azurewebsites.net/, we weren't able to host the server together with Graphql. The database schema was also thoroughly planned out using Creately and the class diagram can be found below.
Challenges we ran into
There were some ethical issues we had to consider when we were brainstorming for our app. However, we managed to think of possible solutions to the problem. As it is our first time using Azure and integrating a mobile payment platform, we ran into several obstacles that hindered our process drastically. While we managed to overcome many of the issues faced and enabled CI/CD on azure : payitforward , there were compatibility issues due to the usage of GraphQL and Azure. Despite the setback, we overcame the blockage by utilizing ngrok instead to expose our endpoint online. The implementation of Stripe payment was necessary and not to be taken lightly and gave us quite a blocker as we wanted a seamless transaction.
Accomplishments that we're proud of
For such a short hackathon, we've managed to create a working native iOS app using Swift, translating our Figma design to product, explore and use graphql, have an entire deployment workflow on Azure DevOps and using Azure's postgresDB. We also implemented Stripe integration for our payments, so users could make their payments seamlessly. Moreover, we've accomplished a well balance of work and play and thoroughly enjoyed ourselves, playing Smash, soccer and enjoying some chocolatey S'mores =).
What we learned
We learnt that it is not easy doing an application for social good as there are many different factors to consider, especially who are the people that will be impacted and the ethical issues that might arise from our application. A lot of research has to be done on our stakeholders and the issue at hand in order to create an app that really targets and solve the issue. We also learnt that it is important to delegate the work right from the start so that there are no overlaps and everyone can just focus on their own parts before collaboration.
What's next for Pay It Forward
We will continue to develop this app and when it is polished, we will approach different government organisations for collaboration. We hope that one day, this app will not only help the homeless in the United States, it can also help those in need from every parts of the world.