Inspiration
The inspiration for this project came from observing everyday civic problems — potholes, garbage collection delays, broken streetlights — that often go unreported or unresolved due to lack of transparency and communication between citizens and local authorities. I wanted to build a solution where citizens can easily report issues, and authorities can track, prioritize, and resolve them efficiently.
How we built it
Frameworks & Tools: Built using Django (Python) for backend, Bootstrap + Chart.js for frontend dashboards, and PostgreSQL for data storage. Citizen issue reporting with categorization (department-wise). Multi-role authentication (Citizen, Moderator, Resolver, Super Admin). Fake report detection with user ban functionality. Analytics & reports using Chart.js (issues over time, by department, by status, etc.).
Challenges we ran into
Designing a scalable database schema to handle multiple roles and issue workflows. Handling fake issue reporting fairly — balancing accountability with user experience. Integrating Chart.js required careful formatting of querysets into JSON for rendering. Making the UI responsive while ensuring access restrictions were correctly enforced. Debugging Django authentication flows, especially during banning/unbanning users.
What we learned
How to design role-based access control (RBAC) in Django. Effective use of models, relationships, and ORM queries. Integrating Chart.js for real-time analytics visualization. Implementing user ban/unban mechanisms with timers. Writing custom template filters and handling frontend-backend data transfer.
Log in or sign up for Devpost to join the conversation.