We wanted a centralized place for developers to contribute back to the OSS community in a meaningful way while keeping it fun. We wanted a way for developers to compare their open source contributions. So, this is that.
What it does
- GitHub developers contributions to open source projects (excluding their own projects!)
- Breakdown of the criticality of the most important projects in OSS community
- Provides a list of OSS's most critical repos by languages
- Introduces new open source repos within a week that has received community love
- Gives interesting statistics about GitHub's surprising statistics in a week (Over 300k users has joined in a week!)
- Highlights top developers who has made most meaningful contributions back to the community (by criticality of their contributions) (frontend only)
How we built it
- frontend: React with Material-UI and Apollo Client (GraphQL)
- backend: Apollo Server with GitHub GraphQL API
- database: PostgreSQL (Cloud SQL)
- deployment: Cloud Run (nginx Docker), and Cloud App Engine (Serverless Apollo!)
Challenges we ran into
We faced a lot of varying challenges from the use of GitHub API. It was really challenging to pull commit datas from GitHub. This issue was compounded by the fact that we were all pretty inexperienced with GraphQL but thought that it would be fun to learn about GraphQL on the go (haha that worked out well :) ). Due to the time constraint, we weren't able to get to calculating criticality of user's contributions which was something we wanted to do. We hope to work on this sometime beyond the hackathon.
We also had some trouble with Google Cloud deployment as we were also new on this front. However, with some help from the Hack the North community, we were able to get some things going.
Accomplishments that we are proud of
- Learning more about the serverless architecture
- Building a intuitive dashboard web app from scratch
- Google cloud deployment
- Surviving after continuously coding for 36 hours
- Successfully completed hacking in remote environment.
What we learned
- Building a full stack application using GraphQL
- How to manage a short period of time to accomplish a goal under constant pressure
- How to work in a team to maximize the capacity of each member
- Google cloud deployment
What's next for openup
- Criticality calculation on the server side of users
- Cron jobs implementation to update the criticality score projects weekly
- Accumulated number of commits, PRs, and comments calculation for more graphs.
- Implementing the Event Page for open source maintainers who can promote their projects
- Implement GitHub OAuth login system and make the application more dynamic and user interactive