A full-stack web application connecting university students with study partners based on shared courses.
- Secure Authentication: JWT-based login system with encrypted passwords
- Course Management: Add and remove courses you need help with
- Smart Matching: Find study partners taking the same courses
- User Profiles: Manage your academic information
- Search & Filter: Find students by name, major, or courses
Frontend:
- React
- Axios
- Vite
Backend:
- Node.js
- Express
- PostgreSQL
- JWT (jsonwebtoken)
- bcrypt
Production App:
- Frontend: https://study-matcher-nine.vercel.app
- Backend API: https://study-matcher-backend.onrender.com
For Local Development: See installation instructions below ⬇️
- Node.js (v14 or higher)
- npm
- Clone the repository
git clone https://github.com/SohamxP/study-matcher.git
cd study-matcher- Install dependencies
npm install- Start the backend server
node server.jsBackend runs on http://localhost:3000
- Navigate to frontend directory
cd frontend- Install dependencies
npm install- Start the development server
npm run devFrontend runs on http://localhost:5173
POST /api/users/register- Register new userPOST /api/users/login- User login
GET /api/users- Get all usersGET /api/users/search- Search users with filtersPUT /api/users/:id- Update user (protected)DELETE /api/users/:id- Delete user (protected)
POST /api/users/:id/courses- Add course (protected)DELETE /api/users/:id/courses/:courseName- Remove course (protected)
GET /api/matches/:courseName- Find study partners by course
- Passwords hashed with bcrypt (10 salt rounds)
- JWT token-based authentication
- Protected routes requiring valid tokens
- Authorization checks (users can only modify their own data)
- Input validation on all endpoints
- Real-time chat between matched students
- Email notifications for new matches
- Calendar integration for study sessions
- Mobile app version
- User ratings and reviews
Soham Panchal
Computer Science Student | University of Texas at Arlington
This project is open source and available under the MIT License.


