How landcommission/nlc-complaint-management-system works
NLCCMS is a React/Express complaint-management system. Citizens authenticate or submit anonymously, provide complaint details and attachments, receive a tracking number, and later view status. Staff authenticate through protected routes, inspect/filter complaints, review timelines, and publish status, priority, resolution, or internal-note updates. Departments support categorization and administration, while SQLite stores users, complaints, updates, departments, and attachment metadata. Some frontend pages and backend routes were documented but not sampled, so those relationships follow README endpoint contracts rather than unseen implementation details.
Components 20
Citizen Experience
- React Router
frontend/src/App.jsx - Auth Context
frontend/src/context/AuthContext.jsx - Navigation Bar
frontend/src/components/Navbar.jsx - Anonymous Submission
frontend/src/pages/AnonymousComplaint.jsx - Citizen Submission
frontend/src/pages/SubmitComplaint.jsx - Complaint Tracking
frontend/src/pages/TrackComplaint.jsx - My Complaints
frontend/src/pages/MyComplaints.jsx
Staff Operations
- Admin Dashboard
frontend/src/pages/AdminDashboard.jsx - Complaint List
frontend/src/pages/AdminComplaints.jsx - Complaint Detail
frontend/src/pages/AdminComplaintDetail.jsx
API Security
- Express Server
backend/server.js - Authentication API
backend/routes/auth.js - JWT Middleware
backend/middleware/auth.js - Complaint API
backend/routes/complaints.js - Department API
backend/routes/departments.js
Data Services
- SQLite Database
backend/cms.db - Database Schema
backend/db/database.js - Attachment Files
backend/uploads
Other components
- Citizen
- Staff
Connections 27
- Citizen → React Router: opens app
- Staff → Admin Dashboard: opens dashboard
- React Router → Auth Context: provides auth
- React Router → Anonymous Submission: routes to
- React Router → Citizen Submission: routes to
- React Router → Complaint Tracking: routes to
- React Router → Admin Dashboard: routes to
- Navigation Bar → Auth Context: reads session
- Auth Context → Authentication API: calls auth
- Anonymous Submission → Complaint API: submits complaint
- Citizen Submission → Complaint API: submits complaint
- Complaint Tracking → Complaint API: tracks complaint
- My Complaints → Complaint API: reads complaints
- Admin Dashboard → Complaint API: reads statistics
- Complaint List → Complaint API: filters complaints
- Complaint List → Department API: loads departments
- Complaint Detail → Complaint API: updates status
- Express Server → Authentication API: mounts routes
- Express Server → Complaint API: mounts routes
- Express Server → Department API: mounts routes
- Express Server → Database Schema: initializes schema
- Authentication API → Database Schema: reads users
- JWT Middleware → Database Schema: loads users
- Complaint API → Database Schema: writes complaints
- Complaint API → Attachment Files: stores attachments
- Department API → Database Schema: reads departments
- Database Schema → SQLite Database: persists data