Skip to content

Earn points for yourself and your pod during the MLH Fellowship. Make your activities and participation count.

License

Notifications You must be signed in to change notification settings

MLH-Fellowship/fellow-central

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

League of Fellows

League of Fellows

Earn points for yourself and your pod during the MLH Fellowship. A way to gamify the fellowship experience.

League of Fellow



Forks Stars Watchers Top Language Languages Issues PRs MIT License activity contributors size lines

Browser Support

  • Firefox: version 50 and up
  • Chrome: version 49 and up
  • Safari: version 10 and up
  • Internet Explorer: version 10 and up
  • Edge: version 14 and up

Note: Support for modern mobile browsers is experimental. The website is not responsive in mobile devices until now.

Inspiration

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.

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.

Activities that counts towards points include attending events, livestreams, interacting on discord, mentor sessions, show and tells, winning hackathons, helping others in the fellowship community.

Make everything you do in the fellowship count!

How we built it

  • Frontend: React, Redux

    React Redux JavaScript SASS HTML5 NPM

  • Backend: Python, Flask

    Flask Python Discord

  • Design: Figma

    Figma

  • Version Control: Git and GitHub

    Git GitHub

  • Database: PostgreSQL

    PostgreSQL AWS

  • Web Hosting: Netlify, Heroku

    Heroku Netlify

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 livestreams and events for fellows to redeem for points.
  • View upcoming and past events in a central place and earn points for participanting in them
  • Easy Login and Registration with Discord OAuth Login

Challenges we ran into

  1. Generating ideas for how fellows could earn points was a bit tricky as we did't want there to be any sort of spamming going on.
  2. The DB we used, PostgresSQL, was something new for most of us on the team and a challenge setting up. At the end, we all learnt a lot about working with relational databases.
  3. 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.
  4. Setting up Discord OAuth and making the platform work seemlessly between 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.
  5. Time management was really challenging due to the largely varying timezones of team members. :P

Accomplishments that we're proud of

  1. Building a platform that could drive more engagement from fellows.
  2. Creating a points management system that could be scaled to add more features and platform integrations
  3. Learning about building discord bots and OAuth and working with PostgreSQL

What we learned

  1. We learnt about working with Redux on the frontend, the benefits of using it, and scaling the application state with ease.
  2. We learnt about and benefits and pitfalls of using relational databases and how modelling data is very different from NoSQL databases.
  3. We had a meeting everyday at a fixed time to plan divide work and check on each others progress which helped us in understanding more about collaboration on an open source project.
  4. We learned and implemented open source best practices like making use of 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 Fellow

  • GitHub integration for tracking weekly GitHub activity
  • Automation of Event creation via Google Calendar
  • Option to customize and manage favorite content on 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

How to Get Started?

Dependencies Up To Date Python

GitHub Repository Structure

# Directory Name Purpose
1. frontend contains frontend code
2. backend contains backend code
3. discord-bot contains discord bot code

Setup

Read README.md file of appropriate directories to setup the project environment.

MLH Fellowship (Spring 2021)

This is a hackathon project made by MLH Open Source Fellows (Spring 2021) for the halfway hackathon.

MLH Fellowship

Team:

"None of us is as smart as all of us." --Ken Blanchard

# Name Role GitHub Username
1. Pawan Kolhe Frontend Developer @PawanKolhe
2. Chau Vu Backend Developer @cqvu
3. Boyuan Liu Backend Developer @boyuan12
4. Luis Zugasti Backend Developer @luiszugasti

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Pawan Kolhe

πŸ’» 🎨 πŸ“

Chau Vu

πŸ’» πŸ“

Boyuan Liu

πŸ’» πŸ€–

Luis Zugasti

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

ForTheBadge uses-git forthebadge

forthebadge forthebadge ForTheBadge built-by-developers ForTheBadge built-with-love

forthebadge


Licensing

This software is open source, licensed under the MIT License.