Aller au contenu

LearnKorean — exigences non fonctionnelles et risques (v1)

Exigences

Domaine Cible
Plateforme Android (Google Play), téléphones récents ; interface en français
Performance Démarrage < 3 s ; révision d'une carte fluide (< 100 ms de réaction) ; consommation data minimale
Connexion v1 = en ligne (l'app requiert le réseau) ; le hors-ligne + sync est un Should v1.x et la conception ne doit pas le rendre impossible
Sécurité Mots de passe hachés (argon2/bcrypt), HTTPS partout, API à jeton, limitation de débit sur l'authentification (CrowdSec + applicatif), aucune donnée sensible en clair dans les logs
RGPD Minimisation (email + progression, rien d'autre), suppression de compte en libre-service, politique de confidentialité + CGU (exigées aussi par Google Play), pas de traqueur tiers
Disponibilité Utilisateurs publics → monitoring obligatoire (Uptime Kuma à installer, alerte si l'API tombe) ; coupure d'une heure tolérable, pas d'astreinte
Sauvegardes La base (comptes + progression) entre dans le vzdump quotidien + dump logique régulier ; restauration testée avant l'ouverture publique
Accessibilité Tailles de police adaptables, contrastes AA, cibles tactiles ≥ 44 px
Volumétrie Dizaines d'utilisateurs la première année (réaliste) ; conception saine mais pas de sur-dimensionnement

Risques

# Risque Parade / signal
R1 Dérive de périmètre (la vision v3 aspire le MVP) Roadmap v1→v4 actée au cadrage ; toute nouvelle idée va dans le backlog v2+ ; 7 Must maximum
R2 Temps solo limité (alternance + Mastère dès sept. 2026) Lots courts avec démo ; l'app doit m'être utilisable dès le lot 2-3 (je deviens mon propre bêta-testeur quotidien)
R3 Licences des jeux de données de vocabulaire Vérifier la licence de chaque source avant import ; attribution affichée dans l'app ; sources notées dans la doc
R4 Exposition publique d'un backend avec comptes Acquis de l'infra (CrowdSec, HTTPS, pare-feu) + revue sécurité avant l'ouverture ; inscription peut rester sur invitation pendant la bêta
R5 Validation Google Play (politiques, API cible, données) Lire les exigences Play en phase 2 ; politique de confidentialité prête tôt ; prévoir 1-2 allers-retours de review
R6 Un GPU unique déjà utilisé par Jellyfin (impact v2/v3 : TTS, STT, LLM) Hors périmètre v1 ; étude dédiée en cadrage v2/v3 (CPU d'abord, GPU partagé, ou matériel dédié)