A comprehensive, Retro/Matrix-styled reservation system originally designed for a FabLab/Meeting Room. It features a lightweight PHP web interface and hardware integration for E-paper status displays.
- Desktop Dashboard (
index.php):- "Retro/Cyberpunk" aesthetic.
- Weekly calendar view (via FullCalendar).
- Real-time status dashboard (Free/Busy, Current Event, Next Event).
- Mobile Version (
mobil.php):- Optimized for touch devices.
- Simplified daily view.
- Add/Edit reservations on the go.
- E-Ink Display (
fablab.ino):- C++ firmware for ESP32/Arduino.
- Fetches data from the API to show room status on a low-power E-paper screen.
- Smart WiFi connection handling and OTA updates ready.
- Magic Mirror / Info Screen (
mirror.php):- High-contrast, large-font display mode.
- Designed for dedicated tablets or smart mirrors outside the room.
- Zero-Config Database: Uses a flat JSON file (
events.json) for data storage. No MySQL/PostgreSQL required. - JSON API (
api.php): Exposes normalized data for 3rd party integrations or hardware.
- Server Requirements: Any web server with PHP 7.4+.
- Upload: Copy all files to your web server directory.
- Permissions:
- Ensure
events.jsonis writable by the web server. - Example command:
chmod 777 events.json(orchown www-data events.jsondepending on your security needs).
- Ensure
By default, the system is set to Europe/Prague. You can change this in api.php:
date_default_timezone_set('Europe/Prague');- Open
fablab.inoin the Arduino IDE. - Install required libraries:
GxEPD2,Adafruit_GFX,ArduinoJson. - Fill in your WiFi credentials and server URL in the configuration section:
WifiInfo networks[] = { {"YOUR_SSID", "YOUR_PASS"} }; const char* server = "your-domain.com"; - Upload to your board.
Feel free to fork this repository and submit pull requests.
This project is open source.