A full-stack civic tech platform where citizens can report public infrastructure problems and track their resolution transparently. Admins and staff can efficiently manage, assign, and resolve issues with proper workflow tracking.
🔗 Live Site: https://civil-report.vercel.app
- Admin Email: abc@gmail.com
- Admin Password: abc@25N#
- Client Repo: https://github.com/Sahidulislam05/Civil_Report
- Server Repo: https://github.com/Sahidulislam05/Civil-Report-API
Municipal services often suffer from delayed response, lack of transparency, and poor tracking.
This system solves that by providing:
- A centralized reporting platform for citizens
- Role-based dashboards for Admin, Staff, and Citizen
- Real-time issue tracking with timeline history
- Priority handling through premium subscription & issue boosting
- 🔐 Role-Based Authentication (Admin, Staff, Citizen)
- 🧾 Issue Reporting with Image & Location
- ⏳ Full Issue Lifecycle Tracking (Timeline)
- 📊 Dashboards with stats & charts
- ⬆️ Upvote System (1 vote per user per issue)
- ⚡ Boost Issue Priority via Payment
- ⭐ Premium Subscription for Unlimited Reports
- 💳 Stripe Payment Integration
- 📄 Downloadable Invoice PDF
- 🚫 Admin Block / Unblock System
- 🔎 Search, Filter & Pagination (Server-side)
- 🔔 SweetAlert & Toast Notifications
- 📱 Fully Responsive UI (Mobile / Tablet / Desktop)
- Responsive Navbar with profile dropdown
- Beautiful banner / slider
- Latest resolved issues (minimum 6)
- Feature section & “How it works”
- Extra sections for engagement
- Clean footer
- Custom 404 Not Found page
- Card-based issue listing
- Shows:
- Image, title, category
- Status & priority badges
- Location
- Upvote count
- Server-side:
- Search
- Filter (status, category, priority)
- Pagination
- Upvote rules:
- Login required
- Cannot upvote own issue
- Only once per user
- Instant UI update
- Full issue information
- Action buttons:
- Edit (owner + pending only)
- Delete (owner only)
- Boost Issue (৳100 via Stripe)
- Assigned staff information
- Vertical Timeline UI
- Latest updates on top
- Status badges
- Read-only audit history
Timeline records created for:
- Issue creation
- Staff assignment
- Status changes
- Boost payment
- Rejection
- Closure
- Dashboard stats with charts
- My Issues:
- Edit / Delete (pending only)
- Filters
- Report Issue:
- Free users: max 3 issues
- Premium users: unlimited
- Profile:
- Premium subscription (৳1000)
- Premium badge
- Block warning if blocked
- View only assigned issues
- Change issue status with rules:
- Pending → In-Progress
- In-Progress → Working
- Working → Resolved
- Resolved → Closed
- Each change creates a timeline entry
- Profile update (name, photo)
- Dashboard stats & charts
- Manage Issues:
- Assign staff (once only)
- Reject pending issues
- Manage Users:
- Block / Unblock citizens
- View subscription info
- Manage Staff:
- Create staff (Firebase + DB)
- Update & delete staff
- Payments Page:
- View all payments
- Filter & charts
- Invoice PDF download
- Token verification & role-based middleware
- Server-side pagination
- Server-side search & filter
- Loader during data fetching
- Invoice PDF download (Admin & User)
- Axios interceptors
- Add animations (Framer Motion or AOS)
- React + Vite
- React Router
- Tailwind CSS + DaisyUI
- TanStack Query
- Axios
- Firebase Authentication
- Stripe Checkout
- React Icons
- SweetAlert2 / React Hot Toast
- Node.js
- Express.js
- MongoDB
- JWT Authentication
- Stripe API
- PDF Generation
- Environment variables for Firebase & MongoDB secrets
- Protected private routes
- Persistent login after refresh
- No Lorem Ipsum text used
- Clean, readable commit history
This project focuses on real-world usability, transparency, and scalability.
It simulates how a modern city infrastructure reporting system can work efficiently with proper accountability.
✨ Thank you for reviewing my project!
If you have any questions, feel free to explore the dashboards using the provided credentials.