mothermachine

Browse / Scheduling and staffing

ep-3 Bookingsystem

MIT court and facility booking calendar used by sports clubs, configured through PHP config files.

Adaptable Business appWeb app Deterministic PHPJavaScript License: MIT

ep-3 Bookingsystem lets members check and book free slots of a facility (originally tennis courts) on one large calendar, with billing statuses, concurrent-booking limits, custom translations and a responsive layout. It is a LAMP application on Zend Framework 2; installation is renaming and editing config/init.php and config/autoload/local.php, then running the setup tool. No API is documented.

Use it when
  • our club needs members to reserve courts or rooms online and pay per slot, on cheap shared PHP hosting
  • I want a booking calendar I can hand to a volunteer admin, with rules in a backend rather than in code
Gotchas
  • Zend Framework 2 with hand-patched components for PHP 8; composer install needs --ignore-platform-reqs
  • Apache with mod_rewrite is assumed; the document root must be the public directory
  • No API: an agent can only drive it through the browser
  • Configuration behavior changed in 1.6.2; follow data/docs/update.txt when upgrading

Last activity Aug 15, 2026. Fit: adaptable 3, operable 0.

Editions

Free · Free open source

  • Clonegit clone https://github.com/tkrebs/ep3-bs
  • DownloadDownload

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only5 things to edit

Rename config/init.php.dist to init.php and config/autoload/local.php.dist to local.php; local.php carries the database credentials, the mail transport (sendmail, smtp, smtp-tls or file), the language choices, currency and fallback locale. Run public/setup.php once, then delete it. Booking rules, squares, prices and billing statuses are set in the backend UI. Branding is css-client/default.css, imgs-client/layout/logo.png and the favicon; custom modules drop into the modulex directory.

Env vars
none
Config files
config/init.php.dist config/autoload/local.php.dist config/autoload/global.php public/css-client/default.css public/imgs-client/layout/logo.png
Prompt files
none
Accounts you need
none

Source

Code stack

Languages
PHPJavaScript
Frameworks
Zend Framework 2
Package manager
composer
Database
MySQLMariaDB
Hosting target
apachelamp
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: web application on LAMP, Zend Framework 2, responsive layout95%
executionModelno model SDK or AI feature95%
operabilityno API, MCP or CLI in README, INSTALL.md or data/docs85%
effortINSTALL.md names config/init.php.dist and config/autoload/local.php.dist; local.php.dist read this run90%
editionsREADME: MIT; website offers pre-made packages90%
activeshortlist pushedAt 2026-08-15; README: version 1.9.1 from August 2026–
reach0%

Open questions

  • Does the 'pre-made package' on bs.hbsys.de differ from the GitHub tree?
  • Is there an iCal or JSON export of bookings that an agent could read?

Sources