Inspiration

Jason and I are both hackers. We love building things and working on projects that we share on GitHub. We realized that a lot of other hackers are working on projects that they are proud of. Every commit we make on GitHub has a story -- they have a time and a place, a coding language, perhaps even collaborators.

What it does

GitBadge is a platform where hackers can view and share their hacker journey over time through hidden collectable badges! For example, if a hacker tends to commit a lot of code at night, they would earn the Night Owl Badge! We've implemented 6 other badges for the demo:

  • Night Owl: commits frequently at night
  • Early Bird: commit frequently during the morning
  • Polygot: commits code in different languages
  • Seasonal Activity: activity per season (spring, summer, fall, winter)
  • Experience: how long the hacker has been hacking for!

How we built it

We built the frontend GitBadge platform using NextJS + tailwind. In order to support our users, we are leveraging sign in with GitHub with Authjs, and storing all of our data securely using Supabase as our cloud postgresql database. We built a worker program in Python which will routinely ingest data from supabase and query the GitHub API to collect the necessary metrics to assign badges. This worker program would run routinely as a cronjob when deployed in production.

Challenges we ran into

As responsible hackers, it was very important that we respect the GitHub API terms of service and usage limits so that we did not get rate limited. Our platform must collect a lot of user information regarding commits and repositories. Therefore, we had to be a little clever with the efficiency of our worker program to respect these constraints. While the platform is not perfect yet, it makes a perfect example for what GitBadge could be!

Additionally, the worker runs periodically -- which means that users don't see their badges in real time when they sign up. This is another step we took to further respect GitHub's API policies.

Accomplishments that we're proud of

  • Successfully read and implemented API documentation
  • Deployed a fully functional web app that interacts with Supabase

What we learned

  • Enhanced skills in reading and understanding documentation
  • Gained hands-on experience with database deployment with backend/frontend
  • Improved teamwork and collaboration under a short timeframe

What's next for gitbadge

  • Generate user badges in real time!
  • Expand the platform to include more badges and cool achievements to help motivate hackers by showcasing their progress and accomplishments.

Built With

Share this project:

Updates