How chonlajit/sbay works
SBAY is a smart-bin recycling, asset-management, and rewards system. Users authenticate, recycle at a machine, earn points, review recycling history, and redeem partner rewards; partners handle redemption requests, while administrators manage users, devices, partners, and operational statistics. The map combines documented system topology with sampled frontend requests and the backend module tree; backend internals beyond those paths are not sampled, so uncertain controller-to-service wiring is omitted.
Main entry points: nginx.conf Reverse proxy · SessionController.java Session endpoints · PartnerController.java Partner endpoints · AppController.java User and auth endpoints
Components 27
User experience
- Web application
frontend/app - Authentication UI
frontend/app/components/AuthContainer.tsx - Session and API context
frontend/app/context/SmartBinContext.tsx - History dashboard
frontend/app/dashboard/page.tsx - Public statistics
frontend/components/StatsDashboard.tsx
Recycling operations
- Machine operation
frontend/app/operation/[machineId]/page.tsx - Device endpoints
backend/src/main/java/com/example/iotbackend/controller/DeviceController.java - Session endpoints
backend/src/main/java/com/example/iotbackend/controller/SessionController.java - Recycle processing
backend/src/main/java/com/example/iotbackend/service/RecycleService.java - Device health
backend/src/main/java/com/example/iotbackend/service/DeviceHealthChecker.java - Session and transaction data
backend/src/main/java/com/example/iotbackend/repository/DeviceSessionRepository.java
Rewards and partners
- Reward catalog
frontend/app/redeem/page.tsx - Partner workspace
frontend/app/partner/page.tsx - Admin console
frontend/app/admin/page.tsx - Partner administration
frontend/app/admin/partners/page.tsx - Partner endpoints
backend/src/main/java/com/example/iotbackend/controller/PartnerController.java - Redemption data
backend/src/main/java/com/example/iotbackend/repository/RedemptionRepository.java
Backend platform
- User and auth endpoints
backend/src/main/java/com/example/iotbackend/controller/AppController.java - Statistics endpoints
backend/src/main/java/com/example/iotbackend/controller/StatsController.java - Admin endpoints
backend/src/main/java/com/example/iotbackend/controller/AdminController.java - MongoDB
- Reverse proxy
nginx/nginx.conf - WebSocket messaging
backend/src/main/java/com/example/iotbackend/config/WebSocketConfig.java
Other components
- User
- Partner staff
- Smart-bin device
- Google OAuth
Connections 33
- User → Web application: uses
- Web application → Reverse proxy: HTTP requests
- Reverse proxy → User and auth endpoints: routes API
- Reverse proxy → Session endpoints: routes API
- Reverse proxy → Device endpoints: routes API
- Reverse proxy → Partner endpoints: routes API
- Reverse proxy → Admin endpoints: routes API
- Reverse proxy → Statistics endpoints: routes API
- Authentication UI → Session and API context: uses auth
- Session and API context → User and auth endpoints: calls auth
- Authentication UI → Google OAuth: OAuth login
- User → Machine operation: operates bin
- Machine operation → Session endpoints: requests session
- Smart-bin device → Device endpoints: reports device data
- Device endpoints → Device health: checks health
- Session endpoints → Recycle processing: processes session
- Recycle processing → Session and transaction data: persists activity
- History dashboard → Session endpoints: loads history
- History dashboard → User and auth endpoints: loads user data
- Public statistics → Statistics endpoints: loads statistics
- Reward catalog → Partner endpoints: loads rewards
- Reward catalog → User and auth endpoints: requests redemption
- Partner staff → Partner workspace: handles requests
- Partner workspace → Partner endpoints: manages redemptions
- Partner endpoints → Redemption data: stores redemption data
- Admin console → Admin endpoints: admin operations
- Admin console → WebSocket messaging: subscribes updates
- Partner administration → Admin endpoints: manages partners
- User and auth endpoints → MongoDB: stores application data
- Session endpoints → MongoDB: stores session data
- Partner endpoints → MongoDB: stores partner data
- Admin endpoints → MongoDB: accesses records
- Statistics endpoints → MongoDB: reads statistics data