MathKids est un jeu interactif d'apprentissage des mathematiques pour enfants (4+ ans). L'application propose 5 niveaux progressifs, un systeme de recompenses (etoiles + badges), et des interfaces de suivi pour les parents et administrateurs.
- Backend : PHP 8.2 + CodeIgniter 4.7 (MVC)
- Frontend : HTML5, CSS3, Bootstrap 5.3, jQuery 3.7+, jQuery UI 1.13+
- Base de donnees : MySQL 8 (
mathkids_db, charset utf8mb4) - Serveur : XAMPP (Apache + MySQL + PHP)
mathkids_example/
├── app/
│ ├── Config/ # Configuration CI4 (Routes, Filters, Database, App)
│ ├── Controllers/ # Controleurs MVC
│ │ ├── Auth.php # Authentification (register, login, logout, reset)
│ │ ├── Game.php # Moteur de jeu (play, checkAnswer, results)
│ │ ├── Home.php # Page d'accueil
│ │ ├── Admin/ # Module admin (Dashboard, Users, Levels, Exercises, Stats)
│ │ └── Parent/ # Module parent (Dashboard, Children, Progression)
│ ├── Database/
│ │ ├── Migrations/ # 9 migrations (users, children, levels, exercises, etc.)
│ │ └── Seeds/ # Seeders (admin, parents, niveaux, exercices, badges, demo)
│ ├── Filters/ # Filtres de securite (AuthFilter, AdminFilter, ParentFilter)
│ ├── Models/ # 9 models (User, Child, Level, Exercise, GameSession, etc.)
│ └── Views/
│ ├── layouts/ # 3 layouts (main, auth, game)
│ ├── auth/ # Vues authentification (register, login, forgot, reset)
│ ├── parent/ # Vues parent (dashboard, children/*, progression/*)
│ ├── admin/ # Vues admin (dashboard, users/*, levels/*, exercises/*, stats/*)
│ └── game/ # Vues jeu (level_select, play, results)
├── public/
│ ├── css/mathkids.css # Theme principal
│ ├── js/ # Scripts (auth, game-engine, drag-drop, parent-dashboard, admin-datatables)
│ ├── sounds/ # Sons (victory, encouragement, wrong, star_collect, click)
│ ├── images/ # Images statiques
│ └── uploads/ # Avatars enfants uploades
└── docs/ # Documentation miroir
| Niveau | Nom | Type de question | Age cible |
|---|---|---|---|
| 1 | Reconnaissance des chiffres | multiple_choice | 4+ |
| 2 | Comptage d'objets | multiple_choice, input | 4+ |
| 3 | Comparaison de quantites | multiple_choice | 5+ |
| 4 | Additions simples | input, multiple_choice | 5+ |
| 5 | Tri de formes geometriques | drag_drop (jQuery UI) | 6+ |
- Parent : inscription, gestion profils enfants, lancement du jeu, suivi progression/badges
- Admin : gestion utilisateurs, CRUD exercices, configuration niveaux, statistiques globales
- Parent se connecte → selectionne un enfant
- Selection du niveau (verrouille/deverrouille selon progression)
- Boucle AJAX :
nextExercise()→ affichage → reponse →checkAnswer()→ feedback - Fin de partie :
completeSession()→ calcul score, etoiles, badges, deverrouillage - Ecran resultats avec detail des tentatives
- Filtres de role sur chaque groupe de routes (auth, parent, admin)
- CSRF sur tous les POST
- Hashage mots de passe (
password_hash()/password_verify()) - Validation serveur CI4 sur toutes les entrees
- Tokens de reinitialisation de mot de passe avec expiration (1h)