Production-ready national digital waste management platform connecting CitizensWaste Collection Companies,nd Government Adminsacross Rwanda.
# Smart Waste Rwanda — Full-Stack System
Production-ready national digital waste management platform connecting **Citizens**, **Waste Collection Companies**, and **Government Admins** across Rwanda.
> The **frontend** in this repository runs as-is on Lovable Cloud (managed Postgres + Auth + Realtime + RLS), giving you a fully working full-stack experience from day one. A **parallel Node.js + Express + MongoDB backend** is also included in the `/backend` folder for users who want to self-host the backend on their own infrastructure.
---
## ✨ What's inside
### Roles
- **Citizen** — register with National ID, report waste, schedule pickups, track live status, pay (Mobile Money simulation), earn eco-points.
- **Company** — view jobs assigned by admin, start / complete jobs, see history.
- **Admin** — approve/reject requests, assign companies, register companies, view analytics charts.
### Features
- 🔐 Phone/National-ID + password auth, role-based access, RLS
- 🗺️ Live request status tracker (Pending → Scheduled → In Progress → Completed) with realtime sync
- 🧭 Mini map per pickup
- 💳 Mobile Money simulation (MTN MoMo / Airtel Money / Cash)
- 📲 USSD `*123#` simulator for feature-phone users
- 🔔 Persistent notification center
- 📊 Admin analytics: requests by district + waste-type pie chart
- 🌍 Multi-language (English + Kinyarwanda)
- 🌗 Light / Dark mode
- 📱 Mobile-first responsive UI, eco-themed design system
---
## 🚀 Run the frontend (already connected to Lovable Cloud)
```bash
bun install
bun run dev
```
Open
localhost (or 8080 depending on Vite config).
The **first user to register automatically becomes Admin**. Subsequent users default to Citizen unless they pick "Waste Collection Company" on the registration form.
> Environment variables for Lovable Cloud (Supabase) live in `.env` and are auto-provisioned. Do not edit manually.
---
## 🛠️ Run the parallel Express/MongoDB backend (optional)
If you want to self-host the backend instead of usin …