How airinkamala/qr-menu works
This is a QR-menu and cafeteria ordering application. Customers browse available menu items, inspect details, save bookmarks or add items to a cart, then submit an order with their name and location; administrators manage menu entries and categories. The backend exposes menu, category, and order APIs backed by MySQL, and stores uploaded menu images locally. The tree and sampled files establish the routing and several API calls; unsampled page behavior and its specific wiring are not assumed.
Main entry points: server.js Express API · index.js Page router · DetailPage.vue Item details · OrderPage.vue Order checkout
Components 14
Customer experience
- Vue app
frontend/src/App.vue - Page router
frontend/src/router/index.js - Menu browsing
frontend/src/component/view/UserPage.vue - Item details
frontend/src/component/view/DetailPage.vue - Order checkout
frontend/src/component/view/OrderPage.vue - Categories
frontend/src/component/view/CategoryPage.vue - Cart and bookmarks
frontend/src/stores/order.js
Menu administration
- Menu management
frontend/src/component/view/AdminPage.vue
API service
- Express API
backend/server.js
Persistence
- Menu image files
backend/uploads - QR menu database
qr-menu.sql - Browser local storage
Other components
- Customer
- Administrator
Connections 17
- Customer → Vue app: opens
- Administrator → Vue app: opens
- Vue app → Page router: renders routes
- Page router → Menu management: routes /
- Page router → Menu browsing: routes /home
- Page router → Order checkout: routes /order
- Page router → Categories: routes /category
- Page router → Item details: routes /menu/:id
- Item details → Express API: fetches item
- Item details → Cart and bookmarks: updates cart
- Order checkout → Express API: submits order
- Order checkout → Express API: fetches menu
- Menu management → Express API: manages menu
- Menu management → Express API: fetches categories
- Express API → QR menu database: queries and updates
- Express API → Menu image files: stores and serves images
- Cart and bookmarks → Browser local storage: saves cart data