How suyogshelke/civi-go works
CiviGo is a civic-issue reporting and resolution platform: citizens submit complaints and track their progress, while officers handle assigned work and administrators oversee operations and analytics. The frontend routes users into role-specific portals and provides authentication; its API layer supports a Django backend and a mock implementation. The README documents feedback, email verification, and analytics as product capabilities. Sampled source confirms authentication and mock complaint behavior; backend view-to-model wiring and most page-to-API calls were not sampled, so those links are omitted.
Main entry points: App.jsx Role-based routes · ProtectedRoute.jsx Role access guard · client.js HTTP client · AuthContext.jsx Authentication context
Components 24
User portals
- Role-based routes
frontend/src/App.jsx - Citizen portal
frontend/src/pages/citizen - Officer portal
frontend/src/pages/officer - Admin portal
frontend/src/pages/admin - Public access
frontend/src/pages/public
Frontend services
- Authentication context
frontend/src/auth/AuthContext.jsx - Role access guard
frontend/src/auth/ProtectedRoute.jsx - Session storage
frontend/src/auth/session.js - API facade
frontend/src/api/index.js - HTTP client
frontend/src/api/client.js - Complaint API
frontend/src/api/complaints.js - Feedback API
frontend/src/api/feedback.js - Analytics API
frontend/src/api/analytics.js - Mock operations
frontend/src/api/mock/service.js - Mock data store
frontend/src/api/mock/db.js
Backend services
- Django REST API
backend/api - API routes
backend/api/urls.py - API handlers
backend/api/views.py - Domain models
backend/api/models.py - Firebase token verification
backend/api/authentication.py
Other components
- Citizen
- Officer
- Administrator
- Firebase Authentication
Connections 20
- Citizen → Role-based routes: uses
- Officer → Role-based routes: uses
- Administrator → Role-based routes: uses
- Role-based routes → Public access: routes
- Role-based routes → Role access guard: guards
- Role access guard → Citizen portal: permits role
- Role access guard → Officer portal: permits role
- Role access guard → Admin portal: permits role
- Authentication context → API facade: calls
- Authentication context → Session storage: updates session
- Authentication context → Firebase Authentication: authenticates
- HTTP client → Firebase Authentication: gets ID token
- Complaint API → HTTP client: uses client
- Feedback API → HTTP client: uses client
- Analytics API → HTTP client: uses client
- Mock operations → Mock data store: reads and writes
- Django REST API → API routes: routes through
- API handlers → Firebase token verification: authenticates requests
- Firebase token verification → Firebase Authentication: verifies tokens
- Firebase token verification → Domain models: looks up user