How anki-0015/issue-tracking works
CivicReport lets residents create accounts, report and locate civic issues, follow status and community activity, and lets administrators review reports and manage issue workflows. The main path runs from the protected Next.js interface through its API client to Express routes and controllers, which validate and persist data via Prisma/PostgreSQL. Authentication, uploads, notifications, summaries, and admin activity are separate capabilities around that path. Source excerpts establish some controller and client behavior; route-to-controller and UI details not shown are represented only where supported by the tree or README.
Main entry points: api.ts API client · index.ts Express API · auth.ts Auth routes · prisma.ts Prisma access
Components 27
Citizen and Admin UI
- Web entry
frontend/app/page.tsx - Sign in and signup
frontend/app/(auth)/login/page.tsx - Protected workspace
frontend/app/(protected)/layout.tsx - Dashboard
frontend/app/(protected)/dashboard/page.tsx - Issue listing
frontend/app/(protected)/issues/page.tsx - Issue reporting
frontend/app/(protected)/issues/report/page.tsx - Issue detail and map
frontend/app/(protected)/issues/[id]/page.tsx - Admin console
frontend/app/(protected)/admin/page.tsx - Profile
frontend/app/(protected)/profile/page.tsx - API client
frontend/lib/api.ts - Route gate
frontend/proxy.ts
API and Routing
- Express API
backend/src/index.ts - Auth routes
backend/src/routes/auth.ts - Issue routes
backend/src/routes/issues.ts - Upload routes
backend/src/routes/uploads.ts - Notification routes
backend/src/routes/notifications.ts
Issue and Account Services
- Account workflows
backend/src/controllers/authController.ts - Issue workflows
backend/src/controllers/issueController.ts - Notification workflows
backend/src/controllers/notificationController.ts - Image upload
backend/src/controllers/uploadController.ts - Session verification
backend/src/middleware/authMiddleware.ts
Persistent State
- Prisma access
backend/src/lib/prisma.ts - PostgreSQL
- Uploaded files
External Services
- Email delivery
backend/src/lib/email.ts
Other components
- Residents
- Administrators
Connections 37
- Residents → Web entry: opens
- Administrators → Web entry: opens
- Web entry → Route gate: redirects
- Residents → Sign in and signup: registers or signs in
- Sign in and signup → API client: requests account actions
- Protected workspace → API client: loads session and notifications
- Protected workspace → Auth routes: checks session
- Protected workspace → Issue listing: navigates
- Residents → Issue reporting: submits report
- Issue reporting → API client: creates report and uploads image
- Residents → Issue listing: browses reports
- Issue listing → API client: requests issues
- Residents → Issue detail and map: views and engages
- Issue detail and map → API client: requests issue actions
- Dashboard → API client: requests summary
- Administrators → Admin console: manages workflow
- Admin console → API client: requests admin actions
- Profile → API client: requests account data
- API client → Express API: sends HTTP requests
- Express API → Auth routes: mounts
- Express API → Issue routes: mounts
- Express API → Upload routes: mounts
- Express API → Notification routes: mounts
- Auth routes → Session verification: verifies protected requests
- Auth routes → Account workflows: dispatches
- Issue routes → Session verification: verifies protected requests
- Issue routes → Issue workflows: dispatches
- Upload routes → Image upload: dispatches
- Notification routes → Session verification: verifies requests
- Notification routes → Notification workflows: dispatches
- Account workflows → Prisma access: reads and writes accounts
- Account workflows → Email delivery: sends reset email
- Issue workflows → Prisma access: reads and writes issues
- Notification workflows → Prisma access: reads and updates notifications
- Image upload → Uploaded files: returns stored file URL
- Express API → Uploaded files: serves uploaded files
- Prisma access → PostgreSQL: queries