Swifty Companion — dépôt de rendu (42)
Dossier destiné au code évalué en soutenance. Inspiré des README mobileModuleXX/ de piscine_mobile, version allégée.
Contenu attendu
| Élément | Détail |
|---|---|
| Dossier de rendu | swiftyCompanion/ (ce répertoire) |
| Projet | Application mobile (Flutter recommandé après la piscine) — nom suggéré : swifty_companion |
| Sujet | docs/sujets/swifty-companion.md |
Le dépôt Git à la racine swifty_companion/ peut aussi contenir docs/ ; seul ce qui est dans le repo compte à la soutenance — garde ici tout le nécessaire pour flutter run.
Création du projet (quand tu es prêt — étape 1)
Depuis ce dossier :
cd swiftyCompanion
flutter create swifty_companion
cd swifty_companion
flutter run -d <device>
Vérifier l’environnement :
flutter doctor
flutter devices
Doc détaillée machine : piscine_mobile — Ubuntu natif.
Secrets — .env
- Créer une application sur profile.intra.42.fr/oauth/applications.
- Copier
.env.examplevers.envà la racine du repo ou dansswifty_companion/(selon où tu charges les variables). - Ne jamais committer
.env(déjà dans.gitignore).
Variables typiques : CLIENT_ID, CLIENT_SECRET, REDIRECT_URI (adapter au package / schéma OAuth de ton app).
Critères obligatoires (rappel)
| # | À montrer en soutenance |
|---|---|
| 1 | ≥ 2 vues |
| 2 | Erreurs gérées : login inconnu, réseau, etc. |
| 3 | Vue 2 : infos du login si existant |
| 4 | ≥ 4 champs (login, email, mobile, level, location, wallet, evaluations…) + photo |
| 5 | Skills : niveau + pourcentage |
| 6 | Projets terminés, y compris failed |
| 7 | Retour vers la vue 1 |
| 8 | Layout adaptatif (tailles / plateformes) |
| 9 | Un seul token OAuth réutilisé — pas un token par requête API |
OAuth : Intra OAuth2 — voir doc API 42.
Bonus (si obligatoire parfait)
- Renouvellement automatique du token à expiration ; l’app reste utilisable.
Récapitulatif correction (peer-eval)
| # | Test | Démo rapide |
|---|---|---|
| 1 | cd swifty_companion && flutter test |
Tests passent (si tu en ajoutes) |
| 2 | flutter run -d <device> |
Vue 1 : saisie login valide → vue 2 |
| 3 | (même session) | Vue 2 : photo + ≥ 4 infos + skills + projets (dont failed) |
| 4 | Login invalide | Message d’erreur clair, pas de crash |
| 5 | Hors ligne / API coupée | Erreur réseau gérée |
| 6 | Navigation | Retour vue 1, nouvelle recherche |
| 7 | Petit écran / rotation (si possible) | UI lisible (layout flexible) |
| 8 | Bonus uniquement si tout OK | Laisser expirer le token ou forcer refresh → app toujours OK |
Ordre de démo suggéré : login valide (toi ou un pair) → parcours skills / projets → login faux → couper le réseau → retour recherche.
Liens
- Index projet : README racine
- Plan pas à pas : docs/pedagogie/README.md