How kenfemboy/city-wide-concern-portal-cwcp works
CWCP is a city-wide concern reporting and moderation portal. Residents submit concerns and browse or filter reports; moderators review reports, change their status, or reject them with a reason. The frontend periodically fetches reports and presents statistics and area-based map views. The backend routes those requests to report, moderation, authentication, and statistics handlers, backed by MongoDB; report images are uploaded to Firebase Storage. Several frontend-to-API interactions are visible in excerpts, while the form submission and login wiring are not, so those links are marked unverified.
Main entry points: userRoute.js API routes · main.jsx Portal dashboard · app.jsx App routes · postModel.js Concern records
Components 23
Portal interface
- App routes
CWCP-Frontend/src/app.jsx - Portal dashboard
CWCP-Frontend/src/MAINPAGE/main.jsx - Navigation and actions
CWCP-Frontend/src/HeaderFrame/HeaderFrame.jsx - Concern form
CWCP-Frontend/src/FORM/form.jsx - Concern lists and cards
CWCP-Frontend/src/CARDS/cards.jsx - Status categories
CWCP-Frontend/src/CARDS/Categories - Search and filters
CWCP-Frontend/src/FILTER/filters.jsx
Report handling
- API routes
CWCP-Backend/routes/userRoute.js - Create report
CWCP-Backend/controller/createPost.js - Report queries
CWCP-Backend/controller/fetchPosts.js
Moderation and access
- Admin login
CWCP-Frontend/src/MODERATOR/login.jsx - Approve, reject, status
CWCP-Backend/controller/postController.js - Admin authentication
CWCP-Backend/authentication/adminLogin.js
Statistics and mapping
- Area map
CWCP-Frontend/src/GMAP/gmap.jsx - Statistics dashboard
CWCP-Frontend/src/Stats/statistics.jsx - Report statistics
CWCP-Backend/statistics/statistics.js
Storage and media
- Concern records
CWCP-Backend/model/postModel.js - Admin records
CWCP-Backend/model/adminModel.js - Image upload
CWCP-Backend/util/uploadToFirebase.js - Firebase Storage
Other components
- Resident
- Moderator
- Google Maps services
Connections 30
- Resident → App routes: opens portal
CWCP-Frontend/src/app.jsx - Moderator → App routes: opens portal
CWCP-Frontend/src/app.jsx - App routes → Portal dashboard: routes to
CWCP-Frontend/src/app.jsx - App routes → Admin login: routes to
CWCP-Frontend/src/app.jsx - Portal dashboard → Navigation and actions: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Concern form: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Concern lists and cards: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Status categories: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Search and filters: filters reports
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Statistics dashboard: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Area map: renders
CWCP-Frontend/src/MAINPAGE/main.jsx - Portal dashboard → Report queries: fetches reports
CWCP-Frontend/src/MAINPAGE/main.jsx - Concern form → API routes: submits report
- Concern lists and cards → API routes: sends moderation actions
CWCP-Frontend/src/CARDS/cards.jsx - Statistics dashboard → API routes: requests statistics
CWCP-Frontend/src/Stats/statistics.jsx - Area map → API routes: requests area stats
CWCP-Frontend/src/GMAP/gmap.jsx - Area map → Google Maps services: geocodes area
CWCP-Frontend/src/GMAP/gmap.jsx - Admin login → API routes: authenticates
- API routes → Create report: dispatches create
CWCP-Backend/routes/userRoute.js - API routes → Report queries: dispatches queries
CWCP-Backend/routes/userRoute.js - API routes → Approve, reject, status: dispatches updates
CWCP-Backend/routes/userRoute.js - API routes → Admin authentication: dispatches login
CWCP-Backend/routes/userRoute.js - API routes → Report statistics: dispatches statistics
CWCP-Backend/routes/userRoute.js - Create report → Concern records: creates report
CWCP-Backend/controller/createPost.js - Create report → Image upload: uploads image
CWCP-Backend/controller/createPost.js - Report queries → Concern records: queries reports
CWCP-Backend/controller/fetchPosts.js - Approve, reject, status → Concern records: updates report
CWCP-Backend/controller/postController.js - Admin authentication → Admin records: looks up admin
CWCP-Backend/authentication/adminLogin.js - Report statistics → Concern records: aggregates reports
CWCP-Backend/statistics/statistics.js - Image upload → Firebase Storage: writes image
CWCP-Backend/util/uploadToFirebase.js