Skip to content

About

TutorSwap - Tutoring is usually a paid one-way exchange where a tutor imparts knowledge to a student seeking help. Our app changes this into a collaborative, two-way experience. Connecting individuals in similar courses facilitates mutual teaching based on unique strengths and weaknesses, promoting a balanced knowledge exchange.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Repository files navigation

Tutorswap

Contributors Forks Stargazers

Summary

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

Technical Architecture

Python TypeScript CSS HTML Shell Dockerfile JavaScript

React   TypeScript   Flask   PostgreSQL   Socket.IO   JavaScript

Tutorswap Technical Arch

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).


Components

Login and Register Pages

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

Home Page

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

Matching Page

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

Chat Page

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

How to Install

  1. Clone the repository

    git clone https://github.com/CS222-UIUC/team-69-project.git
    cd team-69-project
  2. Frontend setup

    cd frontend
    npm install --force
    npm run dev
  3. Backend setup

    cd ../backend
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    python3 server.py
  4. Open http://localhost:3000 in your browser.


Team Contributions

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.


License

This project is licensed under the MIT License.


Acknowledgements

Special thanks to Akshat Bhat, our mentor on this project, for his guidance, feedback, and support throughout the semester.

About

TutorSwap - Tutoring is usually a paid one-way exchange where a tutor imparts knowledge to a student seeking help. Our app changes this into a collaborative, two-way experience. Connecting individuals in similar courses facilitates mutual teaching based on unique strengths and weaknesses, promoting a balanced knowledge exchange.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages