Evidexe est une application d'apprentissage interactive construite avec Expo, React Native et TypeScript. Elle aide les étudiants à explorer les mathématiques, la physique et la programmation Java avec des cours courts, des simulations visuelles, des quiz et un suivi de progression local.
Evidexe transforme des concepts abstraits en éléments que l'étudiant peut observer et manipuler. L'application combine :
- des diapositives de cours guidées avec exemples et quiz final;
- des simulations interactives pour les mathématiques, la physique et les algorithmes Java;
- des profils locaux avec XP, niveaux, cours récents, succès et paramètres;
- une architecture modulaire avec Expo Router pour faciliter l'ajout de sections et de simulations.
Le projet est actuellement une application éducative centrée sur le stockage local. Il ne contient pas de serveur distant, d'authentification distante ni de synchronisation de compte.
- Mathématiques : dérivées, intégrales et limites.
- Physique : cinématique, forces et énergie.
- Java : variables, types de données, transtypage, chaînes, opérateurs,
Math, conditions,switch, boucles, tableaux, méthodes, classes et logique booléenne. - La progression des cours est sauvegardée pour l'utilisateur local actif.
- Un cours atteint 100 % seulement lorsque l'exercice final est complété.
Simulations disponibles :
- Mathématiques : dérivées, intégrales, série de Taylor, limites, Fourier, champ de pentes et séries numériques.
- Physique : gravité, pendule, mouvement projectile, ressort et loi de Hooke, mouvement circulaire, champs magnétiques, champs électriques, optique et réfraction, mécanique orbitale et frottement.
- Java : tri à bulles, tri par sélection, tri par insertion, tri fusion, tri rapide et
ArrayList.
Le catalogue contient aussi des entrées verrouillées ou en préparation, notamment le champ vectoriel, les collisions élastiques et plusieurs simulations Java sur les structures de données ou les notions avancées du langage.
- Plusieurs utilisateurs locaux par nom d'affichage.
- Progression par XP et niveaux.
- Cours récents, cours actifs et cours terminés.
- Succès liés aux cours, aux cartes mémoire et à l'utilisation des simulations.
- Paramètres locaux pour le mode sombre, la langue, les notifications et le compteur de FPS de développement.
- Stockage de cartes mémoire par sujet.
- Expo 54 avec Expo Router 6 pour le routage et le point d'entrée de l'application.
- React Native 0.81, React 19 et React Native Web pour l'interface mobile et web.
- TypeScript 5.9 avec le mode strict activé.
- React Native SVG et KaTeX pour les schémas et la notation mathématique.
- Expo SQLite pour la persistance clé-valeur sur plateformes natives.
- IndexedDB pour la persistance clé-valeur sur le web.
- ESLint avec la configuration Expo.
- Node.js 20 ou plus récent est recommandé.
- npm.
- Git.
- Une des cibles d'exécution suivantes :
- Expo Go ou une version de développement sur appareil physique;
- Android Studio pour l'émulateur Android;
- Xcode pour le simulateur iOS sur macOS;
- un navigateur moderne pour la version web.
Cloner le dépôt :
git clone https://github.com/Veng143/Evidexe.git
cd EvidexeInstaller les dépendances :
npm installDémarrer Expo sur le réseau local :
npm startDémarrer Expo avec le comportement d'hébergement par défaut :
npm run startlocalDémarrer Expo avec un tunnel :
npm run start:tunnelLancer une cible précise :
npm run android
npm run ios
npm run web| Commande | Description |
|---|---|
npm start |
Démarre Expo avec le cache vidé et l'hébergement sur le réseau local. |
npm run startlocal |
Démarre Expo avec le cache vidé et le comportement d'hébergement par défaut. |
npm run start:tunnel |
Démarre Expo avec le cache vidé à travers un tunnel. |
npm run android |
Ouvre le projet sur Android avec Expo. |
npm run ios |
Ouvre le projet sur iOS avec Expo. |
npm run web |
Démarre la cible web. |
npm run lint |
Lance ESLint avec Expo. |
npm run reinitialiser-projet |
Lance l'utilitaire local scripts/reinitialiser-projet.js. |
Lancer l'analyse du code :
npm run lintLancer la vérification TypeScript :
npx tsc --noEmitIl n'y a actuellement aucun script de tests automatisés dans package.json.
app/ Routes Expo Router et écrans
assets/ Images, icônes et ressources statiques
components/ Composants d'interface partagés
components/accueil/ Panneaux et barre supérieure de l'accueil
components/cours/ Cartes de cours
components/profil/ Panneaux de profil et de succès
constantes/ Constantes de thème partagées
data/ Données des cours, diapositives et quiz
db/ Persistance locale et logique de progression
features/cours/ Écran de lecture des cours
features/sections/ Aides pour les écrans de section
features/simulations/ Catalogue, écrans et interface partagée des simulations
hooks/ Fonctions React de thème et de schéma de couleur
scripts/ Scripts utilitaires
L'application stocke toutes les données utilisateur localement dans un seul objet de données applicatives. Les plateformes natives utilisent expo-sqlite; la version web utilise IndexedDB. La couche partagée dans db/donnees-principales.tsx gère les utilisateurs, les paramètres, la progression des cours, les cartes mémoire, les succès et l'XP.
Ce modèle de persistance reste local à l'appareil ou au navigateur. Les données ne sont pas synchronisées entre plusieurs appareils.
- Certaines entrées du catalogue sont des simulations verrouillées ou en préparation.
- L'application fonctionne avec des données locales et ne possède pas d'authentification distante ni de sauvegarde infonuagique.
- Les tests automatisés ne sont pas encore ajoutés.
- L'interface et le contenu sont principalement en français, mais certains identifiants techniques restent en anglais dans le code.
- Compléter les simulations verrouillées et les entrées en préparation.
- Ajouter des tests automatisés pour la persistance, les quiz, l'XP, les succès et les calculs des simulations.
- Améliorer l'accessibilité et l'adaptation aux petits écrans.
- Renforcer la stratégie de persistance si le projet évolue vers une utilisation sur plusieurs appareils.
- Étudier un mode enseignant pour assigner des cours et consulter la progression.
- Tony Khabbaz
- Aris Hadjeb
Aucun fichier de licence n'est actuellement inclus dans ce dépôt. Il faudra en ajouter un avant une distribution publique ou l'acceptation de contributions externes.