This project provides a system for booking conference rooms and related resources. It includes both user-facing features and administrative tools.
- Users must be able to register in the system.
- Users must be able to log in to their account.
- Users can view available booking resources (e.g., rooms, services, events).
- Users can filter resources by category, price, and availability.
- Keyword-based search is supported.
- Users can create a new booking by selecting date and time.
- The system checks resource availability before confirming the booking.
- Users can view a list of their existing bookings.
- Users can cancel or modify a booking (if within the permitted window).
- Admins can add, update, or delete resources.
- Admins can view usage statistics.
- All user data must be transmitted over HTTPS.
- Authentication is handled via JWT or another secure token-based method.
- Administrative access is restricted to users with the appropriate role.
- The web interface should load in under 2 seconds under normal conditions.
- APIs should respond within 300ms in 95% of cases.
- The system must maintain at least 99% availability.
- The database should have backups not older than 24 hours in case of failure.
- The architecture must support horizontal scaling of the API and frontend components.
- The database should support sharding if required.
- Components should be independent, well-documented, and covered by unit tests.
- A modular structure with clear contracts between modules should be applied.
- The API should conform to the OpenAPI 3.0 specification.
- Integration with external services should be via REST or Webhooks.