60 lines
2.5 KiB
Markdown
60 lines
2.5 KiB
Markdown
# 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](architecture.md) | System design, backend services, data flow |
|
|
| [api.md](api.md) | All REST API endpoints with parameters and responses |
|
|
| [frontend.md](frontend.md) | Frontend components, Tabulator integration |
|
|
| [installation.md](installation.md) | Docker & manual setup, environment variables, prerequisites |
|
|
| [usage.md](usage.md) | User guide: login, CRUD, CSV import/export, backup |
|
|
| [security.md](security.md) | Auth model, session handling, access control |
|
|
| [roadmap.md](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_schema` and 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
|
|
```
|