Author: Debrato Ghosh Registration Number: 240911734 Branch: Information Technology Section: IT A Roll Number: 62
The proposed system is a Web-Based Classroom Booking and Scheduling System designed to efficiently manage classroom allocations in a university environment. Manual scheduling methods often lead to double booking, inefficient room utilization, and difficulties in managing recurring lecture reservations as well as event and student club activity bookings. This system provides a centralized database-driven solution to handle classroom reservations for multiple purposes while enforcing strict integrity constraints.
The system supports both single and periodic bookings such as weekly lectures throughout a semester, one-time event bookings, and student club activities. It prevents overlapping reservations using database-level constraints and trigger-based validation mechanisms. The system also allows cancellation of specific sessions within a periodic booking without affecting the entire schedule. Role-based access ensures that only authorized faculty, administrators, and club organizers can perform booking operations.
The implementation uses PostgreSQL for database design with integrity constraints, stored procedures, functions, triggers, and complex queries. The application layer uses Java with JDBC connectivity following the three-tier architecture pattern, utilizing Servlets for business logic and JSP for presentation. The system ensures optimized classroom utilization, conflict detection, and reliable scheduling through database-enforced constraints.
- PostgreSQL 14+ – Relational Database Management System
- PL/pgSQL – Procedural Language for PostgreSQL
- Java SE 8+ – Core Programming Language
- JDBC (Java Database Connectivity) – Database communication
- Java Servlets – Request handling and business logic
- DAO (Data Access Object) Pattern – Database abstraction layer
- Apache Tomcat 9.0+ – Servlet Container / Application Server
- JSP (JavaServer Pages) – Dynamic web page generation
- JSTL (JSP Standard Tag Library) – Simplified JSP development
- HTML5 – Markup structure
- CSS3 – Styling and layout
- Bootstrap 5 – Responsive UI framework
- JavaScript (Vanilla) – Client-side validation and interactivity
- VS Code
- pgAdmin 4
- Git
Universities require a structured and reliable system to manage classroom bookings for lectures, seminars, academic events, and student club activities. The system must:
- Prevent overlapping classroom bookings through database triggers
- Support periodic (weekly) bookings for an entire semester
- Allow cancellation of specific sessions within a recurring booking
- Handle multi-purpose room usage for courses, events, and club activities
- Maintain booking history and audit records using database triggers
- Enforce referential integrity and validation constraints at the database level
- Provide secure and authorized access for faculty, administrators, and club organizers
- Handle concurrent booking requests with proper transaction management
- Generate reports on classroom utilization
The system follows a three-tier architecture pattern:
- JSP pages for user interface
- HTML forms for data input
- JavaScript for client-side validation
- Bootstrap for responsive design
- Java Servlets for handling HTTP requests
- DAO classes for database operations
- Model classes representing database entities
- Business logic implementation
- Session management for user authentication
- PostgreSQL database with normalized tables
- Stored procedures for complex operations
- Functions for reusable logic
- Triggers for automatic constraint enforcement
- Views for complex queries and reporting
The system uses an extended university database schema with additional tables for booking management.
dept_name VARCHAR(50)– Primary Key
ID VARCHAR(5)– Primary Keyname VARCHAR(20)– NOT NULLdept_name VARCHAR(50)– Foreign Key → Department
course_id VARCHAR(8)– Primary Keytitle VARCHAR(50)dept_name VARCHAR(50)– Foreign Key → Departmentcredits NUMERIC(2,0)– CHECK (credits > 0)
building VARCHAR(15)room_number VARCHAR(7)capacity NUMERIC(4,0)- Composite Primary Key (
building,room_number)
time_slot_id VARCHAR(4)– Primary Keyday VARCHAR(1)– CHECK (M, T, W, R, F, S, U)start_time TIMEend_time TIME
organizer_id SERIAL– Primary Keyname VARCHAR(100)type VARCHAR(20)– FACULTY / CLUB / ADMINcontact_email VARCHAR(100)faculty_advisor_id VARCHAR(5)– Foreign Key → Instructor
booking_id SERIAL– Primary Keycourse_id VARCHAR(8)inst_id VARCHAR(5)building VARCHAR(15)room_number VARCHAR(7)time_slot_id VARCHAR(4)semester VARCHAR(6)year NUMERIC(4,0)booking_type VARCHAR(10)– SINGLE / PERIODICbooking_category VARCHAR(20)– COURSE / EVENT / CLUBorganizer_id INTEGERstatus VARCHAR(10)– ACTIVE / CANCELLEDcreated_at TIMESTAMP
Note:
- For COURSE bookings →
inst_idrepresents the teaching faculty - For EVENT bookings →
inst_idrepresents the faculty coordinator - For CLUB bookings →
inst_idrepresents the faculty advisor
- Stores cancelled dates within periodic bookings
- Maintains history of booking operations
- Trigger-based prevention of overlapping bookings
- Validation of classroom, time slot, semester, and year
- Pre-insertion validation using stored functions
- Weekly recurring bookings for entire semester
- Individual lecture cancellation
- Exception tracking through dedicated table
- ACID compliance
- Rollback on conflicts
- Exception handling in JDBC layer
- Role-based access control
- Session management
- Password hashing
- Login/Logout functionality
- Course bookings
- Event reservations
- Club activities
- Classroom utilization reporting
sp_create_booking()sp_cancel_booking()sp_cancel_specific_lecture()
fn_check_room_availability()fn_is_date_cancelled()fn_get_instructor_bookings()
trg_prevent_double_bookingtrg_log_booking_changestrg_validate_booking_category
v_active_bookingsv_available_roomsv_instructor_schedule
- Fully functional web-based classroom booking system
- Zero double-booking through database-enforced constraints
- Seamless periodic booking with individual cancellation support
- Multi-purpose room usage support
- Comprehensive audit trail
- Real-time availability checking
- Scalable and maintainable architecture
- Secure authentication and authorization
The Web-Based Classroom Booking and Scheduling System provides a comprehensive and structured solution for managing classroom reservations in a university environment. By leveraging PostgreSQL’s advanced database features and a Java-based three-tier architecture, the system ensures data consistency, conflict prevention, and optimized resource utilization.
The implementation demonstrates practical application of database integrity constraints, stored procedures, triggers, complex queries, and JDBC connectivity while maintaining scalability, security, and maintainability.