How apc-socit/apc_2025_2026_t1_mi232_g07-dost-citisense works
CitiSense is a bilingual feedback-analysis web application: users authenticate or enter a guest dashboard, explore sentiment visualizations and feedback records, and analysts can manage model versions and retraining. The documented product also includes English/Tagalog sentiment classification and AI-generated summaries/themes. The graph combines visible frontend/API calls with README-documented capabilities; unsampled pages and optional AI integrations are shown only where the tree or README supports them.
Main entry points: main.tsx App routing · views.py Feedback API · GuestDashboard.tsx Guest dashboard · models.py Feedback records
Components 20
Web application
- App routing
frontend/src/main.tsx
Identity
- Auth forms
frontend/src/components/auth/AuthenticationForms/login-form.tsx - Auth context
frontend/src/context/AuthenticationContext.tsx - Auth endpoints
mysite/authentication/views.py
Feedback analysis
- Guest dashboard
frontend/src/pages/Dashboard/GuestDashboard.tsx - Chart data hook
frontend/src/hooks/useDashboardCharts.ts - Sentiment charts
frontend/src/components/dashboard/charts/sentimenttrends.tsx - Service chart
frontend/src/components/dashboard/charts/service.tsx - Feedback table
frontend/src/pages/DataTable/DataTablePage.tsx - Summaries and themes
frontend/src/components/dashboard/charts/ThematicAnalysis.tsx - Llama summarizer
Model management
- Model selection
frontend/src/pages/ModelSelection/ModelSelection.tsx - Retraining UI
frontend/src/pages/AIRetrain/AIRetrain.tsx - Model version API
mysite/api/views.py - Bilingual NLP model
API and persistence
- Feedback API
mysite/api/views.py - API serializers
mysite/api/serializers.py - Feedback records
mysite/drf/models.py - Sentiment inference
mysite/drf/utils.py
Other components
- IRAD stakeholder
Connections 24
- IRAD stakeholder → App routing: opens
frontend/src/main.tsx - App routing → Auth forms: routes to
frontend/src/main.tsx - App routing → Guest dashboard: routes to
frontend/src/main.tsx - App routing → Feedback table: routes to
frontend/src/main.tsx - App routing → Model selection: routes to
frontend/src/main.tsx - App routing → Retraining UI: routes to
frontend/src/main.tsx - Auth forms → Auth context: uses
frontend/src/components/auth/AuthenticationForms/login-form.tsx - Auth context → Auth endpoints: requests
frontend/src/context/AuthenticationContext.tsx - Guest dashboard → Feedback API: fetches filters
frontend/src/pages/Dashboard/GuestDashboard.tsx - Guest dashboard → Chart data hook: uses
- Chart data hook → Feedback API: fetches chart data
frontend/src/hooks/useDashboardCharts.ts - Guest dashboard → Sentiment charts: renders
frontend/src/pages/Dashboard/GuestDashboard.tsx - Guest dashboard → Service chart: renders
frontend/src/pages/Dashboard/GuestDashboard.tsx - Feedback table → Feedback API: requests records
- Feedback API → API serializers: serializes
mysite/api/views.py - Feedback API → Feedback records: queries
mysite/api/views.py - Feedback records → Sentiment inference: calls
mysite/drf/models.py - Feedback records → Bilingual NLP model: classifies feedback
README.md - Model selection → Model version API: manages versions
- Retraining UI → Model version API: requests retraining
- Model version API → Feedback records: loads versions
mysite/api/views.py - Model version API → Bilingual NLP model: trains model
README.md - Feedback API → Summaries and themes: provides analysis data
- Summaries and themes → Llama summarizer: generates themes
README.md