Software Requirements Specification (SRS)
Project Title: Hotel Management System
Functional Requirements
Functional requirements define what the system should do—its core features and behaviours.
1. User Authentication
The system shall allow employees to log in using email and password.
The system shall allow users to sign up with a username, email, and password.
The system shall validate user credentials before granting access.
2. Room Booking
The system shall allow users to book rooms by selecting room type, bed type, number of rooms, and dates.
The system shall calculate the number of days between check-in and check-out.
The system shall store booking information in the room book table.
3. Room Management
The system shall allow admin to add, update, or remove room types and bed configurations.
The system shall store room configuration in the room table.
4. Payment Processing
The system shall calculate and display the total charges including:
o Room charges
o Bed charges
o Meal charges
The system shall store payment details in the payment table.
5. Staff Management
The system shall allow admin to view, add, or remove staff details including their names and roles.
The system shall store staff records in the staff table.
6. Status Tracking
The system shall update the booking status (e.g., Confirmed, Cancelled) in the roombook table.
The system shall show current status to admin and employees.
7. Room Availability
The system shall check for available rooms before allowing a new booking.
The system shall restrict bookings if rooms are unavailable.
8. Data Validation
The system shall validate user inputs for correctness (e.g., valid email format, non-empty fields).
Non-Functional Requirements
Non-functional requirements define how the system should behave or perform.
1. Performance
The system should handle up to 100 concurrent users on a local network without significant delay.
Page load times should not exceed 2 seconds on average.
2. Security
Passwords must be stored securely (currently stored as plain text; this must be updated to hashed passwords
using bcrypt or similar).
System access should be restricted based on roles (e.g., admin vs. employee).
Input fields must be protected against SQL injection and XSS attacks.
3. Usability
The user interface should be intuitive and accessible for both tech-savvy and non-tech users.
All forms should provide clear instructions and error messages.
4. Reliability
The system should be available 99% of the time during business hours.
Data must be consistently saved to the database without corruption.
5. Maintainability
The code should follow modular and clean coding practices for easy updates.
The database schema should be normalized and well-documented.
6. Compatibility
The system should be compatible with all major browsers (Chrome, Firefox, Edge).
Should run on any system supporting PHP 8.1 and MariaDB 10.4 or higher.
7. Backup and Recovery
The system should support daily backups of the database.
In the event of a failure, the system should allow restoring data from backups.
8. Localization
(Optional/future) The system should be capable of supporting multiple languages for broader use.