4.9 KiB
4.9 KiB
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
- Deux dépôts Git : tout
docs/et la traduction restent dans le repo perso ; l’Intra ne reçoit que le contenu deswiftyCompanion/. - Stack : Flutter,
flutter_dotenv,flutter_appauth,http. - Secrets :
.envlocal uniquement, jamais commité (modèle dansswiftyCompanion/.env.example). - Redirect OAuth mobile :
com.example.swiftycompanion://callback(paslocalhostsur téléphone physique). - 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)
- Ouvrir le dépôt :
~/projets/42School/swifty_companion - Relire le sujet traduit (section obligatoire).
- Vérifier Flutter :
flutter doctoretflutter devices. - Lancer l’app (après modification
.env, relancerflutter run) :cd swiftyCompanion/swifty_companion flutter run -d <device> - 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).