The Lecture Hall Management System (LHMS) is a web-based application designed to efficiently manage lecture halls, lecture schedules, and user access within a university environment. The system aims to eliminate scheduling conflicts, improve lecture hall utilization, and provide a centralized and reliable timetable management platform.
This project is developed as part of the Software Engineering module and follows a complete software engineering lifecycle, including requirement elicitation, system analysis, design, implementation, testing, and documentation. The development process follows Agile (Scrum) methodology and applies industry-standard software engineering best practices.
The primary objectives of this system are:
- To provide a centralized platform for lecture hall and schedule management
- To prevent lecture hall booking conflicts through an approval-based workflow
- To support multiple stakeholders with role-based access control
- To demonstrate correct application of software engineering principles
- To develop a scalable, maintainable, and well-documented system
- Lecture hall registration and management
- Lecture and event scheduling with conflict detection
- Role-based access control (Lecturer, Student, HOD, TO)
- Approval-based booking workflow
- Timetable viewing for lecturers and students
- Secure authentication and authorization
- Notification handling for schedule changes
- Online lecture delivery
- Attendance tracking
- Payment or billing functionality
- External LMS integrations
-
Lecturer
Requests lecture halls, views personal timetables, and updates booking requests subject to approval. -
Student
Views personal lecture timetables and allocated lecture halls. -
Head of Department (HOD)
Reviews, approves, or rejects lecture hall booking requests and oversees departmental scheduling. -
Technical Officer (TO)
Verifies and approves user account registrations manually before system access is granted.
- Frontend: React.js
- Backend: Node.js with Express.js
- Database: MongoDB
- Authentication: JWT-based authentication
- Version Control: Git and GitHub
- Project Management: Jira (Scrum-based workflow)
The system follows a client–server architecture:
- The React frontend provides role-based user interfaces
- The Node.js/Express backend handles business logic, validation, approvals, and notifications
- MongoDB is used for persistent data storage
- RESTful APIs are used for communication between client and server
- Authentication and authorization are enforced at the server level
This architecture promotes low coupling, high cohesion, and future scalability.
Lecture-hall-management/
│
├── client/ # React frontend
│ ├── public/
│ └── src/
│ ├── assets/
│ ├── components/
│ ├── pages/
│ ├── services/
│ ├── context/
│ ├── utils/
│ ├── App.jsx
│ └── main.jsx
│
├── server/ # Node.js backend
│ ├── src/
│ │ ├── config/
│ │ ├── models/
│ │ ├── controllers/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── middleware/
│ │ ├── app.js
│ │ └── server.js
│ └── tests/
│
├── docs/ # Software Engineering documentation
│ ├── PM/
│ ├── RA/
│ ├── QA/
│ └── User_Documentation.md
│
├── tests/ # Integration and system tests
│
├── .github/
│
├── .gitignore
├── README.md
└── package.json
- Agile development using Scrum
- Sprint-based development with weekly reviews
- Requirements traceability from SRS to testing
- UML-based system design
- SOLID principles for clean code
- Low coupling and high cohesion
- Continuous testing and refactoring
- Usability: Simple and intuitive interfaces
- Performance: Fast response under normal load
- Security: Role-based access control
- Availability: Accessible during university working hours
- Node.js (LTS)
- MongoDB
- Git
- Clone the repository:
git clone Lecture-hall-management
- Install backend dependencies:
cd server
npm install
- Install frontend dependencies:
cd server
npm install
-
Configure environment variables (MongoDB URI, JWT secret)
-
Run the application:
npm run dev
POST /api/auth/login– User authenticationGET /api/halls– Retrieve lecture hallsPOST /api/schedules– Create lecture schedulesGET /api/schedules– View lecture schedules
- Unit testing for backend services
- Integration testing for scheduling logic
- Manual and automated test cases
- Bug tracking and reporting using Jira
- Scrum-based development
- Weekly sprint planning and reviews
- Task and issue tracking via Jira
- Version control using Git
Developed by a student team as part of the Software Engineering module, Faculty of Engineering.
This project is developed strictly for academic purposes and learning outcomes of the Software Engineering course.
- Secure Onboarding: Simplified Sign-Up page by removing role selection; users are now vetted and assigned roles manually by the Timetable Officer (TO).
- Role-Specific Dashboards: Custom-tailored sidebars and views for 4 distinct roles (Student, Lecturer, HOD, and TO).
- Minimalist UX: Removed redundant action buttons and legend sections to provide a cleaner, data-focused workspace.
- Status Visualization: Integrated a color-coded system (Green/Yellow/Red) for instant booking status recognition.
- Optimized Profiles: Created specialized profile views (e.g., "Courses Teaching" for Lecturers) to replace generic statistics.
