A comprehensive civic engagement platform connecting South African citizens with their municipalities for infrastructure issue reporting and resolution.
# Konnekt My City
A comprehensive civic engagement platform connecting South African citizens with their municipalities for infrastructure issue reporting and resolution.
## Features
- 🏛️ **Citizen Portal**: Report infrastructure issues (potholes, water leaks, power outages, etc.)
- 🗺️ **Live Issues Map**: Interactive map displaying all reported issues with real-time updates
- 👨💼 **Municipal Dashboard**: Portal for officials to manage and respond to citizen reports
- ✅ **Community Verification**: Citizens can vote on issues to verify legitimacy
- 📊 **Status Tracking**: Complete timeline view of issue lifecycle from submission to resolution
## Tech Stack
- **Next.js 16** - React framework with App Router
- **Supabase** - PostgreSQL database, authentication, and real-time subscriptions
- **TypeScript** - Type-safe development
- **Tailwind CSS v4** - Modern styling
- **shadcn/ui** - High-quality UI components
- **Leaflet** - Interactive mapping with OpenStreetMap
## Prerequisites
Before you begin, ensure you have:
- **Node.js 18+** installed
- **pnpm** package manager (or npm/yarn)
- A **Supabase account** (free tier works fine)
## Local Development Setup
### 1. Clone the Repository
\`\`\`bash
git clone
cd konnekt-my-city
\`\`\`
### 2. Install Dependencies
\`\`\`bash
pnpm install
# or
npm install
# or
yarn install
\`\`\`
### 3. Set Up Supabase
#### Create a Supabase Project
1. Go to
supabase.com
2. Click "New Project"
3. Fill in your project details:
- **Name**: Konnekt My City
- **Database Password**: Choose a strong password (save this!)
- **Region**: Choose closest to South Africa (e.g., Cape Town)
4. Click "Create new project" and wait for setup to complete
#### Get Your API Keys
1. In your Supabase project dashboard, go to **Project Settings** (gear icon)
2. Click on **API** in the left sidebar
3. Copy the following values:
- **Project URL** (e.g., `
xxxxx.supabase.co`)
- **anon public** key
- **service_role** key (keep …