A role-based tutor-matching web app built for KFUPM students — students find and request tutors by course and availability, tutors manage their own schedule and course list, and admins moderate the whole thing.
Course project for SWE363: Software Engineering, KFUPM.
TutorMe connects students who need help in a course with tutors qualified to teach it. Students search by course and available day, send a tutoring request, get notified when a tutor accepts, and leave a rating afterward. Tutors set their weekly availability (including a virtual-tutoring option) and can request to add new courses to their profile, pending admin approval. Admins review those requests and keep an eye on tutor reviews across the platform.
-
Student
- Search for tutors by course and day, or by "any available time"
- Send and track tutoring requests, with notifications when a tutor accepts
- Rate and review past tutors
-
Tutor
- Set weekly availability per course, including a virtual-tutoring option
- Request approval to tutor additional courses (grade-verified)
- Get notified of incoming student requests and admin decisions by email and in-app
-
Admin
- Approve or reject tutor course requests
- Browse tutors and their reviews
-
Shared
- Role-based login (Student / Tutor / Admin) with OTP-based password reset
All routes are relative to the base URL (http://localhost:4639 locally).
| Page | Route | Description |
|---|---|---|
| Home | / |
Landing page — links to every login flow and registration |
| Student Login | /StudentLogin |
Student sign-in |
| Tutor Login | /TutorLogin |
Tutor sign-in |
| Admin Login | /AdminLogin |
Admin sign-in |
| Register | /Register |
Create a Student or Tutor account |
| Forgot Password | /ForgetPasswordPage |
KFUPM ID → OTP → new password flow |
| Student Dashboard | /StudentPage |
Search for a tutor by course/day, view upcoming sessions |
| Tutor Dashboard | /TutorPage |
Set weekly availability, view upcoming sessions |
| Admin Dashboard | /AdminPage |
Search/browse tutors, view reviews, revoke access |
| Review a Tutor | /ReviewTutorPage |
Rate and comment on a past tutor |
| Request to Tutor | /RequestToTutor |
Apply to tutor an additional course |
Everything else in app.js (/TakeToStudentPage, /ScheduleTutor, /StudentLoginForm, /ReviewTutorSubmit, etc.) is a form-submission or redirect endpoint used by the pages above, not a page to navigate to directly.
- Node.js + Express
- Nunjucks templating
- SQLite (
sqlite/sqlite3) - Nodemailer for email notifications
- HTML5 / CSS3
- Clone the repository:
git clone https://github.com/OzyCode/SWE363_TutorMe.git cd SWE363_TutorMe - Install dependencies:
npm install
- Start the server:
npm start
- Open
http://localhost:4639in your browser.
Built by Osama Al-Bahnasi.