How hky0826/fyp-smart-campus works
This repository combines campus access control, a cloud RAG assistant, dashboard services, and mapping/navigation with notifications. A kiosk captures a face, verifies access locally, and synchronizes device data with the cloud; users can also ask audio or text questions. Administrators manage campus data and maps, while navigation computes routes and can trigger notifications. The graph focuses on those product workflows and the RAG ingestion/retrieval and mapping-analysis layers. Some subsystem wiring is documented or indexed rather than shown in excerpts, so uncertain links are omitted or dashed.
Main entry points: main.py Kiosk API · access_controller.py Kiosk Controller · chat_service.py Chat Service · chatbot_controller.py Audio Chat
Components 29
Edge Access
- Kiosk API
access_control/facial_recognition/src/api/main.py - Face Access Pipeline
access_control/facial_recognition/src/pipelines/access_control.py - Device SQLite
access_control/facial_recognition/src/face/database.py - Device Sync
access_control/facial_recognition/src/sync.py - Kiosk Controller
access_control/ui/access_control_gui/controllers/access_controller.py - Kiosk API Client
access_control/ui/access_control_gui/controllers/api_client.py - Camera Controller
access_control/ui/access_control_gui/controllers/camera_controller.py - Audio Chat
access_control/ui/access_control_gui/controllers/chatbot_controller.py - Audio Terminal
access_control/audio_io/main.py
Cloud Assistant
- RAG API Router
cloud/RagChatbot/router.py - Chat Service
cloud/RagChatbot/services/chat_service.py - Query Classification
cloud/RagChatbot/generation/query_router.py - Document Retrieval
cloud/RagChatbot/retrieval/retriever.py - Vector Store
cloud/RagChatbot/retrieval/vector_store.py - LLM Generation
cloud/RagChatbot/generation/google_llm_service.py - Document Ingestion
cloud/RagChatbot/services/ingestion_service.py - Embedding Service
cloud/RagChatbot/embeddings/google_embedding_service.py
Campus Dashboard
- Cloud Dashboard API
cloud/dashboard/backend/app/main.py - Campus Database
cloud/dashboard/backend/app/core/database.py - Dashboard Frontend
cloud/dashboard/frontend/src/App.jsx
Mapping Navigation
- Map Editor UI
mapping_and_notification/frontend/src/App.js - Map Controller
mapping_and_notification/backend/controllers/mapController.js - Floorplan Analysis
mapping_and_notification/ai-services/src/services/floorplan_analyzer.py - Navigation Engine
mapping_and_notification/backend/controllers/engineController.js - Notification Worker
mapping_and_notification/backend/consumer.js
Surveillance
- Surveillance Pipeline
surveillance/pipeline.py - Surveillance SQLite
surveillance/database.py
Other components
- Kiosk User
- Campus Admin
Connections 29
- Kiosk User → Kiosk Controller: uses kiosk
README.md - Kiosk Controller → Kiosk API Client: requests access
access_control/ui/access_control_gui/controllers/access_controller.py - Kiosk Controller → Camera Controller: reads camera
access_control/ui/access_control_gui/controllers/access_controller.py - Kiosk Controller → Audio Chat: controls chat
access_control/ui/access_control_gui/controllers/access_controller.py - Audio Chat → Kiosk API Client: requests audio chat
access_control/ui/access_control_gui/controllers/chatbot_controller.py - Audio Chat → Audio Terminal: plays audio
access_control/ui/access_control_gui/controllers/chatbot_controller.py - Kiosk API Client → Kiosk API: calls kiosk API
- Kiosk API → Face Access Pipeline: dispatches access checks
access_control/facial_recognition/src/api/main.py - Kiosk API → Device Sync: starts synchronization
access_control/facial_recognition/src/api/main.py - Kiosk API → Device SQLite: checks database status
access_control/facial_recognition/src/api/main.py - Device Sync → Cloud Dashboard API: syncs device data
README.md - Campus Admin → Dashboard Frontend: manages campus
README.md - Dashboard Frontend → Cloud Dashboard API: uses dashboard session
README.md - Cloud Dashboard API → Campus Database: uses database
- Kiosk User → RAG API Router: asks questions
- RAG API Router → Chat Service: routes chat
- Chat Service → Query Classification: classifies query
- Chat Service → Document Retrieval: retrieves context
- Document Retrieval → Vector Store: searches vectors
- Chat Service → LLM Generation: generates answer
- Campus Admin → Document Ingestion: ingests documents
- Document Ingestion → Embedding Service: creates embeddings
cloud/RagChatbot/services/ingestion_service.py - Document Ingestion → Vector Store: stores vectors
cloud/RagChatbot/services/ingestion_service.py - Campus Admin → Map Editor UI: edits campus maps
README.md - Map Editor UI → Map Controller: calls map API
- Map Controller → Floorplan Analysis: requests analysis
mapping_and_notification/backend/controllers/mapController.js - Campus Admin → Navigation Engine: requests navigation
- Navigation Engine → Notification Worker: triggers notifications
mapping_and_notification/backend/controllers/engineController.js - Surveillance Pipeline → Surveillance SQLite: loads templates
surveillance/pipeline.py