1. Introduction and goals¶
Purpose¶
MRBS coordinates bookings for meeting rooms and other shared resources. It replaces informal calendars or paper books with a multi-user web application that prevents conflicting reservations and applies configurable policies.
Primary functional goals¶
- Present availability by day, week, month, and year.
- Create, change, delete, search, report, import, and export bookings.
- Support repeated, private, provisional, and registrable bookings.
- Organize resources into areas and rooms.
- Authenticate users against local or external identity stores.
- Delegate administration by system, area, and room.
- Operate with MySQL/MariaDB or PostgreSQL.
- Support localized user interfaces and room timezones.
Stakeholders¶
| Stakeholder | Concern |
|---|---|
| Visitor | See permitted availability without unnecessary friction |
| Authenticated user | Make and manage valid bookings |
| Booking administrator | Review and manage bookings for assigned resources |
| System administrator | Configure rooms, users, policy, integrations, and upgrades |
| Operator | Run, secure, monitor, back up, and recover the installation |
| Identity administrator | Maintain accounts, roles, groups, and single sign-on |
| Developer or contributor | Change behavior without breaking supported deployments |
| Translator | Keep terminology and interface text accurate in each locale |
Quality goals¶
| Priority | Quality goal | Meaning for MRBS |
|---|---|---|
| 1 | Integrity | Conflicting or policy-invalid bookings must not be accepted |
| 2 | Security | Identity, authorization, redirects, imports, and secrets must be handled safely |
| 3 | Deployability | A conventional PHP and SQL environment must be sufficient |
| 4 | Configurability | One code base must serve varied rooms, policies, and identity systems |
| 5 | Maintainability | Database and integration variants should remain isolated behind stable abstractions |
| 6 | Usability | Common booking and administration tasks should be understandable in a browser |
Scope¶
The system includes the browser-facing application, PHP application code, database schema and upgrade logic, built-in session and authentication adapters, email generation, calendar import/export, themes, and translations.
External databases, identity providers, mail servers, CMS installations, web servers, and browser software are outside the system but connected through documented interfaces.