Files
swift_companion/docs/pedagogie/00-reprise-et-etat.md
2026-09-29 15:07:05 +02:00

4.9 KiB
Raw Blame History

Reprise du projet — où nous en sommes

Dernière mise à jour : étape 4 codée (profil complet).

En bref

Fait Structure dépôt perso, sujet FR, paquet rendu, projet Flutter (swifty_companion/)
Fait OAuth + token + /v2/me (login connecté)
Fait Vue 1 recherche + vue 2 profil (skills, projets, ≥ 4 champs)
Prochaine action Étape 5 — retour / layout + tests manuels sur device

Arborescence actuelle

swifty_companion/                    ← dépôt Git de TRAVAIL (perso)
├── README.md                        ← explique les 2 dépôts Git
├── .gitignore                       ← ignore docs + swiftyCompanion/.git/
├── docs/
│   ├── README.md
│   ├── sujets/
│   │   ├── swifty-companion.md      ← sujet traduit (référence)
│   │   ├── originaux/swifty_companion_subject.pdf
│   │   └── captures/                ← visuels PDF (couverture uniquement)
│   └── pedagogie/
│       ├── README.md                ← plan des étapes
│       └── 00-reprise-et-etat.md    ← ce fichier
└── swiftyCompanion/                 ← futur dépôt ÉCOLE (racine Vogosphere)
    ├── README.md
    ├── .env.example
    └── swifty_companion/            ← projet Flutter (lib/, android/, pubspec.yaml)

Décisions déjà prises

  1. Deux dépôts Git : tout docs/ et la traduction restent dans le repo perso ; l’Intra ne reçoit que le contenu de swiftyCompanion/.
  2. Stack : Flutter, flutter_dotenv, flutter_appauth, http.
  3. Secrets : .env local uniquement, jamais commité (modèle dans swiftyCompanion/.env.example).
  4. Redirect OAuth mobile : com.example.swiftycompanion://callback (pas localhost sur téléphone physique).
  5. Sujet PDF : pas de maquettes d’écrans — l’UI suit la liste des critères obligatoires (sujet FR).

Avancement par étape

Étape Contenu Statut
0 Structure, traduction sujet, séparation travail / école, README rendu ✅ Terminé
1 Projet Flutter swiftyCompanion/swifty_companion/ ✅ Terminé
2 OAuth2 (IntraAuthService, /v2/me) ✅ Validé
3 Vue 1 : SearchScreen + IntraUserService + navigation profil ✅ Codé — tester sur téléphone
4 Vue 2 : IntraProfileService + profil (skills, projets, champs) ✅ Codé — tester sur téléphone
5 Retour vue 1 + layout adaptatif (polish) ⏳ Prochaine
6 Passage checklist swiftyCompanion/README.md ⏳
7 Bonus : refresh token à expiration ⏳

Code applicatif (swifty_companion/lib/)

Fichier Rôle
config/intra_config.dart .env, URLs OAuth / API
services/intra_auth_service.dart OAuth + token unique + GET /v2/me
services/intra_user_service.dart GET /v2/users?filter[login]=
services/intra_profile_service.dart Profil : user, cursus, experiences, projects_users
services/intra_api_exception.dart Erreurs métier
screens/search_screen.dart Vue 1
screens/profile_screen.dart Vue 2
main.dart home: SearchScreen()

Reprendre le travail (checklist)

  1. Ouvrir le dépôt : ~/projets/42School/swifty_companion
  2. Relire le sujet traduit (section obligatoire).
  3. Vérifier Flutter : flutter doctor et flutter devices.
  4. Lancer l’app (après modification .env, relancer flutter run) :
    cd swiftyCompanion/swifty_companion
    flutter run -d <device>
    
  5. Tester le parcours : OAuth → recherche → profil → retour → erreurs réseau.

Fichiers utiles selon le contexte

Tu veux… Fichier
Comprendre le sujet docs/sujets/swifty-companion.md
Plan complet des étapes docs/pedagogie/README.md
Vue profil (étape 4) etape-04-vue-profil.md
Workflow Git travail / école README racine
Soutenance / peer-eval swiftyCompanion/README.md

Guides détaillés

Fichier Statut
etape-02-oauth-intra.md ✅
etape-03-vue-recherche.md ✅
etape-04-vue-profil.md ✅
etape-05-navigation-layout.md 🔜
etape-06-bonus-token.md 🔜

Notes pour la session suivante

  • Valider étapes 3–4 sur device réel (recherche, profil, mode avion sur vue 2).
  • Étape 5 : harmoniser marges / contraintes sur les deux écrans si besoin en soutenance.
  • Le dépôt perso peut versionner le code dans swiftyCompanion/ ; le remote école pointe uniquement sur ce sous-dossier (voir README racine).