Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

MathKids - Documentation technique

Vue d'ensemble

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.

Architecture

  • 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)

Structure du projet

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

Les 5 niveaux de jeu

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+

Roles utilisateurs

  • Parent : inscription, gestion profils enfants, lancement du jeu, suivi progression/badges
  • Admin : gestion utilisateurs, CRUD exercices, configuration niveaux, statistiques globales

Flux de jeu

  1. Parent se connecte → selectionne un enfant
  2. Selection du niveau (verrouille/deverrouille selon progression)
  3. Boucle AJAX : nextExercise() → affichage → reponse → checkAnswer() → feedback
  4. Fin de partie : completeSession() → calcul score, etoiles, badges, deverrouillage
  5. Ecran resultats avec detail des tentatives

Securite

  • 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)

Documentation detaillee