We chose to build If This Then Donate based on the current events happening in the US and an overall drive towards making an application that encourages active social media engagement on issues that matter. If This The Donate encourages social media usage by actively rewarding certain hashtag usage, and we all felt that this is a useful tool for the current global climate.
What it does
If This Then Donate tracks microdonations based on Twitter event triggers. Users log in via Twitter Authentication and then have the option to add various charities and associate them with Twitter hashtags. After choosing a microdonation amount, our application begins tracking Twitter hashtag usage and displays for the user how much money each donation has accumulated. The bot also comments on posts with the selected hashtags thanking them for their engagement. When they are ready to donate, they are taken straight to the organization's site to make it happen.
How I built it
We used a React frontend to build each of our components and a serverless AWS Amplify backend to control the user and donation data. We utilized the Twitter API to track hashtag usage and create the Twitter Bot as well. Our team divided our tasks with GitHub issues and used a workflow combining GitHub, Google Meet, and Discord to communicate. We used detailed GitHub Pull Requests and reviews to ensure that each of our individual tasks came together smoothly to create a finished product, and we used the readMe to detail setup instructions for each part of our app.
Challenges I ran into
Twitter authentication proved to be quite challenging as different Auth flows were required for different parts of the app. We also had lots of trouble configuring Amplify-- it often worked on each of our individual machines but establishing a collaborative workflow was difficult. Because of this, we ran into a lot of issues where something only worked on one person's computer which slowed down our progress towards the end. We had the Twitter bot working, but were not able to integrate it with Amplify on time.
Accomplishments that I'm proud of
Even though none of us had ever worked with AWS Amplify before, we were all able to contribute a little bit to the backend which was a great accomplishment for our team. Despite drastically different timezones, we were still able to spend a lot of time actively collaborating on the project through Github and Google Meet. We accomplished a lot through pair programming as well, which was a unique achievement because we are all remote and have never met each other before. One of our team members also came up with an awesome site design that really improved our project's look and feel.
What I learned
Everybody on our team learned about AWS Amplify and how it functions in a project, which was useful because it is one of our open source projects for the summer. Personally, I learned more about using hooks instead of class components in React. We learned about the Twitter OAuth flow and the details of the Twitter API as well.
What's next for If This Then Donate
We plan on creating a more robust notification system for users so that they know when it is time to donate. Though it can be really difficult to implement automatic microdonations, we would love to try to cut out the step where the user actively navigates to the donation page by including something like Stripe to make the donations for the user.