Skip to content

lakshya-pratap-singh-chauhan/Civix

 
 

🚧 Civix – Local Civic Issue Reporting App

Domain: Governance / Public Welfare
Tagline: Empowering citizens, enabling better governance.

Issues Forks Stars

🧠 Overview

Civix is a full-stack web application designed to streamline the process of reporting, tracking, and resolving local civic issues such as potholes, broken streetlights, and uncollected garbage. It provides a bridge between citizens and municipal authorities, bringing accountability and transparency to local issue resolution.

Image Caption: Citizen view showing issue reporting interface

🚨 Problem Addressed

Local civic issues often go unnoticed or unresolved due to:

  • Lack of structured, user-friendly reporting systems
  • No transparent status tracking
  • Difficulty in community prioritization

✨ Features

Image Caption: Step-by-step issue reporting process

🧍 Citizens

  • πŸ“ Report Issues: Submit problems with description, live location (via map), and image
  • πŸ” Track Status: View transitions from Open β†’ In Progress β†’ Resolved
  • πŸ‘ Upvote Issues: Support others' reports to highlight common concerns

πŸ§‘β€πŸ’Ό Admins (City Workers)

  • πŸ“Š Dashboard: View, filter, and manage all reported issues
  • πŸ”§ Status Management: Update progress and mark resolutions
  • πŸ”’ Role-Based Access: Secure login for Citizens and Admins

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • Tailwind CSS – Modern responsive UI
  • Leaflet.js – Interactive maps for location tagging

Backend

  • Node.js + Express.js
  • PostgreSQL – Relational DB for reports and user data

Integrations

  • Cloudinary – Image uploads and hosting
  • JWT Authentication – Secure role-based access

πŸŒ— Dark Mode Toggle

Implementation:

  • darkMode: 'class' in tailwind.config.js
  • User preference saved via localStorage
  • Toggle switch: src/ThemeToggle.jsx (used in Home.jsx)

How to Use:

  1. Locate the toggle button (οΏ½οΏ½/β˜€οΈ) in the header
  2. Click to switch between:
    • Light Mode: White/light gray backgrounds (bg-slate-50) with dark text (text-gray-900)
    • Dark Mode: Dark gray backgrounds (dark:bg-gray-800) with light text (dark:text-gray-100)

πŸš€ Getting Started

Image Caption: Admin dashboard with issue management tools

Prerequisites

  • Node.js 16+
  • npm 8+
  • PostgreSQL 14+
  • Cloudinary account (for image uploads)

πŸ“₯ Installation

πŸ“¦ 1.Clone the repository:

git clone https://github.com/Harshs16/civix.git
cd Civix

πŸ“¦ 2. **Install Dependencies**

Make sure you have **Node.js** and **npm** installed.  
Then, install the project dependencies:

```bash

npm install

🌱 3. Create a New Branch

Use a meaningful branch name:

git checkout -b your-feature-name

Example:

git checkout -b improve-readme

πŸ› οΈ 4. Make Your Changes

  • Improve the code, fix bugs, or update docs.
  • If you're running the project:
    npm start
    

βœ… 5. Stage and Commit

git add .
git commit -m "feat: your clear and concise commit message"

πŸš€ 6. Push Your Branch

git push origin your-feature-name

πŸ” 7. Create a Pull Request

  • Go to your forked repo on GitHub
  • Click β€œCompare & pull request”
  • Add a helpful description of what you changed and why

πŸ“Œ Roadmap / Future Enhancements

  • πŸ”” Push notifications for issue updates
  • πŸ“ˆ Analytics for civic issue trends
  • 🌐 Multilingual support
  • πŸ“± Mobile app (React Native)

🀝 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss your ideas.


🌟 Our Awesome Contributors


πŸ“„ License

MIT License. See LICENSE file for more details.

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.3%
  • CSS 17.7%
  • HTML 1.0%