StudyMate is a modern, responsive web application designed to connect university students with qualified peer tutors. It streamlines booking tutoring sessions, scheduling, reviewing tutors, and administrative oversight.
-
🎓 Learner Portal:
- Browse and filter verified tutors by Subject, Faculty, and Department.
- Book 1-on-1 tutoring sessions with custom topic notes.
- Real-time notification updates & session schedule calendar.
- Rating & Review system for completed sessions.
-
👨🏫 Tutor Portal:
- Weekly recurring availability schedule manager.
- Interactive booking request dashboard (Accept, Decline with reasons, Reschedule time).
- Meeting platform & video link integration (Google Meet, Zoom, Teams).
- Subject request manager (Request new course modules for admin approval).
-
🛡️ Admin Control Panel:
- System-wide metric statistics dashboard (Today's sessions, weekly stats, active users).
- Multi-filter & date-sorted session booking management with inspection & deletion.
- Subject request review & automated module creation workflow.
- User & Tutor account management.
- Frontend: HTML5, Vanilla CSS3 (Custom Design System with Glassmorphism & Dark Palette), JavaScript (ES6+)
- Backend: PHP 8.x (OOP, PDO Singleton, CSRF Protection, Prepared Statements)
- Database: MySQL / MariaDB (Normalized Schema with Foreign Key Constraints & Automated Triggers)
- XAMPP / WAMP / MAMP (PHP 8.0+ & MySQL)
- Web Browser (Chrome, Edge, Firefox)
-
Clone or Download the Repository:
git clone https://github.com/YOUR_USERNAME/Study_Mate.git
-
Move Project to Local Server Webroot:
- Place the
Study_Matedirectory insideC:\xampp\htdocs\Study_Mate.
- Place the
-
Import Database:
- Open phpMyAdmin (
http://localhost/phpmyadmin). - Create a new database named
studymate_db. - Import the
deploy_database.sqlfile provided in the repository root.
- Open phpMyAdmin (
-
Run Application:
- Open your browser and navigate to:
http://localhost/Study_Mate
- Open your browser and navigate to:
- CSRF token validation on all POST requests.
- Password hashing using
password_hash()(BCRYPT). - SQL Injection protection via PDO Prepared Statements.
- Role-based authorization middleware (Learner, Tutor, Admin).
- HTML entity sanitization on outputs.
Distributed under the MIT License. See LICENSE for more information.