- Rohit Khoja (GitHub)
- Pratyush Kerhalkar (GitHub)
- Hari Prakash Vel Murugan (GitHub)
- Ramyalakshmi (GitHub)
- Abhinav PY (GitHub)
Our project provides an automated system for matching mentors and mentees based on several customizable criteria such as location, age, availability, and personal preferences. The system is designed for STEAM SuperHeroes, which aims to support STEAM (Science, Technology, Engineering, Art, and Math) education through mentorship programs. This tool ensures seamless mentor-mentee matching and schedules meetings according to their common availability.
Key Features:
- Automated Matching: Match mentors with mentees based on factors like geographic proximity, ethnicity, gender preferences, and mentorship goals.
- Scheduling System: Create automated schedules for meetings, notify participants, and track meeting completion.
STEAM SuperHeroes is launching a mentoring program in 2025 and needs a system to automate mentor-mentee pairing and meeting scheduling to minimize manual work and errors. The matching system will pair mentors and mentees based on shared criteria and automatically suggest meeting times based on their availability.
For more detailed requirements, refer to the STEAM SuperHeroes Mentor Program Requirements.
- Frontend: Flask, HTML, CSS
- Backend: Python, Flask, AWS Lambda, AWS S3, AWS IAM
- Database: AWS DynamoDB
- APIs: AWS SES (for email notifications)
- AWS account for setting up Lambda, S3, DynamoDB, and SES.
- Basic knowledge of Flask and AWS services.
-
AWS Lambda Functions:
ProcessParticipantCSV
: Reads and imports participant data from a CSV file.MatchMentorMentees
: Matches participants using defined rules.CreateMeetingSchedules
: Automates meeting schedules between mentors and mentees.
-
S3 Bucket:
Create a bucket for CSV uploads (steam-csv-file-upload
). -
DynamoDB Tables:
Create the following tables:Meetings
Mentees
Mentors
Pairings
Users
-
IAM Permissions: Ensure that the Lambda functions have permissions to interact with:
- DynamoDB
- AWS SES (for sending notifications)
As we move forward, there are several enhancements planned for the system to increase its functionality, scalability, and user experience. Below are the key areas of future development:
To improve the security and personalization of the dashboard, we will implement user-based access control. This will allow different types of users (mentors, mentees, admins) to log in and see tailored views and functionality.
To ensure flexibility and allow manual adjustments, we will build a feature that grants admin-level users the ability to manage mentor-mentee pairs and their associated meetings directly from the dashboard.
The system will generate reports and analytics to provide insights into the mentoring program's success and areas for improvement. This feature will be particularly useful for admins, stakeholders, and nonprofit organizations looking to evaluate the program's performance.
Many participants may select "Other" when specifying their mentoring preferences. To improve the pairing algorithm and ensure these users are accurately matched, we will implement clustering to group "Other" responses into meaningful subsets.
As the mentoring program grows, the system will need to scale to handle thousands of mentor-mentee pairs while ensuring quick and accurate matching. This requires improvements to the existing algorithm to support scalability, flexibility, and efficiency.