Inspiration
I was inspired by the idea that doing good should feel fulfilling and fun. Communities like schools and neighborhoods have the people with the potential to help, but there isn't always a structured or motivating way to encourage positive actions. I wanted to gamify the act of giving back in a way that builds accountability and makes kindness contagious.
What it does
DoGood motivates people within communities to perform positive actions such as helping neighbors, environmentally sustainable actions, volunteering and any other good deed. This platform gamifies these contributions by awarding 50 points for every photo post with a caption giving a brief explanation about the deed. Accumulating points helps users climb the community leaderboard to earn badges like MVP, Runner up, and Top3. To maintain authenticity, posts can be flagged by the community, and invalid ones lose their points, ensuring recognition goes only to authentic and genuine deeds. The design is user friendly using a reel-like transition between posts, members also receive email reminders if they skip a day of good deeds, helping to drive motivation. DoGood transforms everyday kindness into a fun, competitive, and community engaging experience.
How I built it
I started off by setting up Flask for the backend and MongoDB to store communities, users, and posts. Once the setup was done, I programmed in features one by one. First came the registration and login, then the ability to create communities with invite codes, and finally the space where people could actually post their good deeds. Then adding the leaderboard gamified everything from just posting to a challenge.
From there, I designed the posts to feel like reels, where people can scroll through photos of good deeds in a smooth way. To tie it all together users get their own profiles built in with badges like MVP to reward the most active members.
On the design aspect, I focused on making the user interface modern and clean so it looks and feels premium whether on desktop or mobile.
Challenges we ran into
Building DoGood came with many challenges. One of the first issues was handling image uploads. When every photo was uploaded by a user it was saved with its original file name, which meant two people could overwrite each other's pictures. Fixing this required generating unique names for every upload thus reprogramming the media storing mechanism.
Another challenge was with the feed, I wanted it to feel like scrolling through reels, but every attempt I made at this ended with images being squished or looking static. Getting the right balance between responsiveness, smooth scrolling, and keeping photos displayed in their appropriate sizes took a lot of trial and error.
I also struggled with making the design consistent across all pages. Every part of the app from registration to the leaderboard needed to feel like it belonged to the same ecosystem. While trying to achieve this, fixing one page's CSS broke another, so merging everything into one clean system was more challenging than I expected.
Finally, I had to consider the fairness in designing the dislike system so that it discouraged fake posts without punishing genuine ones. This meant finding a threshold that was balanced, which I found was 15% of the number of people in the community flagging the post.
Accomplishments that I am proud of
I am proud that DoGood is a platform that rewards small actions and creates a ripple effect by influencing one and other in a community. Building a smooth gamified experience for users to motivate and ensure that no act goes unnoticed. I am also proud that DoGood helps us move towards a world where kindness inspires more kindness.
What I learned
Through building DoGood, I learned how much design and user experience matters to make an app successful and how small details like smoother scrolling can change the entire experience. I also realized that gamifying social good will need balance with fun so features like community flagging become important.
What's next for DoGood
My next goal for DoGood is to use it for corporations to create empathy and kindness. I would like to create weekly challenges like eco week which are based on relevant themes. AI can be used for authentication of posts and suggesting initiatives for people in the community.
Log in or sign up for Devpost to join the conversation.