Files
swift_companion/docs/pedagogie/etape-06-checklist-soutenance.md
2026-09-30 08:24:20 +02:00

3.9 KiB
Raw Permalink Blame History

Étape 6 — Tests, soutenance et rendu école

Prérequis : étapes 2–5 OK sur device (OAuth public + projects, recherche, profil, retour, layout).

Objectif

  1. Valider la partie obligatoire du sujet avant peer-eval.
  2. Préparer le dépôt Vogosphere (sans docs/, sans .env).
  3. Savoir quoi montrer à l’évaluateur et dans quel ordre.

Référence correcteurs : swiftyCompanion/README.md.


Commandes avant soutenance

Depuis le package Flutter :

cd ~/projets/42School/swifty_companion/swiftyCompanion/swifty_companion
flutter pub get
flutter analyze
flutter test
flutter doctor

Sur téléphone (USB ou Wi‑Fi ADB) :

flutter devices
flutter run -d <device>

Après changement de .env ou de scopes OAuth : arrêter flutter run et relancer ; reconnexion 42 dans l’app.


Checklist peer-eval (détaillée)

# Test Comment le montrer Où c’est géré dans l’app
1 flutter test Terminal sur la machine de dev test/widget_test.dart
2 Parcours nominal Connexion → login valide → profil SearchScreen → ProfileScreen
3 Profil complet Photo, ≥ 4 champs, skills (niveau + %), projets validés et failed IntraProfileService + profile_screen.dart
4 Login invalide zzzzinvalid → message, pas de crash IntraUserNotFoundException
5 Hors ligne Mode avion sur recherche ou sur profil (erreur + réessai) IntraNetworkException, retry profil
6 Navigation Retour AppBar → nouvelle recherche, session conservée Navigator.pop
7 Petit écran / rotation Paysage, clavier ouvert sur la recherche ResponsiveScrollBody, swifty_ui.dart
8 Bonus Access invalide → refresh → recherche OK étape 7

Ordre de démo suggéré : connexion → profil riche (skills + failed) → login faux → mode avion → retour → flutter test.


Correspondance sujet v4 ↔ app

Critère sujet Statut attendu
2 vues SearchScreen + ProfileScreen
Erreurs Login vide, inconnu, réseau, 401, 403, 429
Token unique IntraAuthService.instance partout
OAuth Intra flutter_appauth + .env
Layout adaptatif Étape 5 (wideBreakpoint 720 px)

Champs masqués par l’API (—) : normal (confidentialité sujet).


Rendu Git école

Ce qui part sur Vogosphere

Racine du dépôt Intra = contenu de swiftyCompanion/ :

  • README.md, .gitignore, .env.example
  • swifty_companion/ (code Flutter)

Ce qui ne part pas

  • docs/ (dépôt perso uniquement)
  • .env (secrets)
  • Fichiers de backup type .env copy

Vérifier avant push

cd ~/projets/42School/swifty_companion/swiftyCompanion
git status   # si repo école initialisé ici
  • Aucun .env listé
  • REDIRECT_URI dans .env.example = URI enregistrée sur l’Intra
  • README école à jour pour les correcteurs

Workflow détaillé : README racine (section « Pousser vers l’école »).


Parler en soutenance (30 s)

« Swifty Companion : OAuth2 Intra une fois, puis recherche par login. Le profil charge cursus, skills et projects_users avec le même token. Erreurs réseau et API gérées ; layout scrollable et deux colonnes sur grand écran. Secrets dans .env local, non versionné. »


Critères « étape 6 terminée »

# Fait ?
1 flutter analyze + flutter test verts
2 Checklist peer-eval cochée sur device
3 .env absent du futur commit école
4 Tu sais lancer la démo sans notes

Ensuite — étape 7 (bonus)

→ etape-07-bonus-token.md : refresh token à l’expiration (optionnel si obligatoire parfaite).