What is my project all about?
TutorMe is a full-stack peer tutoring platform built to reduce delays in getting academic support and make it easier for students to help each other while earning points through completed tutoring sessions. The system allows students to create profiles, connect with peers, publish studying related posts, send messages, schedule meetings and earn points.
The platform was implemented using the MERN stack with MongoDB for data storage, Express.js and Node.js for the backend API and React for the frontend. Live communication is supported through Socket.io for instant message delivery between connected users.
Authentication is handled through JSON Web Tokens with both email/password login and Google OAuth 2.0. The system also includes meeting scheduling with validation rules, a rating and points mechanism to encourage engagement and an administrative dashboard to moderate content posted within the platform.
TutorMe was deployed using Docker for containerisation and hosted on AWS EC2, with static assets and media stored in AWS S3. A GitHub Actions CI/CD pipeline was configured to automate testing and deployment on every push. Testing was carried out using Jest for unit and integration tests and Playwright for E2E testing across the application.
The project provides students with an interactive and engaging environment for academic collaboration with the aim of improving academic performance, increasing motivation through gamification and promoting a supportive culture within the university.
Tech Stack & Tools
What makes my project valuable?
Students can create study related posts, interact through comments, and use the feed as a central space for academic collaboration. From there, they can connect with peers, start conversations, and arrange tutoring sessions.
Connected users can exchange messages instantly with the help of Socket.io, while conversations and messages are stored persistently in the database.
Users can schedule tutoring sessions with peers, while backend validation prevents invalid bookings, duplicate meetings and overlapping sessions to make sure that the points awarding system remains fair for all users on the platform.
Completed tutoring sessions can be rated and points are transferred based on session outcomes to encourage active participation and engagement among students.
The system provides an administrative dashboard for content moderation within the platform. Users can report inappropriate feed content, offensive messages and suspicious user activity to help ensure that platform content remains in line with university policies.
What documentation was produced throughout the different stages of my project’s development ?
Presents the background research carried out during the early stage of the project including student engagement and the technologies considered for development.
View Research ReportSets out the proposed system design, architecture, tools, core features and planned development milestones for TutorMe Platform.
View DocumentationProvides a comprehensive documentation of the final system, implementation, testing results and limitations of TutorMe.
View Final ReportExplore the core features implemented in TutorMe
The platform allows students to register with email and password, sign in using Google OAuth 2.0, and access the system through a simple and clear entry point.
The feed acts as a central space for academic interaction, where students can create posts about the academic difficulties they are facing and other students can respond by commenting and offering their support.
Each profile presents student information, outlining subject expertise, peer connections, recent activity and feedback received from completed tutoring sessions.
Connected users can exchange messages instantly, making it easier to discuss study needs and organise tutoring support.
Students can schedule tutoring sessions, manage upcoming meetings and rate completed sessions through the platform.
The administration area supports moderation by allowing reports, users, and platform activity to be monitored and managed in one place.