first commit
This commit is contained in:
7
docs/sujets/README.md
Normal file
7
docs/sujets/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Sujets — Swifty Companion
|
||||
|
||||
| Document | Description |
|
||||
|----------|-------------|
|
||||
| [swifty-companion.md](swifty-companion.md) | Traduction FR complète (v4) + interprétation des visuels |
|
||||
| [originaux/swifty_companion_subject.pdf](originaux/swifty_companion_subject.pdf) | PDF officiel Intra |
|
||||
| [captures/](captures/) | Images extraites du PDF (couverture) |
|
||||
BIN
docs/sujets/captures/illustration-motif-42.png
Normal file
BIN
docs/sujets/captures/illustration-motif-42.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 870 KiB |
BIN
docs/sujets/captures/page-01-couverture.png
Normal file
BIN
docs/sujets/captures/page-01-couverture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 204 KiB |
BIN
docs/sujets/originaux/swifty_companion_subject.pdf
Normal file
BIN
docs/sujets/originaux/swifty_companion_subject.pdf
Normal file
Binary file not shown.
162
docs/sujets/swifty-companion.md
Normal file
162
docs/sujets/swifty-companion.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# Mobile Initiation — Swifty Companion
|
||||
|
||||
> **Version :** 4
|
||||
> **Résumé :** Ce projet vise à vous initier au développement d’applications mobiles.
|
||||
> **Traduction française** — source : [swifty_companion_subject.pdf](originaux/swifty_companion_subject.pdf)
|
||||
|
||||
---
|
||||
|
||||
## Table des matières
|
||||
|
||||
1. [Chapitre I — Avant-propos](#chapitre-i--avant-propos)
|
||||
2. [Chapitre II — Introduction](#chapitre-ii--introduction)
|
||||
3. [Chapitre III — Objectifs](#chapitre-iii--objectifs)
|
||||
4. [Chapitre IV — Instructions générales](#chapitre-iv--instructions-générales)
|
||||
5. [Chapitre V — Le projet](#chapitre-v--le-projet)
|
||||
- [V.1 Partie obligatoire](#v1-partie-obligatoire)
|
||||
- [V.2 Bonus](#v2-bonus)
|
||||
6. [Chapitre VI — Rendu et évaluation par les pairs](#chapitre-vi--rendu-et-évaluation-par-les-pairs)
|
||||
7. [Éléments visuels du PDF](#éléments-visuels-du-pdf)
|
||||
|
||||
---
|
||||
|
||||
## Page de garde (PDF page 1)
|
||||
|
||||
| Champ | Texte officiel (EN) | Traduction |
|
||||
|-------|---------------------|------------|
|
||||
| Série | Mobile Initiation | Initiation mobile |
|
||||
| Titre | Swifty Companion | Swifty Companion |
|
||||
| Résumé | This project aims to introduce you to the development of mobile application. | Ce projet vise à vous initier au développement d’applications mobiles. |
|
||||
| Version | 4 | 4 |
|
||||
|
||||
### Référence visuelle — couverture
|
||||
|
||||

|
||||
|
||||
| Zone | Description |
|
||||
|------|-------------|
|
||||
| Illustration centrale | Motif vertical en facettes (style low-poly), tons gris/noir — **élément graphique 42**, pas une maquette d’application |
|
||||
| Fond | Motif géométrique léger (triangles) sur toute la page |
|
||||
| Texte | « Mobile Initiation » puis « Swifty Companion », résumé en italique, « Version: 4 » |
|
||||
|
||||
Extrait haute résolution de l’illustration : [illustration-motif-42.png](captures/illustration-motif-42.png)
|
||||
|
||||
> **Note :** le sujet PDF (9 pages) **ne contient pas de captures d’écran de l’app à reproduire**. Les pages 2 à 9 reprennent le même fond géométrique que la couverture, avec le texte des chapitres. L’UI de votre application est définie **uniquement par la liste de critères** de la partie obligatoire.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre I — Avant-propos
|
||||
|
||||
*(Traduction du texte Wikipedia sur le dodo — page 2 du PDF.)*
|
||||
|
||||
Voici ce que Wikipedia dit du **dodo** :
|
||||
|
||||
Le dodo (*Raphus cucullatus*) est un oiseau incapable de voler, aujourd’hui éteint, endémique de l’île Maurice, à l’est de Madagascar dans l’océan Indien. Son plus proche parent génétique était le solitaire de Rodrigues, également éteint ; les deux formaient la sous-famille des Raphinae, au sein de la famille des columbidés. Le plus proche parent encore vivant du dodo est le pigeon de Nicobar. On a un temps cru à tort qu’un dodo blanc existait sur l’île voisine de La Réunion.
|
||||
|
||||
Les restes subfossiles montrent que le dodo mesurait environ 1 mètre et pouvait peser 10,6 à 21,1 kg à l’état sauvage. Son apparence réelle n’est connue que par des dessins, peintures et récits du XVIIe siècle. Ces sources varient beaucoup et peu d’illustrations proviennent de spécimens vivants : l’apparence exacte reste débattue. On le représente souvent avec un plumage gris-brun, des pattes jaunes, une touffe de plumes à la queue, une tête nue grise et un bec noir, jaune et vert. Il utilisait des gastrolithes pour digérer, mangeait probablement des fruits, et vivait dans les bois des zones côtières plus sèches de Maurice. Une source mentionne un seul œuf par couvée. Il est supposé qu’il a perdu le vol face à l’abondance de nourriture et au peu de prédateurs.
|
||||
|
||||
Les Hollandais le mentionnent pour la première fois en 1598. Chasse, animaux domestiques et espèces invasives ont contribué à sa disparition ; la dernière observation largement acceptée date de 1662. Son extinction ne fut pas tout de suite remarquée ; certains le considéraient comme mythique. Au XIXe siècle, des recherches portèrent sur quelques spécimens rapportés en Europe au début du XVIIe siècle, dont une tête séchée — seul tissu mou encore conservé. Depuis, beaucoup de matériel subfossile a été extrait de Maurice (notamment du marais Mare aux Songes). La rapidité de l’extinction a mis en lumière le rôle de l’homme dans la disparition d’espèces entières. Le dodo est célèbre via *Alice au pays des merveilles* et est devenu un symbole d’extinction et d’obsolescence, ainsi qu’une mascotte de Maurice.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre II — Introduction
|
||||
|
||||
Dans ce projet, vous découvrirez comment développer une **application mobile**.
|
||||
|
||||
L’objectif est de construire une application qui récupère les **informations des étudiants de 42** via l’**API 42**.
|
||||
|
||||
Une **API** (*Application Programming Interface*) est un ensemble de routines, protocoles et outils pour construire des applications. Souvent, une API se présente comme une bibliothèque avec des spécifications pour routines, structures de données, classes et variables. Dans d’autres cas — notamment les services **SOAP** et **REST** — une API est simplement une spécification d’appels distants exposés aux consommateurs.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre III — Objectifs
|
||||
|
||||
Ce projet vise à vous familiariser avec :
|
||||
|
||||
- un **langage mobile** (Dart, Swift, Kotlin, Java, etc.) ;
|
||||
- un **IDE** de votre choix (Android Studio est un bon candidat) ;
|
||||
- des **frameworks mobiles** (le sujet cite **Flutter**) ;
|
||||
- l’**API 42**.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre IV — Instructions générales
|
||||
|
||||
- Le projet est évalué **uniquement par des humains** (soutenance).
|
||||
- Vous pouvez utiliser **n’importe quel langage mobile**, en gardant à l’esprit la **dernière version de l’IDE** disponible sur les machines de l’école.
|
||||
- Frameworks et bibliothèques compatibles autorisés si leur usage est **justifié** en soutenance — soyez pertinent.
|
||||
- Le projet doit utiliser la **dernière version disponible de l’API 42**.
|
||||
- Vos choix techniques peuvent vous rendre plus attractif sur le marché du travail.
|
||||
|
||||
### ⚠️ Sécurité — encadré page 5
|
||||
|
||||
> Pour des raisons de sécurité évidentes, identifiants, clés API, variables d’environnement, etc. doivent être stockés **localement** dans un fichier **`.env`** et **ignorés par git**. Des identifiants exposés publiquement entraînent **l’échec direct** du projet.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre V — Le projet
|
||||
|
||||
### V.1 Partie obligatoire
|
||||
|
||||
Pour valider la partie obligatoire, vous devez respecter **tous** les critères suivants :
|
||||
|
||||
| # | Critère (EN) | Exigence en français |
|
||||
|---|--------------|----------------------|
|
||||
| 1 | At least 2 views | Au moins **2 vues** (écrans) |
|
||||
| 2 | Handle all cases of errors | Gérer **tous** les cas d’erreur (login introuvable, erreur réseau, etc.) |
|
||||
| 3 | Second view shows login info | La **2ᵉ vue** affiche les infos du login **s’il existe** |
|
||||
| 4 | Four details + profile picture | Afficher **au moins 4 détails** parmi : login, email, mobile, level, location, wallet, evaluations, etc. **+ photo de profil** |
|
||||
| 5 | Skills with level and percentage | Afficher les **compétences (skills)** avec **niveau** et **pourcentage** |
|
||||
| 6 | Completed projects including failed | Afficher les **projets réalisés**, **y compris les échecs** |
|
||||
| 7 | Navigate back to first view | Permettre de **revenir à la 1ʳᵉ vue** |
|
||||
| 8 | Flexible / modern layout | Mise en page **flexible ou moderne** (contraintes, etc.) pour **plusieurs tailles d’écran** et plateformes |
|
||||
| 9 | Do not create a token for each query | **Ne pas créer un token à chaque requête** — réutiliser le flux OAuth2 |
|
||||
|
||||
### OAuth2 — encadrés page 6
|
||||
|
||||
> Se référer à la **documentation OAuth2**.
|
||||
|
||||
> Vous devez utiliser **OAuth2 de l’Intra**. Pour des raisons de **confidentialité** et conformément aux lois de certains pays, il peut être **nécessaire de ne pas afficher** certaines informations.
|
||||
|
||||
**Liens utiles (hors PDF, à consulter pendant le projet) :**
|
||||
|
||||
- [Documentation développeur API 42](https://api.intra.42.fr/apidoc)
|
||||
- [Applications OAuth sur l’Intra](https://profile.intra.42.fr/oauth/applications)
|
||||
|
||||
---
|
||||
|
||||
### V.2 Bonus
|
||||
|
||||
Bonus disponible :
|
||||
|
||||
| Bonus | Description |
|
||||
|-------|-------------|
|
||||
| Rafraîchissement du token | Recréer / **rafraîchir le token à l’expiration**. Si le token expire, l’app doit le renouveler et **continuer à fonctionner** dans tous les cas. |
|
||||
|
||||
### ⚠️ Règle bonus — encadré page 7
|
||||
|
||||
> La partie bonus n’est évaluée **que si la partie obligatoire est PARFAITE**. « Parfait » signifie : partie obligatoire **entièrement** réalisée et **sans dysfonctionnement**. Si **une seule** exigence obligatoire manque, le bonus **n’est pas évalué**.
|
||||
|
||||
---
|
||||
|
||||
## Chapitre VI — Rendu et évaluation par les pairs
|
||||
|
||||
Déposez le travail dans votre **dépôt Git** comme d’habitude. **Seul le contenu du dépôt** sera évalué en soutenance. Vérifiez les **noms de dossiers et de fichiers**.
|
||||
|
||||
→ Checklist pratique : [../../swiftyCompanion/README.md](../../swiftyCompanion/README.md)
|
||||
|
||||
---
|
||||
|
||||
## Éléments visuels du PDF
|
||||
|
||||
| Page PDF | Fichier extrait | Contenu visuel |
|
||||
|----------|-----------------|----------------|
|
||||
| 1 | [page-01-couverture.png](captures/page-01-couverture.png) | Page de garde complète |
|
||||
| 1 (détail) | [illustration-motif-42.png](captures/illustration-motif-42.png) | Illustration centrale seule |
|
||||
| 2–9 | *(pas d’image métier)* | Fond géométrique répété + texte des chapitres |
|
||||
|
||||
---
|
||||
|
||||
## Prochaine étape pédagogique
|
||||
|
||||
→ [Plan de réalisation pas à pas](../pedagogie/README.md)
|
||||
Reference in New Issue
Block a user