Open Platform for Discovering Public Schemes and Reporting Civic Issues
being built by Abhishek Dige,Parth Badgire and Smit Jain CivicBridge is a civic-tech platform that helps citizens:
- Discover government schemes they are eligible for
- Report civic issues like potholes, garbage dumps, and broken infrastructure
- View issues transparently on a public map
The goal is to improve awareness, transparency, and community participation.
Frontend
- React
- Vite
Backend
- Node.js
- Express.js
Database & Auth
- Supabase
## Project Structure
civicbridge/
β
βββ README.md
βββ .env
βββ .gitignore
β
βββ frontend/
β βββ public/
β β βββ logo.svg
β β
β βββ src/
β β βββ assets/
β β β βββ images/
β β β βββ icons/
β β β
β β βββ components/
β β β βββ Navbar.jsx
β β β βββ Footer.jsx
β β β βββ SchemeCard.jsx
β β β βββ IssueCard.jsx
β β β βββ MapComponent.jsx
β β β
β β βββ pages/
β β β βββ Home.jsx
β β β βββ SchemeNavigator.jsx
β β β βββ ReportIssue.jsx
β β β βββ IssueMap.jsx
β β β βββ Login.jsx
β β β βββ Dashboard.jsx
β β β
β β βββ services/
β β β βββ api.js
β β β βββ schemeService.js
β β β βββ issueService.js
β β β
β β βββ hooks/
β β β βββ useAuth.js
β β β
β β βββ utils/
β β β βββ filterSchemes.js
β β β βββ constants.js
β β β
β β βββ styles/
β β β βββ global.css
β β β
β β βββ App.jsx
β β βββ main.jsx
β β
β βββ package.json
β
β
βββ backend/
β βββ src/
β β
β β βββ controllers/
β β β βββ schemeController.js
β β β βββ issueController.js
β β β
β β βββ routes/
β β β βββ schemeRoutes.js
β β β βββ issueRoutes.js
β β β
β β βββ services/
β β β βββ schemeService.js
β β β βββ issueService.js
β β β
β β βββ middleware/
β β β βββ authMiddleware.js
β β β
β β βββ config/
β β β βββ supabaseClient.js
β β β
β β βββ utils/
β β β βββ helpers.js
β β β
β β βββ server.js
β β
β βββ package.json
β
β
βββ database/
β βββ schema.sql
β βββ seedData.json
β
β
βββ docs/
β βββ architecture.md
β βββ api.md
β
β
βββ scripts/
βββ seedDatabase.js
π§ Team Git Workflow (Step-by-Step) 1οΈβ£ Clone the Repository (First Time Only)
Each teammate does this once.
git clone <repo - link> cd civicbridge
Now the project exists on their computer.
2οΈβ£ Always Pull Latest Code Before Starting Work
Before doing any work, sync with the latest main.
git checkout main git pull origin main
This ensures you are working on the latest version of the project.
Follow these steps to run the project locally.
git clone <repo-url>
cd civicbridgeNavigate to the frontend folder and install dependencies.
cd frontend
npm installRun the development server:
npm run devFrontend will run at:
http://localhost:5173
Open a new terminal and navigate to the backend folder.
cd backend
npm installInside the backend folder, create a .env file.
Example:
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_anon_key
PORT=5000
Ask the team lead for the Supabase credentials.
Run the backend:
npm run devBackend will run at:
http://localhost:5000
You should now have two terminals running:
Terminal 1 (frontend)
cd frontend
npm run devTerminal 2 (backend)
cd backend
npm run dev- Do not commit
.envfiles - Always pull latest changes before starting work
git pull origin main- Work on feature branches, not directly on
main
3οΈβ£ Create a Feature Branch
Never work on main.
Create a branch for your task.
Example:
git checkout -b feature/navbar
Other examples:
feature/scheme-navigator feature/report-issue feature/map-system feature/backend-api
Now you are working safely in your own branch.
4οΈβ£ Work on Your Feature
Edit files normally.
Example:
src/components/Navbar.jsx 5οΈβ£ Stage and Commit Changes
When you complete a logical piece of work:
git add . git commit -m "Add navbar component"
Good commit messages:
Add scheme navigator form Implement issue reporting API Fix navbar routing
Avoid:
update stuff changes 6οΈβ£ Push Your Feature Branch
Upload your branch to GitHub.
git push origin feature/navbar
Now the branch appears on GitHub.
7οΈβ£ Create a Pull Request (PR)
Go to the repository on GitHub.
You will see:
Compare & Pull Request
Create PR:
feature/navbar β main
This means:
βPlease merge my feature into the main branch.β
8οΈβ£ Review and Merge
Someone checks the code.
If everything is fine:
Click Merge Pull Request.
Now the main branch updates.
9οΈβ£ Everyone Syncs After Merge
After a PR merges, everyone should update their local repo.
git checkout main git pull origin main
Now everyone has the updated code.
π Daily Workflow (Short Version)
Every day your team follows this:
git checkout main git pull origin main git checkout -b feature/your-feature
Work β commit β push β PR.
Users enter basic details:
- Age
- Income
- State
- Education
- Occupation
- Category
System filters and recommends eligible government schemes.
Output shows:
- Scheme name
- Description
- Eligibility criteria
- Benefits
- Application link
Citizens can report local issues.
Fields:
- Photo upload
- Issue type
- Description
- Location
Issues appear on a public map for transparency.
Issue Types:
- Pothole
- Garbage
- Water leakage
- Broken streetlight
- Road damage
id
name
description
income_limit
age_limit
category
state
link
id
title
description
latitude
longitude
photo_url
status
created_at
id
name
email
role
Possible extensions:
- Government API integration
- Issue voting system
- Civic analytics dashboard
- Mobile app
- Community moderation