TutorConnect
TutorConnect is a web-based platform that connects underclassmen college students with qualified upperclassmen or alumni tutors. The goal is to offer flexible, peer-based academic support while also providing upperclassmen with gig-based income opportunities.
Overview
TutorConnect solves two key problems:
- Helps underclassmen find approachable, relatable tutors from their own university or similar backgrounds.
- Provides upperclassmen with a flexible side gig opportunity by offering tutoring services in subjects they excel in.
The platform supports:
- Student & tutor onboarding
- Tutor discovery & filtering
- Request sending, management, and tracking
- Profile editing and completion tracking
- Role-based navigation and permissions
Features
For Students:
- Complete, view, and edit your profile
- Browse and filter tutors by categories such as subject, school, or hourly rate range
- Send tutoring requests with a personalized message
- Track status of each request (pending, accepted, rejected)
- View request progress for each student
For Tutors:
- Complete, view, and edit your profile
- View incoming tutoring requests from students
- Accept or reject requests
- Track completed tutoring sessions
Tech Stack
| Layer | Tools Used |
|---|---|
| Frontend | Streamlit |
| Backend | Python, SQLAlchemy |
| Database | MySQL (via pymysql) |
| Styling | HTML + CSS (via Streamlit markdown) |
| Authentication | Simple session state (Streamlit native) |
| Config Management | python-dotenv |
Directory Structure
login.py— User login & role-based routing.student_home_page.py,student_profile.py,student_info_input.py,find_tutor.py— Pages for student workflows.tutor_home_page.py,tutor_profile.py,tutor_info_input.py— Pages for tutor workflows.student_request_record.py,tutor_request_list.py— Request management dashboards.tutor_completeness_status.py,student_completeness_status.py— Completion tracking for tutors and students.
How to Run
Install dependencies
pip install -r requirements.txtSet up environment variables Create a
.envfile with:DB_USERNAME=your_db_username DB_PASSWORD=your_db_password DB_HOST=your_db_hostRun Streamlit
streamlit run login.py
Notes
- The app uses Streamlit’s
st.session_stateto manage login state and role-based permissions. - Ensure your MySQL database (
emoryhackathon) is populated with appropriatestudent,tutor, andrequeststables. - Foreign key constraints must be handled carefully (especially when modifying
user_id).
Team
Built by a group of Emory University students for a hackathon competition.
Main contributors include: Andy Dang, Eric Chen, Lisa Yang, and Lynne Zheng.
Log in or sign up for Devpost to join the conversation.