# Darija Dub — Application de Doublage Vidéo en Darija
Application full-stack (Django + React) qui permet à un utilisateur d'uploader
une vidéo en anglais et de récupérer une version doublée en darija marocaine,
via un pipeline IA (extraction audio → transcription → traduction → synthèse
vocale → fusion audio/vidéo).
Conçue à partir de vos 4 diagrammes UML (cas d'utilisation, séquence,
activité, classes) et de vos fonctions IA déjà prototypées dans
`main_fcts.ipynb`.
---
## ⚠️ Important : clés API
Le notebook fourni contenait des **clés API en clair** (Gemini, Anthropic,
OpenAI, ElevenLabs). Elles n'ont **pas** été recopiées dans ce projet pour
des raisons de sécurité. **Révoquez/régénérez ces clés dès que possible**,
puisqu'elles ont déjà circulé dans un fichier partagé.
Ce projet lit les clés depuis un fichier `.env` (jamais commité). Voir
`backend/.env.example`.
---
## Structure du projet
```
darija_dub_app/
├── backend/ # Django + Django REST Framework
│ ├── config/ # settings, urls, wsgi
│ ├── accounts/ # Utilisateur / Admin (auth, gestion des users)
│ ├── videos/ # Video, VideoDoublee, Script + pipeline IA
│ ├── audit/ # Journal d'audit (Audit)
│ ├── media/ # Fichiers uploadés / vidéos doublées (SQLite ne stocke pas les fichiers)
│ ├── requirements.txt
│ └── .env.example
└── frontend/ # React (Vite)
├── src/
│ ├── pages/ # Login, Register, Dashboard, AdminPanel
│ ├── components/ # Navbar, UploadZone, VideoCard, ...
│ ├── context/ # AuthContext (JWT)
│ └── api/ # client axios
└── package.json
```
## Correspondance avec le diagramme de classes
| Classe UML | Implémentation Django |
|-------------------|--------------------------------------------------------------------|
| `Utilisateur` | `accounts.Utilisateur` (étend `AbstractUser` de Djang …