Tutorswap is a peer-to-peer tutoring platform designed for UIUC students. It allows students to connect based on the classes they need help in or can tutor. Unlike formal tutoring platforms, Tutorswap matches students based on shared courses, ratings, recent activity, and academic background—focusing on accessibility and relevance over certification.
Key features include:
- Login and profile creation
- Tutor matching based on course overlap, rating, and major
- Real-time messaging with matched users
- Course-based and user-based search
- Class-specific rating and review system
- AI-powered starter messages for chat
Tutorswap follows a full-stack architecture:
Frontend: React + TypeScript, styled with MUI, supports dynamic routing and state management for profile creation, search, and chat.
Backend: Flask + Flask-SocketIO powers the core API and real-time chat. It includes matching logic (Python), user authentication (OAuth), and class/course rating endpoints.
Database: PostgreSQL stores user profiles, ratings, messages, and match history. GIN indexing supports fuzzy search and name autocomplete.
DevOps: GitHub Actions for linting (Flake8) and testing (Pytest, 98% coverage).
Users can create accounts or log in using a simple interface connected to Flask sessions. Once authenticated, users are redirected to the homepage and have access to all platform features.
- Adeetya created the login page UI
- Aryaa designed the signup page in Figma
- Yash implemented both flows in React
- Cameron connected backend logic and session handling, adding support for Google Oauth 2.0 and limiting access to @illinois.edu emails
The welcome page, where potential users understand how our platform operates. It shows how to use the platform, basic top user info, and a Call To Action.
- Designed in Figma by Aryaa and Adeetya
- React implementation by Yash
- Fixed visual bugs by Cameron
Displays top matches based on course overlap, user rating, major similarity, and recent activity. The logic includes scoring and ranking, with fuzzy search.
- Matching algorithm written by Adeetya
- Backend search optimization and GIN indexing by Aryaa
- React frontend by Yash
- Integrated end-to-end by Cameron
Enables real-time messaging between matched users. Messages are stored by match ID and loaded dynamically. Also includes AI-generated starter prompts using GPT.
- Frontend Figma design by Aryaa
- Backend logic and AI prompt generation by Adeetya
- Chat UI built by Yash in React
- Server connection and SocketIO setup by Cameron
-
Clone the repository
git clone https://github.com/CS222-UIUC/team-69-project.git cd team-69-project -
Frontend setup
cd frontend npm install --force npm run dev -
Backend setup
cd ../backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python3 server.py
-
Open http://localhost:3000 in your browser.
| Name | Role | Highlights |
|---|---|---|
| Adeetya | Matching, Backend APIs, Design | Built the matching algorithm, designed login page UI, created REST endpoints, added fuzzy subject search, and implemented AI-enhanced chat messages |
| Aryaa | UI/UX Design, Backend Search | Designed profile and signup pages, optimized fuzzy search with GIN indexing, implemented filtering and sorting logic |
| Yash | Frontend Engineer | Built login, signup, homepage, and chat features in React, integrated styling and frontend logic |
| Cameron | Integration & System Setup | Connected backend APIs to frontend, created the PostgreSQL schema, added dummy data, integrated SocketIO and chat backend |
All members contributed to planning, regular check-ins, code reviews, and final testing.
This project is licensed under the MIT License.
Special thanks to Akshat Bhat, our mentor on this project, for his guidance, feedback, and support throughout the semester.
