During the fellowship, some fellows might lack the incentive to attend informative talks, book mentor sessions, give a show and tell, interact with other fellows on discord, etc. Additionally, fellows might feel disconnected from the overall fellowship community outside of their respective pod.
League of Fellows aims to gamify the MLH Fellowship experience by allowing fellows and their pods to earn points for doing various activities throughout the fellowship (similar to MLH Local Hack Day). These accumulated points could potentially be used to redeem swag and secret rewards at the end of the fellowship (MLH sponsor us? 👀).
Activities that count towards points include attending events and live streams, interacting on Discord, mentor sessions, show and tells, winning hackathons, helping others in the fellowship community.
Make everything you do in the fellowship count!
What it does
🤖 Discord bot to tracks points earned by each registered fellow on the MLH Fellowship discord
📊 Web app to display helpful metrics, such as individual points earned, points earned by your pod, your pod's rank on a modern dashboard
🏆 Leaderboards that visualizes points earned by different pods and where your pod stands
🔐 Generates secret codes for each event that admin can give out during live streams and events for fellows to redeem for points.
📅 View upcoming and past events in a central place and earn points for participating in them 👍 Easy Login and Registration with Discord OAuth Login
⚙️ How we built it
- Frontend: React, Redux, Sass
- Backend: Python, Flask
- Design: Figma
- Version Control: Git and GitHub
- Database: PostgreSQL
- Web Hosting: Netlify, Heroku
🤔 Challenges we ran into
- Generating ideas for how fellows could earn points was a bit tricky as we didn't want there to be any sort of spamming going on.
- The DB we used, PostgresSQL, was something new for most of us on the team and a challenge setting up. In the end, we all learnt a lot about working with relational databases.
- Designing the REST API to fit the need of the frontend and the discord bot was a challenging task and required most of our time.
- Setting up Discord OAuth and making the platform work seamlessly between the backend, the frontend React app and the discord bot was daunting and required planning beforehand to decide on the architecture, and technologies that would make it all work.
- Time management was really challenging due to the largely varying timezones of team members. :P
💪 Accomplishments that we're proud of
- Building a platform that could drive more engagement from fellows.
- Creating a points management system that could be scaled to add more features and platform integrations
- Learning about building discord bots and OAuth and working with PostgreSQL
🤓 What we learned
- We learnt about working with Redux on the frontend, the benefits of using it, and scaling the application state with ease.
- We learnt about and benefits and pitfalls of using relational databases and how modeling data is very different from NoSQL databases.
- We had a meeting every day at a fixed time to plan divide work and check on each other's progress which helped us in understanding more about collaboration on an open-source project.
- We learned and implemented open-source best practices like making use of the GitHub project board, setting up branch protection rules, adding Issue/PR templates, and following a consistent style for writing commit messages, etc.
🎯 What's next for League of Fellows
- GitHub integration for tracking weekly GitHub activity
- Automation of Event creation via Google Calendar
- Option to customize and manage favorite content on the dashboard using drag and drop controls
- More metrics and visualizations for fellows to track their progress throughout the fellowship
- Marketplace for redeeming points for rewards or swag