Booksy is a private tutoring service that allows students to book tutoring sessions on a wide range of subjects.
There are two types of users:
- Students
- Admins
A student can:
- Book a tutoring session (1-hour slot).
- Browse the course list, checking the tutor list for each course.
- Check tutors' availability for a specified date.
- Mark a booking as completed.
- Cancel a booking.
- Browse the booking history (containing active, canceled and completed bookings).
- See upcoming bookings on the home page.
An admin can:
- Browse the course list.
- Add a new course.
- Disable/enable a course.
- Add a new tutor.
- Assign a course to a tutor.
- Check tutors' availability for a specified date.
- Remove a tutor from the list of tutors who teach a course.
- Browse the booking history (active, canceled and completed bookings) for all the students.
- Cancel a booking.
The backend is implemented using plain Java Servlets, without any additional frameworks.
The Architecture is organized as a REST API.
Session tracking and management is implemented using Java's HttpSession API.
The fronted is organized as a SPA (Single Page Application) implemented using VueJS and Vue Router.
Data is stored in a MySQL Database and the operations are implemented as methods of the DAO (Data Access Object) class, using the JDBC API to interact with database.