This provides an overview of how the calendar works.
DMS calendar communicates with:
- MariaDB: holds persistent data (e.g. calendar events, attendees, etc.); MySQL-compatible database server
- DMS Active Directory (LDAP): connects the calendar to DMS accounts used across DMS's other services; account / authentication server
- Braintree: credit card processesing; third-party service
- Sparkpost: sends email notifications? third-party service
- Twilio: sends SMS notifications; third-party service
The webserver is one of:
- Production: Apache and PHP-FPM for calendar.dallasmakerspace.org. If you run locally without Docker, you might also be using these.
You can think of these as wrappers around CakePHP that handle low-level stuff like managing parallel requests, network connections, etc. They just invoke index.php with each request. This activates the CakePHP framework, and eventually the calendar code under src/ is invoked (see next section).
The app is built with CakePHP, which is a pretty typical MVC framework with CRUD-centric route handling.
Key files:
- index.php - entrypoint for everything
- config/bootstrap.php - global setup type stuff
- config/routes.php - URL-to-Controller mappings
- src/ - all the core business logic for the calendar and associated UI markup
Here's how a response is computed:
More details on the rest can be found at CakePHP - request cycle and controllers request flow are especially helpful.
Warning: check composer.json to ensure you're looking at docs for the right version of CakePHP.