MEGA β Make Ethiopia Green Again
# Ethiopia Restoration Priority Map π
Interactive web app for visualizing restoration priority zones across Ethiopia. Zones are colored red/yellow/green based on a weighted score calculated from environmental and demographic factors.
## Quick Start
```bash
# Frontend
npm install
npm run dev
# API Server (in a separate terminal)
cd server
npm install
OPENAI_API_KEY=sk-your-key-here npm start
```
Frontend:
localhost
API:
localhost
## How It Works
### Scoring Factors
Each zone is scored on these factors (0β1 scale):
- **Deforestation Recency** β more recently deforested = higher urgency
- **Ground Moisture** β wetter soil = better for regrowth
- **Carbon Storage Potential** β higher potential = more climate impact
- **Biodiversity** β higher existing biodiversity = more to protect
- **Climate Suitability** β favorable climate for restoration
- **Soil Type Quality** β better soil composition for planting
- **Low Population Density** β less human pressure
### Disqualification Rule
Zones deforested **more than 10 years ago** are automatically disqualified (shown in gray).
### Color Scale
- π’ **Green** (score β₯ 0.7) β High restoration priority
- π‘ **Yellow** (score 0.4β0.7) β Medium priority
- π΄ **Red** (score < 0.4) β Low priority
- β¬ **Gray** β Disqualified
## Tech Stack
- React 18 + Vite
- Leaflet + react-leaflet for mapping
- CARTO dark basemap tiles
- Custom weighted scoring algorithm
## Data
Currently uses **mock data** with approximate zone boundaries. Replace `src/data/zones.js` with real GeoJSON and factor data when ready.
## Team Notes
To swap in real data, maintain the same data shape in `src/data/zones.js`:
```js
{
id: 'zone-id',
name: 'Zone Name',
deforestationYearsAgo: 5,
factors: {
groundMoisture: 0.75, // 0β1
carbonStorage: 0.85, // 0β1
biodiversity: 0.82, // 0β1
climate: 0.78, // 0β1
soilType: 0.80, // 0β1
populationDensity: 0.35, // 0β1 (inverted: lower density = higher score)
},
geometry: β¦