- Introduction
- Features
- Architecture & Design Principles
- Diagrammatic Representation
- User Roles and Stories
- System Requirements
- Installation
- Usage
- API Documentation
- Security Measures
- Wiki
Introducing our Lecture Hall Management System for the Faculty of Engineering at the University of Jaffna. This innovative platform revolutionizes the management of lecture halls, providing a seamless experience for lecturers, course coordinators, and administrators. Our system aims to optimize resource allocation, reduce scheduling conflicts, and enhance overall efficiency within the academic environment.
The Lecture Hall Booking System enables lecturers and course coordinators to easily search, filter, and reserve lecture halls based on location, capacity, and availability. With intelligent conflict-checking capabilities, scheduling clashes are minimized, ensuring smooth operations. Users have access to their booking history, upcoming reservations, and the ability to modify or cancel bookings as required.
Featuring a user-friendly interface and robust administrative tools, our system streamlines operations and enhances resource utilization. Effective communication channels and accessible information empower the University of Jaffna to optimize lecture scheduling and foster academic success.
- User Authentication: Secure login and registration for users with role-based access control.
- Lecture Hall Management: Add, update, and manage lecture hall details.
- Booking System: Create, view, and cancel reservations for lecture halls.
- Waiting List: Manage waiting lists for booked lecture halls.
- Calendar View: Visual representation of booked and available time slots.
- Notifications: Email notifications for booking confirmations and cancellations.
- Client-Server Architecture: Utilizes a client-server model with a React.js front end and a Spring Boot back end.
- Modularity: Divided into modules such as space service, reservation service, waiting service, and email service.
- Security: Implements secure authentication mechanisms using Spring OAuth 2.0 and HTTPS for secure communication.
- Scalability: Designed to handle increasing numbers of users and bookings with support for horizontal scaling.
- Reliability: Ensures high availability and robust error handling to maintain data integrity and system uptime.
- Book a lecture hall: Reserve a lecture hall for classes.
- View bookings: See booked and available time slots.
- Cancel reservations: Cancel bookings if plans change.
- Manage lecture halls: Add and update lecture hall details.
- View and manage all bookings: Resolve conflicts and optimize usage.
- View lecture hall schedule: Check the schedule to attend classes.
- Frontend: Node.js, React.js
- Backend: Java, Spring Boot
- Database: MySQL
- Tools: VS Code, MySQL Workbench, Postman, Swagger UI
- Node.js (>= 14.x)
- Java (>= 11)
- MySQL (>= 8.x)
- Docker (optional, for containerization)
-
Clone the repository:
git clone https://github.com/your-repo/lecture-hall-booking-system.git cd lecture-hall-booking-system
-
Backend Setup:
cd backend ./mvnw clean install ./mvnw spring-boot:run
-
Frontend Setup:
cd frontend npm install npm start
-
Database Setup:
- Import the provided SQL scripts in
database
directory to set up the MySQL database.
- Import the provided SQL scripts in
- Register as a lecturer or student.
- Login to the system.
- Navigate to the booking calendar.
- Book or cancel a lecture hall.
- View and manage reservations.
Detailed API documentation can be found here.
- Data Protection: All sensitive data, such as passwords, are encrypted using SHA-256.
- Access Control: Implemented using Spring Security with role-based access control (RBAC).
- Audit Logging: All user activities are logged with timestamps.
For detailed documentation, including architecture diagrams, use cases, and more, visit our Wiki.
Download the project documentation PDF