コンテンツにスキップ

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

  1. Introduction and goals
  2. Architecture constraints
  3. Context and scope
  4. Solution strategy
  5. Building block view
  6. Runtime view
  7. Deployment view
  8. Cross-cutting concepts
  9. Architecture decisions
  10. Quality requirements
  11. Risks and technical debt
  12. Glossary

Evidence and maintenance

Important source anchors include:

  • web/defaultincludes.inc for request bootstrap order;
  • web/lib/MRBS/ for namespaced application components;
  • web/mrbs_auth.inc for authentication and authorization integration;
  • tables.my.sql and tables.pg.sql for persistence;
  • systemdefaults.inc.php and areadefaults.inc.php for configuration;
  • AUTHENTICATION, INSTALL, and UPGRADE for 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.