Hack the Change 2025 Submission
A civic engagement platform that gamifies sustainable transportation and community participation to help make cities more inclusive, safe, resilient, and sustainable.
IMPORTANT: You need an OpenAI API key. Get one at https://platform.openai.com/api-keys
# 1. Clone repo
git clone https://github.com/Abuudiii/hack-the-change-2025.git
cd hack-the-change-2025
# 2. Backend Setup
cd backend
npm install
# Create .env with YOUR credentials
cat > .env << 'ENVEOF'
DATABASE_URL="postgresql://user:password@localhost:5432/civicpulse"
OPENAI_API_KEY="sk-proj-YOUR-KEY-HERE"
JWT_SECRET="your-secret-key"
PORT=3000
ENVEOF
npx prisma generate && npx prisma db push && npm run seed
npm run dev &
# 3. Frontend Setup (new terminal)
cd ../frontend
npm install
echo 'VITE_API_URL=http://localhost:3000/api' > .env
npm run devAccess: http://localhost:5173
- Citizen: sarah@civicpulse.ca / password123 (850 points)
- Admin: alex.park@calgary.ca / password123
- Weekly goals tracking (biking, walking, transit, carpool, issue reporting)
- Real-time progress with circular trackers
- 30-day activity history graphs
- 17 rewards to claim (gift cards, tax credits, transit passes)
- Points-based gamification
- Interactive issue reporting with maps
- AI-powered cluster analysis (OpenAI GPT-4o-mini)
- Auto-generate challenges from issue data
- Real-time dashboard with heatmaps
Backend: Node.js, Fastify, PostgreSQL, Prisma, OpenAI Frontend: React 18, TypeScript, Material-UI v7, Recharts, Leaflet
- 20 users, 17 rewards, 5 partners
- 25 civic issues, 5 challenges
- Realistic activity history
- Backend fails: Check PostgreSQL running + valid OpenAI API key in .env
- Frontend 404s: Verify backend on port 3000
- AI errors: Confirm valid OpenAI key, using gpt-4o-mini model
See SETUP.md for full docs.
Team: CivicPulse | Event: Hack the Change 2025