Senior Design Projects

ECS193 A/B Winter & Spring 2021

Mentorship platform for a nonprofit programming community

Name Andrew Chong
Affiliation Electric Hive

Project's details

Project title Mentorship platform for a nonprofit programming community
Background The Electric Hive is a nonprofit hacker/programmer collective (501c3 application in progress) with a mission to mentor budding programmers as a means of improving their lives and encouraging them to build and use technology for social good.

Currently, the Electric Hive has more than 200 members, including the young, old, novice coders, wizard hackers, self-taught developers, senior engineers, and everyone in between.

The Electric Hive runs a mentorship program that currently has about 15 mentors and 50 mentees and is rapidly expanding. Although this expansion is welcome, the community is quickly outgrowing the current technology (e.g. Zulip, Google Forms, and Calendly) used to organize the program. Specifically, the current tooling is oriented towards general office usage and does not handle needs specific to a mentorship program. The Electric Hive requires better technological infrastructure - specifically, a mentorship platform in the form of a web application - in order to maintain and build mentorship outreach as the community continues to scale.

Most mentorship platform software offerings on the market are closed-source and sold by for-profit corporations and so do not fit with the Electric Hive's values as a FOSS (free and open source software) oriented community.

Additionally, there are no current FOSS attempts at creating mentorship platforms that fit the Hive's needs. Most such projects are not production-ready and have little-to-no active development effort. For example:

The few FOSS mentorship platforms that are production-ready and in usage are similarly not well-supported by developers nor actively frequented by many end users, and are lacking in many basic features like mentee-mentor matching based on user profiles:

Thus, the Electric Hive hopes to create their own mentorship platform and would deeply appreciate help from the UC Davis CS Senior Design program to make this a reality.

For more information about the Electric Hive and prior community outreach, see:
Description UC Davis student team members will lead the design, implementation, and deployment of an online FOSS mentorship platform for the Electric Hive programming community. This web application will be able to intake mentees and mentors, enable mentee-mentor pairing, and facilitate interactions between mentees, mentors, and program coordinators.

Throughout the project lifecycle, student team members will interact collaboratively with a technical client team from the Electric Hive. The student team will be encouraged to choose and use appropriate software engineering best practices, such as following an Agile methodology without zealotry, adhering to a consistent version control strategy, building and using a robust CI/CD pipeline, creating good documentation, and maintaining meaningful test coverage. If permitted and desired by the Senior Design Project program, the Electric Hive can provide additional volunteer team members from their community to aid in the development of this project, including members skilled in fullstack web development, UX & UI design, data science, and machine learning.

As a final goal for this project, the student team should be able to hand off the project in such condition that allows for and encourages future support and development of the platform as a FOSS project by future generations of Electric Hive members.
Deliverable The mentorship platform will be a FOSS web application targeted primarily for desktop browser usage, with optional responsive design support for browsers on smaller devices like smartphones and tablets.

The minimum viable product for the platform will implement the following basic functionalities:
• Manage the sign-up and intake process for mentees and mentors, including application form ingestion and meeting scheduling. (This functionality is already implemented using Google Forms and related add-ons paired with Calendly, but could be integrated with the new platform or re-implemented to enhance user experience.)
• Allow users to create profiles with information like work experience, skills, and interests, and make these profiles visible to other users.
• Manage user authentication and permissions for mentees, mentors, program coordinators, and administrators.
• Enable matching mentors and mentees based on personal similarities like shared skills, interests, life experience, and goals. A basic implementation would allow program coordinators to see user-provided personal information about mentors and mentees and manually match mentee-mentor pairs.
• Track mentor-mentee pairings and user interactions in a database.

Beyond the basic capabilities listed above, the platform could potentially include optional reach functionalities such as:
• Use natural language processing and machine learning analysis trained on user profile information to aid the mentee-mentor matching process.
• Use user information gathered from the intake process to fill out new user profiles.
• Integrate a modern FOSS wiki solution such as Wiki.js or Bookstack as a knowledge base for users to gather and access information such as platform documentation for users and developers, mentorship advice articles, and mentorship meeting guides.
• Allow mentees and mentors to record feedback about their interactions with a user-modifiable web form.
• Allow communication between users through the platform by integrating messaging through the Zulip API. (Zulip is a FOSS Slack alternative written in Python and is already used by all members).
• Enable calendar-based meeting bookings between mentors and mentees by integrating a FOSS meeting booking solution and/or the Calendly API, with additional optional features to send meeting reminders and integrate with major calendar APIs like Google Calendar and iCal.
• Enable recurring reminders to prompt mentees and mentors to reach out to each other.
• Measure, analyze, visualize, and encourage rapport-building and progress towards goals between mentee-mentor pairs.
• Allow users to report issues with other users such as poor communication, unresponsiveness, or inappropriate behavior.
• Regularly solicit user feedback about the mentorship program and platform.
Skill set desirable Ideally, student team members will be capable of fullstack web development and aware of software engineering best practices. Specific skills that are desirable include:
• Javascript (and preferably Typescript) for front-end development
• A back-end development programming language or runtime such as Python, Node or Deno. Only one will be used. (The applicant's preference is for Python.)
• SQL & PostgreSQL
• Optional: knowledge of a front-end Javascript web framework such as React, Vue, or Svelte
• Optional: knowledge of a back-end web framework such as Flask, Django, FastAPI, Express, Next.js, Koa, or Oak. (The applicant's preference is for Flask or Django.)
• Optional: knowledge of a CSS framework such as Bootstrap, Bulma, or Foundation
Phone number (201) 575 - 2645
Client time availability 30-60 min weekly or more
IP requirement Open source project
Attachment Click here
Selected N/A
Stuff N/A