How azeltdz/capstone works
This is a multi-branch restaurant operations platform: cashiers use point-of-sale, table, and order screens, while owners manage branches, menu and recipes, inventory, staff, transactions, settings, and analytics. The React app calls a shared API client; an Express server mounts domain routes that lead to controllers and data models. The graph preserves documented product areas, but most frontend-to-endpoint wiring and several backend domain implementations were not excerpted, so those connections are omitted rather than inferred.
Main entry points: App.jsx App routing · routes Domain routes · branchRoutes.js Branch routes · inventoryRoutes.js Inventory routes
Components 23
Web application
- App routing
frontend/src/App.jsx - Sign-in
frontend/src/pages/LoginPage.jsx - Auth context
frontend/src/context/AuthContext.jsx - API client
frontend/src/api/client.js
Cashier operations
- POS, tables, orders
frontend/src/pages/cashier
Owner operations
- Owner workspace
frontend/src/pages/owner - AI analytics
frontend/src/pages/owner/AIAnalyticsView.jsx
Backend API
- Domain routes
backend/src/routes - Branch routes
backend/src/routes/branchRoutes.js - Inventory routes
backend/src/routes/inventoryRoutes.js - Menu and recipe routes
backend/src/routes/menuRoutes.js - Branch management
backend/src/controllers/branchController.js - Inventory operations
backend/src/controllers/inventoryController.js - Transaction reporting
backend/src/controllers/transactionController.js - Authentication
backend/src/middleware/authMiddleware.js - Role authorization
backend/src/middleware/roleMiddleware.js - Analytics services
backend/src/services/analyticsService.js
Domain data
- Branch data
backend/src/models/branchModel.js - Inventory data
backend/src/models/inventoryModel.js - Transaction data
backend/src/models/transactionModel.js - Other domain models
backend/src/models
Other components
- Cashier
- Owner
Connections 25
- Cashier → App routing: uses
frontend/src/App.jsx - Owner → App routing: uses
frontend/src/App.jsx - App routing → Sign-in: routes to
frontend/src/App.jsx - App routing → Auth context: provides auth
frontend/src/App.jsx - App routing → POS, tables, orders: routes to
frontend/src/App.jsx - App routing → Owner workspace: routes to
frontend/src/App.jsx - App routing → AI analytics: routes to
frontend/src/App.jsx - Auth context → API client: uses
frontend/src/context/AuthContext.jsx - App routing → Domain routes: mounts
- Domain routes → Branch routes: includes
backend/app.js - Domain routes → Inventory routes: includes
backend/app.js - Domain routes → Menu and recipe routes: includes
backend/app.js - Branch routes → Branch management: dispatches to
backend/src/routes/branchRoutes.js - Inventory routes → Inventory operations: dispatches to
backend/src/routes/inventoryRoutes.js - Menu and recipe routes → Other domain models: routes menu and BOM
- Inventory operations → Branch data: reads branch
backend/src/controllers/inventoryController.js - Inventory operations → Inventory data: reads and writes
backend/src/controllers/inventoryController.js - Branch management → Branch data: reads and writes
backend/src/controllers/branchController.js - Transaction reporting → Transaction data: queries
backend/src/controllers/transactionController.js - Transaction reporting → Branch data: reads branches
backend/src/controllers/transactionController.js - Branch management → Analytics services: gets pace stats
backend/src/controllers/branchController.js - Branch routes → Authentication: protects routes
backend/src/routes/branchRoutes.js - Branch routes → Role authorization: guards owner actions
backend/src/routes/branchRoutes.js - Inventory routes → Authentication: protects routes
backend/src/routes/inventoryRoutes.js - Inventory routes → Role authorization: guards owner actions
backend/src/routes/inventoryRoutes.js