# 🏆 Diki-Diki
Plateforme de compétitions artistiques africaines avec vote Mobile Money en temps réel.
## Disciplines
💃 Danse · 🎤 Chant · 🎸 Instrument · 🎙️ Acapella · 😂 Humour · 📜 Poésie
## Types de compétition
- **Duo** : 2 participants, chacun avec sa vidéo
- **Groupe** : jusqu'à 4 groupes × 4 membres
## Stack
| Couche | Technologie |
|--------|-------------|
| Frontend | Next.js 14 + TypeScript + Tailwind |
| Backend | Node.js + Express + TypeScript |
| Base de données | Supabase (PostgreSQL + Realtime + Auth + Storage) |
| Paiement | CinetPay (Orange Money, Wave, MTN, Moov, Celtiis) |
| SMS | Africa's Talking |
| Push | Firebase FCM |
| Deploy Frontend | Vercel |
| Deploy Backend | Railway |
| CDN | Cloudflare |
## Installation rapide
```bash
# 1. Cloner
git clone
github.com
cd dkdk
# 2. Backend
cd backend
npm install
cp .env.example .env # Remplir les variables
npm run dev #
localhost
# 3. Frontend (autre terminal)
cd frontend
npm install
cp .env.example .env.local # Remplir les variables
npm run dev #
localhost
# 4. Base de données
# Coller supabase/migrations/001_pac_schema.sql dans Supabase SQL Editor
```
## Structure du projet
```
dkdk/
├── backend/
│ ├── src/
│ │ ├── controllers/ Logique métier
│ │ ├── middleware/ Auth JWT, erreurs, rate-limit
│ │ ├── routes/ Endpoints API REST
│ │ ├── services/ Vote, paiement, vidéo, SMS, notifications
│ │ └── utils/ Helpers
│ ├── config/ Supabase, Redis, Firebase
│ └── package.json
├── frontend/
│ ├── app/
│ │ ├── auth/ Connexion + inscription
│ │ ├── contests/ Liste des compétitions
│ │ ├── vote/ Page de vote avec pouces animés
│ │ ├── submit/ Dépôt vidéo (3 étapes)
│ │ ├── profile/ Profil candidat + score live
│ │ ├── recharge/ Recharge Mobile Money
│ │ ├── notifications/ …