TurboRFQ — Project Bible
Single source of truth for all architectural and operational knowledge about the project.
Rule — Architecture: Every architectural decision — new service, changed data flow, chosen library, API contract, auth model — must be recorded here before or immediately after implementation. If it's not in the Bible, it doesn't officially exist.
Rule — Language: All documentation in the Bible is written in English. This applies to file contents, section headings, comments, and any inline notes.
Contents
| File | What's inside |
|---|---|
| architecture.md | System design, backend services, data flow |
| api.md | All REST API endpoints with parameters and responses |
| frontend.md | Frontend components, Tabulator integration |
| installation.md | Docker & manual setup, environment variables, prerequisites |
| usage.md | User guide: login, CRUD, CSV import/export, backup |
| security.md | Auth model, session handling, access control |
| roadmap.md | Known gaps, customization ideas, future work |
Project Summary
TurboRFQ is a lightweight PHP web application that provides an Excel-like interface for browsing and editing MariaDB tables.
- Users authenticate with their own MariaDB credentials — no separate app user store.
- The app is schema-agnostic: it reads all metadata from
information_schemaand works with any database. - The UI is a live editable grid built on Tabulator with per-column filters, server-side pagination, and full CRUD.
Tech Stack at a Glance
| Layer | Technology |
|---|---|
| Backend language | PHP 8.1+ |
| Routing / DI | Slim 4, PHP-DI |
| Database access | PDO (MariaDB/MySQL) |
| Frontend | Vanilla JS + Tabulator |
| Containerization | Docker |
Repository Layout
turborfq/
├── bible/ ← you are here (architecture documentation)
├── public/
│ ├── index.php ← front controller, all routes
│ ├── index.html ← single-page shell (sidebar + toolbar + grid)
│ └── js/app.js ← all frontend logic
├── src/
│ ├── Db.php ← PDO factory
│ ├── MetaService.php ← schema/column/FK metadata
│ ├── DataService.php ← CRUD, CSV, batch ops
│ └── BackupService.php← mysqldump wrapper
├── composer.json
└── Dockerfile