How thanhtu1125/smartcafemanager works
NEO CAFÉ is a café ordering and operations application: customers browse a menu, build a table-linked cart, submit orders, and pay; staff progress orders and manage tables, while administrators manage catalog, people, news, and reporting. The React app routes role-aware screens through a shared API client to Spring controllers and services. Backend entities and repositories provide persistence; WebSocket updates support live table/order activity. The README is empty, so capability coverage relies on the supplied tree and excerpts; some backend wiring is unsampled and shown only where supported.
Main entry points: apiService.js HTTP API client · AppRoutes.jsx Screen routing · repository Data repositories · CustomerController.java Customer ordering API
Components 34
Customer experience
- Screen routing
frontend/src/routes/AppRoutes.jsx - Menu and cart
frontend/src/pages/client-menu/client-menu.jsx - Checkout
frontend/src/components/checkout.jsx - Sign-in and profile
frontend/src/pages/auth/Login.jsx - News screens
frontend/src/pages/news/NewsList.jsx
Café operations
- Table operations
frontend/src/pages/sale-manager/saleManager.jsx - Feedback manager
frontend/src/pages/feedback-manager/feedbackManager.jsx - Realtime bridge
frontend/src/components/SocketRealtimeBridge.jsx
Administration
- Admin screens
frontend/src/pages/admin-items/AdminItemList.jsx - Revenue dashboard
frontend/src/pages/RevenueDashboard/RevenueDashboard.jsx
Backend services
- HTTP API client
frontend/src/services/apiService.js - Authentication API
backend/src/main/java/com/codegym/backend/controller/AuthController.java - Customer ordering API
backend/src/main/java/com/codegym/backend/controller/CustomerController.java - Staff API
backend/src/main/java/com/codegym/backend/controller/StaffController.java - Payment API
backend/src/main/java/com/codegym/backend/controller/PaymentController.java - Feedback API
backend/src/main/java/com/codegym/backend/controller/FeedbackController.java - Catalog and admin APIs
backend/src/main/java/com/codegym/backend/controller/AdminItemController.java - News API
backend/src/main/java/com/codegym/backend/controller/NewsController.java - Statistics API
backend/src/main/java/com/codegym/backend/controller/StatisticController.java - Order and cart logic
backend/src/main/java/com/codegym/backend/service/CartServiceImpl.java - Staff order logic
backend/src/main/java/com/codegym/backend/service/StaffOrderServiceImpl.java - Payment logic
backend/src/main/java/com/codegym/backend/service/PaymentServiceImpl.java - Authentication logic
backend/src/main/java/com/codegym/backend/service/AuthService.java - News logic
backend/src/main/java/com/codegym/backend/service/NewsService.java - Feedback logic
backend/src/main/java/com/codegym/backend/service/FeedbackServiceImpl.java - Management logic
backend/src/main/java/com/codegym/backend/service - Data repositories
backend/src/main/java/com/codegym/backend/repository - Application database
backend/src/main/java/com/codegym/backend/entity
External systems
- PayPal
- Cloudinary
- Email delivery
- Redis OTP store
- WebSocket clients
Other components
- Customer or staff
Connections 48
- Customer or staff → Screen routing: opens screens
- Screen routing → Menu and cart: routes to
- Screen routing → Sign-in and profile: routes to
- Screen routing → News screens: routes to
- Screen routing → Table operations: routes to
- Screen routing → Feedback manager: routes to
- Screen routing → Admin screens: routes to
- Screen routing → Revenue dashboard: routes to
- Menu and cart → HTTP API client: requests menu/cart
- Checkout → HTTP API client: submits payment
- Sign-in and profile → HTTP API client: sends credentials
- News screens → HTTP API client: requests news
- Table operations → HTTP API client: requests table actions
- Feedback manager → HTTP API client: loads feedback
- Admin screens → HTTP API client: requests management
- Revenue dashboard → HTTP API client: requests statistics
- HTTP API client → Customer ordering API: HTTP requests
- HTTP API client → Authentication API: HTTP requests
- HTTP API client → Payment API: HTTP requests
- HTTP API client → Staff API: HTTP requests
- HTTP API client → Feedback API: HTTP requests
- HTTP API client → Catalog and admin APIs: HTTP requests
- HTTP API client → News API: HTTP requests
- HTTP API client → Statistics API: HTTP requests
- Customer ordering API → Order and cart logic: manages cart
- Customer ordering API → Staff order logic: reads table info
- Staff API → Staff order logic: manages orders
- Payment API → Payment logic: processes payments
- Authentication API → Authentication logic: authenticates users
- News API → News logic: manages news
- Feedback API → Feedback logic: handles feedback
- Catalog and admin APIs → Management logic: manages catalog
- Statistics API → Management logic: gets statistics
- Order and cart logic → Data repositories: persists orders
- Staff order logic → Data repositories: reads and updates
- Payment logic → Data repositories: updates payment records
- Authentication logic → Data repositories: reads accounts
- News logic → Data repositories: reads and writes news
- Feedback logic → Data repositories: reads and writes feedback
- Management logic → Data repositories: accesses records
- Data repositories → Application database: reads and writes
- Payment logic → PayPal: payment integration
- Management logic → Cloudinary: uploads media
- Authentication logic → Email delivery: sends OTP
- Authentication logic → Redis OTP store: stores OTP tokens
- Customer ordering API → WebSocket clients: publishes table events
- Staff API → WebSocket clients: publishes order updates
- Realtime bridge → WebSocket clients: subscribes to updates