Architecture overview¶
This architecture documentation follows the twelve-section arc42 structure and describes MRBS 1.12.2.
It is a descriptive view of the released system, derived from the source code,
database schemas, and configuration supplied with tag v1.12.2.
System at a glance¶
MRBS is a server-rendered PHP application. Browser requests enter page
controllers in web/, pass through a shared bootstrap, use application and
domain code under web/lib/MRBS/, and persist bookings and configuration in
MySQL/MariaDB or PostgreSQL.
flowchart LR
Browser[Web browser] -->|HTTPS| Web[MRBS PHP application]
Web -->|PDO| DB[(MRBS database)]
Web -->|optional| IdP[Identity provider]
Web -->|optional| Mail[Mail service]
Web -->|iCalendar| Calendar[Calendar clients]
arc42 sections¶
- Introduction and goals
- Architecture constraints
- Context and scope
- Solution strategy
- Building block view
- Runtime view
- Deployment view
- Cross-cutting concepts
- Architecture decisions
- Quality requirements
- Risks and technical debt
- Glossary
Evidence and maintenance¶
Important source anchors include:
web/defaultincludes.incfor request bootstrap order;web/lib/MRBS/for namespaced application components;web/mrbs_auth.incfor authentication and authorization integration;tables.my.sqlandtables.pg.sqlfor persistence;systemdefaults.inc.phpandareadefaults.inc.phpfor configuration;AUTHENTICATION,INSTALL, andUPGRADEfor operational intent.
When architecture changes, update the affected arc42 section in the same change. Record significant new decisions in the decision section rather than only describing the resulting code.