Domain: Governance / Public Welfare
Tagline: Empowering citizens, enabling better governance.
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.
Caption: Citizen view showing issue reporting interface
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
Caption: Step-by-step issue reporting process
- π 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
- π Dashboard: View, filter, and manage all reported issues
- π§ Status Management: Update progress and mark resolutions
- π Role-Based Access: Secure login for Citizens and Admins
- React.js
- Tailwind CSS β Modern responsive UI
- Leaflet.js β Interactive maps for location tagging
- Node.js + Express.js
- PostgreSQL β Relational DB for reports and user data
- Cloudinary β Image uploads and hosting
- JWT Authentication β Secure role-based access
Implementation:
darkMode: 'class'intailwind.config.js- User preference saved via
localStorage - Toggle switch:
src/ThemeToggle.jsx(used inHome.jsx)
How to Use:
- Locate the toggle button (οΏ½οΏ½/βοΈ) in the header
- 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)
- Light Mode: White/light gray backgrounds (
Caption: Admin dashboard with issue management tools
- Node.js 16+
- npm 8+
- PostgreSQL 14+
- Cloudinary account (for image uploads)
π¦ 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
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
- π Push notifications for issue updates
- π Analytics for civic issue trends
- π Multilingual support
- π± Mobile app (React Native)
Pull requests are welcome! For major changes, please open an issue first to discuss your ideas.
MIT License. See LICENSE file for more details.