QR Order
QR code-based queue, table assignment, and order system. This repository provides the basic skeleton (backend, frontend, docs, db) described in Agent.md.
- Detailed requirements:
Agent.md - Backend: Spring Boot (Java 17)
- Frontend: Vue 3 + Vite
- Database: MariaDB (sample compose configuration for development)
backend/— Spring Boot starter (includes a health-check endpoint)frontend/— Vue 3 + Vite scaffolding with stubbed ordering, queue, and admin viewsdb/— initial schema draft (schema.sql)docs/— architecture/roles/features/API sketches
Frontend
cd frontendnpm install(install dependencies)npm run dev(run development server)npm run type-check(optional: Vue/TS type check)
Backend
- Prepare a Java 17 runtime
cd backend- With Gradle:
./gradlew bootRun(initial run downloads dependencies) - Default admin credentials:
admin / 1234
Database (optional)
- Launch MariaDB locally using
compose.yaml. - Tune the connection info in
backend/src/main/resources/application.yml.
- Authentication/authorization: define admin/user session flows and introduce JWT
- Flesh out domain models: refine schemas for tables, queues, orders, and menus
- Document API with OpenAPI and synchronize with frontend
- Centralize cart/session state via Pinia
- Establish CI rules and formatting (e.g., ESLint/Prettier, Checkstyle/Spotless)
See docs/ARCHITECTURE.md for a more detailed design overview.
Additional reference docs: docs/ROLES_AND_FLOWS.md, docs/API_SKETCH.md
- User logins are recorded in
users, and seat/table sessions are shared across manager and guest UIs viatable_sessions. - Orders and order history persist to
ordersandorder_itemsso that admin history pages and table views stay synchronized. - Menu CRUD links to
menu_itemsand reflects immediately on the frontend grid.
The current schema revamp is not backward compatible. Follow the steps below before re-applying schema.sql:
DROP DATABASE IF EXISTS qr_order;
CREATE DATABASE qr_order CHARACTER SET utf8mb4;mysql -uroot -p1234 qr_order < db/schema.sql