# Impactus Initiative — Cartographie de l'engagement jeunesse
Plateforme web (Next.js + Supabase) qui recense les organisations de jeunesse
d'Antananarivo Renivohitra et leurs opportunités d'engagement (bénévolat,
volontariat, formations, appels à projets, événements, stages, recrutement),
avec filtres par domaine, localisation et type d'opportunité, publication
ouverte aux organisations, et un script de veille assistée par IA.
## Stack
- **Next.js 14** (App Router, TypeScript) — front-end
- **Tailwind CSS** — design system (identité "jeune et dynamique")
- **Supabase** (Postgres + API) — base de données, hébergement gratuit pour démarrer
- **Vercel** — déploiement du site
- **GitHub Actions** — exécution planifiée du script de veille IA (optionnel)
## Structure du projet
```
app/
page.tsx -> landing page (à propos, initiative, aperçu opportunités)
opportunites/page.tsx -> page opportunités (onglets Consulter / Organisations / Ajouter)
layout.tsx, globals.css
components/ -> Navbar, Footer, Hero, cartes, filtres, formulaires
lib/
types.ts -> domaines, types d'opportunité, communes (à ajuster librement)
supabaseClient.ts
supabase/schema.sql -> schéma de base de données à exécuter dans Supabase
scripts/collecte-ia.mjs -> veille IA (web search + insertion Supabase)
.github/workflows/collecte-ia.yml -> exécution automatique quotidienne (cron)
```
---
## 1. Installer le projet en local
```bash
cd impactus-platform
npm install
cp .env.local.example .env.local
```
## 2. Créer la base de données (Supabase)
1. Va sur supabase.com → crée un compte gratuit → **New project**
(nom : `impactus-initiative`, région proche : Europe/Cape Town si disponible).
2. Une fois le projet créé, ouvre **SQL Editor** → **New query**, colle le contenu
de `supabase/schema.sql`, puis **Run**. Cela crée les tables `organisations`
et `opportunites`, avec des règles de sécurité (RLS) : tout le monde peut
lire les entrées **ap …