Logo Lanfrica

bankolejohn/clean-ekiti

Domaine:

environment and energygeospatial

Type de record:

software
Créateur:
ban
Hôte:
# CleanEkiti MVP A community-driven platform for reporting environmental issues in Ekiti State, Nigeria. ## Features - **Public Reporting**: Citizens can report environmental issues without registration - **Photo Upload**: Visual evidence with Cloudinary integration - **Interactive Maps**: Leaflet.js maps for location pinning and viewing reports - **Admin Dashboard**: Secure admin panel for managing reports - **Status Tracking**: Track report progress (Pending → Investigating → Resolved) - **Mobile Responsive**: Works on all devices ## Tech Stack - **Frontend**: Next.js 14, React, Tailwind CSS - **Backend**: Next.js API Routes - **Database**: Supabase PostgreSQL - **Maps**: Leaflet.js with OpenStreetMap - **Image Storage**: Cloudinary - **Email**: Resend - **Authentication**: JWT with bcrypt ## Quick Setup 1. **Clone and Install** ```bash git clone cd cleanekiti-mvp npm install ``` 2. **Environment Setup** ```bash cp .env.example .env.local ``` Fill in your environment variables: - Supabase credentials - Cloudinary API keys - Resend API key - JWT secret 3. **Database Setup** - Create a Supabase project - Run the SQL script in `scripts/setup-database.sql` - This creates tables, indexes, and a default admin user 4. **Run Development Server** ```bash npm run dev ``` ## Environment Variables ```env # Supabase NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Cloudinary CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # Email RESEND_API_KEY=your_resend_api_key # JWT JWT_SECRET=your_jwt_secret_key # Admin Email ADMIN_EMAIL=admin@cleanekiti.com ``` ## Default Admin Credentials - **Username**: admin - **Password**: admin123 ⚠️ **Change these credentials immediately in production!** ## API Endpoints ### Public Endpoints - `GET /api/reports` - Fetch all reports - `POST /api/reports` - Create new report …

Languages