On reprendre l'application NTI à zéro avec toi
Maintenant
Le cahier de charge
- Nom de l’application : N’ti
- Type : Application mobile éducative
- Domaine : Apprentissage de langue locale
- Langue ciblée : Baoulé
- Application mobile
- Architecture hybride :
- Mode en ligne
- Mode hors ligne
- Base de données dédiée au stockage des contenus pédagogiques et des données utilisateurs
- Synchronisation automatique des données lorsque la connexion Internet est disponible
La base de données devra assurer la gestion des éléments suivants :
- Utilisateurs
- Modules d’apprentissage
- Leçons
- Mots et vocabulaire
- Fichiers audio de prononciation, image, vidéo, texte
- Quiz
- Données de progression des utilisateurs
- Leçons organisées et structurées par modules
- Histoires en langue Baoulé présentées sous forme de notes vocales
- Vocabulaire classé par thèmes (salutations, famille, alimentation, etc.)
- Animations éducatives simples pour faciliter la compréhension
- Traduction Baoulé – Français intégrée aux contenus
- Dictionnaire Baoulé ⇄ Français ( amélioration future en anglais)
- Accessible sans connexion Internet
- Fonction de recherche par mot
-
Apprentissage structuré par modules
-
Niveaux d’apprentissage (débutant, intermédiaire et avancé)
-
Association entre la prononciation et l’écriture
-
Lecture audio des mots et des phrases
-
Quiz d’évaluation à la fin de chaque leçon
-
Validation des modules avant l’accès au contenu suivant
-
Créer une communauté de communication( amélioration future)
-
Réconnaissance visuel
-
Histoire d’ABLA POKOU
-
Intégration de dictionnaire
-
Ai intégrée
-
Audio, video, texte, image
-
Phoénetique
-
Classement
-
Niveau de vie
-
Ordre: Texte, audio, vidéo en continu
- Assistance à l’apprentissage
- Aide à la compréhension et à l’amélioration de la prononciation
- Création et gestion de profils utilisateurs
- Suivi de la progression d’apprentissage
- Historique des leçons suivies
- Consultation des résultats aux quiz
- Application simple, ergonomique et intuitive
- Adaptation aux réalités locales, notamment en matière de connectivité
- Contenus linguistiques validés afin de garantir leur fiabilité
- Respect des contraintes liées au caractère académique du projet (temps et ressources limités)
- Intégration de la reconnaissance vocale
- Mise en place d’un mode de conversation interactive
- Ajout progressif d’autres langues locales ivoiriennes
- Contribution communautaire avec système de validation des contenus
Avant
- Initialisation du projet : Un projet Flutter de base a été créé et est fonctionnel.
- Intégration de Firebase : Les dépendances Firebase (Core et Auth) ont été ajoutées, et la configuration de base a été effectuée.
- Écran d'accueil : Une page
welcome_screen.darta été créée. Elle sert de point d'entrée à l'application, présentant l'application à l'utilisateur. - Navigation de base : Une navigation simple a été mise en place pour permettre aux utilisateurs de naviguer de l'écran d'accueil vers les écrans de connexion et d'inscription.
- Flux d'authentification utilisateur : Le flux de connexion et d'inscription est partiellement implémenté. La logique de redirection après une connexion ou une déconnexion réussie doit être finalisée et testée.
- Finaliser la connexion et l'inscription : Implémenter la logique complète pour que les utilisateurs puissent créer un compte et se connecter.
- Gestion de session : S'assurer que les utilisateurs restent connectés après avoir fermé et rouvert l'application.
- Réinitialisation de mot de passe : Ajouter une fonctionnalité permettant aux utilisateurs de réinitialiser leur mot de passe s'ils l'oublient.
- Leçons : Créer et afficher des leçons de langue. Les leçons pourraient être structurées par niveaux de difficulté.
- Quiz : Développer des quiz interactifs pour chaque leçon afin de permettre aux utilisateurs de tester leurs connaissances.
- Dictionnaire : Mettre en place un dictionnaire consultable pour les langues enseignées.
- Profil utilisateur : Créer un écran de profil où les utilisateurs peuvent suivre leurs progrès, consulter leurs scores et gérer leur compte.
- Amélioration de l'interface : Améliorer la conception de tous les écrans pour qu'ils soient plus intuitifs et visuellement attrayants.
- Thème et image de marque : Définir et appliquer un thème cohérent (couleurs, polices, etc.) pour renforcer l'identité de la marque.
- Animations et transitions : Intégrer des animations et des transitions fluides pour améliorer l'expérience utilisateur.
- Choisir une solution de gestion de l'état : Le projet utilise actuellement
provider, mais il pourrait être nécessaire de l'étendre ou d'envisager d'autres solutions comme BLoC ou Riverpod pour gérer efficacement l'état de l'application à mesure qu'elle grandit.
- Implémenter une gestion complète des erreurs : Gérer les erreurs de manière élégante, qu'il s'agisse d'erreurs de réseau, de validation de formulaire ou d'autres problèmes inattendus.
- Écrire des tests : Mettre en place une suite de tests complète, comprenant des tests unitaires, des tests de widgets et des tests d'intégration, pour garantir la stabilité et la fiabilité de l'application.
- Configurer pour le déploiement : Préparer l'application pour sa publication sur les différentes plateformes (Android, iOS, Web).