# 02 — Cahier des charges fonctionnel

## 1. Super-admin plateforme

Le super-admin gère toute la plateforme SALSABIL Madrassas.

Fonctionnalités :
- se connecter ;
- accéder au dashboard général ;
- créer une école ;
- modifier une école ;
- activer/désactiver une école ;
- gérer les logos et couleurs ;
- choisir le thème public d’une école ;
- créer les comptes admins d’une école ;
- voir les statistiques globales ;
- voir les inscriptions globales ;
- voir les paiements globaux ;
- gérer les thèmes disponibles.

## 2. École / Madrassa

Chaque école doit avoir :
- nom ;
- slug ;
- sous-domaine ;
- logo ;
- description ;
- slogan ;
- contacts ;
- adresse ;
- couleurs ;
- thème public ;
- statut actif/inactif.

Exemples :
- qamar.salsabilmadrassas.com
- daroulilm.salsabilmadrassas.com

## 3. Admin école

L’admin école peut :
- accéder à son dashboard ;
- modifier les informations de son école ;
- configurer ses couleurs ;
- configurer ses textes publics ;
- gérer ses sections ;
- gérer ses niveaux ;
- gérer ses classes ;
- gérer ses étudiants ;
- voir les préinscriptions ;
- valider les inscriptions ;
- affecter un étudiant à une classe ;
- gérer les paiements ;
- voir l’état de paiement de chaque étudiant.

L’admin école ne doit jamais voir les données d’une autre école.

## 4. Pages publiques école

Chaque école dispose de pages publiques.

Pages MVP :
- Accueil
- À propos
- Programmes / Sections
- Niveaux / Classes
- Inscription
- Contact

Les pages publiques doivent utiliser :
- le logo de l’école ;
- les couleurs de l’école ;
- le thème choisi ;
- les données configurées par l’école.

## 5. Thèmes publics

Au départ, il y aura deux thèmes :

### Thème Qamar

Style :
- doux ;
- féminin ;
- lumineux ;
- éducatif ;
- adapté aux cours en ligne ;
- ambiance Qur’an, apprentissage, sérieux et proximité.

### Thème Daroul-Ilm

Style :
- premium ;
- institutionnel ;
- islamique moderne ;
- vert, doré, blanc ;
- adapté à une madrassa structurée avec cours en ligne et présentiel.

Les deux thèmes affichent les mêmes blocs :
- header ;
- hero ;
- présentation courte ;
- programmes ;
- niveaux/classes ;
- tarifs ;
- statistiques ;
- appel à l’action ;
- contact ;
- footer.

Mais les blocs peuvent être positionnés différemment selon le thème.

## 6. Sections

Une section représente une offre ou un programme d’une école.

Exemples :
- Section femmes en ligne
- Cours en ligne WhatsApp
- Présentiel et accompagnement personnalisé

Une section appartient à une école.

Champs :
- nom ;
- description ;
- type ;
- public cible ;
- actif/inactif.

Types possibles :
- EN_LIGNE
- PRESENTIEL
- WHATSAPP
- MIXTE
- PERSONNALISE

## 7. Niveaux

Un niveau représente un niveau pédagogique.

Exemples Qamar :
- Qa’ida Nouraniyya
- Amélioration Lecture du Qur’an
- Mémorisation

Exemples Daroul-Ilm :
- Débutant
- Lecture
- Tajwid
- Mémorisation
- Sciences islamiques

Un niveau appartient à une école et éventuellement à une section.

## 8. Classes

Une classe représente un groupe réel d’apprenants.

Une classe doit avoir :
- nom ;
- école ;
- section ;
- niveau ;
- année scolaire ;
- langue ;
- sexe ;
- mode ;
- capacité ;
- jours de cours ;
- horaires ;
- tarif par défaut optionnel.

Langues :
- Français
- Haoussa
- Foulfouldé
- Arabe

Sexe :
- Homme
- Femme
- Mixte

Modes :
- WhatsApp
- Présentiel
- En ligne
- Personnalisé

## 9. Étudiants

Un étudiant appartient à une école.

Champs :
- matricule ;
- nom ;
- prénom ;
- sexe ;
- date de naissance ;
- lieu de naissance ;
- téléphone ;
- téléphone WhatsApp ;
- autres contacts ;
- adresse ;
- ancien/nouveau ;
- actif/inactif.

## 10. Matricule

Le matricule est généré automatiquement dès la préinscription.

Format recommandé :
- année sur 2 chiffres ;
- préfixe école ;
- numéro séquentiel.

Exemples :
- 26MQO001
- 26DI001

Chaque école doit avoir son propre compteur de matricules.

## 11. Inscriptions

Une inscription lie un étudiant à une année scolaire, une section et éventuellement une classe.

Types :
- nouvelle inscription ;
- réinscription.

Statuts :
- EN_ATTENTE
- A_AFFECTER
- VALIDEE
- REJETEE
- ANNULEE

Workflow général :
1. L’étudiant remplit le formulaire public.
2. Le système génère un matricule.
3. L’inscription est créée avec statut EN_ATTENTE.
4. L’école vérifie le dossier.
5. L’école affecte une classe.
6. L’école valide l’inscription.

## 12. Cas Qamar

Pour Qamar :
- le test de niveau se fait en interne, hors application ;
- après le test, l’admin affecte l’étudiante à une classe ;
- l’inscription est ensuite validée.

## 13. Cas Daroul-Ilm

Pour Daroul-Ilm en ligne :
- affectation selon langue ;
- affectation selon sexe ;
- affectation selon section.

Exemples de classes :
- Femmes Français WhatsApp
- Hommes Français WhatsApp
- Femmes Haoussa WhatsApp
- Hommes Haoussa WhatsApp

Pour Daroul-Ilm présentiel personnalisé :
- chaque étudiant peut avoir un tarif spécifique ;
- l’admin définit le tarif lors de la validation.

## 14. Frais

Les frais sont configurables par école et par section.

Types :
- inscription ;
- réinscription ;
- frais annuels ;
- mensualité ;
- documents ;
- personnalisé ;
- autre.

## 15. Paiements

Un paiement appartient à :
- une école ;
- un étudiant ;
- une inscription ;
- un type de frais.

Champs :
- montant attendu ;
- montant payé ;
- reste ;
- date ;
- mode ;
- référence ;
- statut ;
- observation.

Modes :
- espèces ;
- MTN Mobile Money ;
- Orange Money ;
- virement ;
- autre.

Statuts :
- PAYE
- PARTIEL
- IMPAYE
- ANNULE

## 16. Tarifs personnalisés

Pour les sections personnalisées, il faut pouvoir définir un plan de scolarité propre à chaque étudiant.

Exemple :
- étudiant A : 8 000 FCFA/mois ;
- étudiant B : 12 000 FCFA/mois ;
- étudiant C : 50 000 FCFA/an.

## 17. Modules futurs

Non prioritaires pour le MVP :
- tests de niveau détaillés ;
- présences/appels ;
- bulletins ;
- notes ;
- progression Qur’an ;
- SMS ;
- WhatsApp ;
- application mobile ;
- API publique ;
- abonnements automatisés ;
- paiement en ligne.