Mise à jour de 'README.md'

part3
Tony Fages 1 year ago
parent fefed2573d
commit 265c7e9075

@ -1,152 +1,34 @@
# Énoncé semaine 1
<h1 align="center">JokeAPP</h1>
- [Énoncé - Semaine 1](#énoncé-semaine-1)
- [Délai de livraison](#délai-de-livraison)
- [Travail demandé](#travail-demandé)
- [Package 1 : Modèle](#package-1--modèle--stub)
- [Package 2 : Extensions pour les tests en CLI](#package-2--types--extensions-)
- [Premier test : Affichage des stubs](#premier-tests---affichage-des-stubs)
- [Critères d'évaluation](#critères-dévaluation)
<p align="center">
<img src="https://img.shields.io/badge/.NET-5C2D91.svg?style=for-the-badge&logo=.net&logoColor=white" alt=".NET"/>
<img src="https://img.shields.io/badge/C%23-239120.svg?style=for-the-badge&logo=c-sharp&logoColor=white" alt="C#"/>
<img src="https://img.shields.io/badge/Entity_Framework-512BD4.svg?style=for-the-badge&logo=entity-framework&logoColor=white" alt="Entity Framework"/>
</p>
Durant cette première semaine, vous allez créer votre projet, le configurer pour la suite, écrire vos classes du modèle
et définir des données statiques dans un Stub que vous pourrez utiliser pour les prochains TP.
## Introduction
`JokeAPP` est un projet qui à pour but la découverte et la maitrise de `React-Native` à travers différentes parties abordant chacune différents principes.
# Délai de livraison
Votre travail est à rendre sur une branche tp1 et doit être fusionné à la branche principale lorsqu'il est terminé.
La livraison est attendue à la fin du TP.
Un retard jusqu'à la fin du second ou du troisième TP est autorisé mais se verra attribué des pénalités (
cf. [Critères d'évaluation](#critères-dévaluation)).
## Structure du Projet
Chaque partie du projet est associée à une branche distincte dans ce dépôt. Vous pouvez passer d'une partie à l'autre en changeant de branche. Une fois la partie finie elle se sera merge sur la branche master.
# Travail demandé
- [x] Partie 1 - `part1`
- Création projet, création classes Typescript, création Stub pour ce modèle
- [ ] Partie 2 - `part2`
- *
- [ ] Partie 3 - `part3`
- *
- [ ] Partie 4 - `part4`
- *
Durant la première semaine, il vous est demandé de :
## Installation et Configuration
1. Clonez le dépôt : `git clone https://codefirst.iut.uca.fr/git/tony.fages/Tp_ReactNative.git`
2. Ouvrez le fichier cloné avec l'IDE WebStrom.
3. Aller grâce à votre terminal sur le projet et taper la commande `npm install` afin d'installer toute les dépendances
4. Taper la commande `npx expo start` afin de demarer le serveur permettant l'affiche du projet
5. Pour l'affichage du projet une fois le serveur lancer appuyer sur `i` ou `a` pour démarer le simulateur `ios` ou `android` ou bien installer l'application <a href="https://expo.dev">expo</a> et scanner le qr code pour le lancer directement sur votre téléphone
* Créer le projet
* Créer les classes Typescript du modèle
* Créer un Stub pour ce modèle (que vous utiliserez dans le TP suivant)
## Développeur
## Package 1 : Modèle & Stub
Voici un diagramme de classes de ce qui est attendu pour votre modèle :
```mermaid
classDiagram
direction TB
class Joke {
<<abstract>>
+type : string
+setup : string
+punchline : string
+image: string
+summary() string
+description(): string
}
class SampleJoke {
+id: number
}
class CustomJoke {
+id: string
}
class JokeFactory {
+createCustomJokes(jsonArray: string)$ CustomJoke[]
+createSampleJokes(jsonArray: string)$ SampleJoke[]
}
Joke <|-- CustomJoke
Joke <|-- SampleJoke
```
En français, vous avez donc à préparer les classes suivantes :
- ```Joke``` : Classe abstraite qui représente les propriétés communes au blagues du catalogue et aux blagues que vous
allez créer par la suite. Elle contient également une méthode _summary_ qui renvoit uniquement les 25 premiers
caractères de la blague suivis par "..." .
Elle contient également une méthode _description_ qui doit renvoyer le type de la blague suivi par son résumé et le
tout séparé par un tiret (par exemple: "general - What did the fish say wh...").
- ```SampleJoke``` : Classe qui représente les blagues du catalogue (et qui hérite de ```AbstractJoke```)
- ```CustomJoke``` : Classe qui représente les blagues que vous allez créer par la suite (et qui hérite
de ```AbstractJoke```)
- ```JokeFactory``` : Une classe utilitaire qui vous permettra de convertir les données JSON que vous recevrez de l'API
vers vos classes Typescript.
Maintenant que notre modèle est prêt, nous allons pouvoir utiliser la classe _JokeFactory_ pour générer un stub de
_SampleJoke_ et un stub
de _CustomJoke_ dans un nouveau fichier que vous pouvez par exemple appeler _JokeStub.ts_.
## Package 2 : Types (Extensions)
Pour cette partie, vous allez devoir ajouter un comportement sur les tableaux Typescript afin de définir une
fonction d'affichage que vous aller utiliser pour avoir un aperçu des données de vos stubs depuis l'application.
Pour celà, vous devez vous appuyer sur la méthode _description_ de la partie précédente afin de n'avoir qu'un condensé
des
informations pour faciliter l'affichage.
## Premier tests - Affichage des stubs
Avec la méthode d'extension de la partie 2 de ce tp, vous allez devoir afficher sur la page d'accueil de votre
application
les données de vos deux stubs (Custom et Sample).
Le contenu de chaque stub devra être affiché avec une simple balise `<Text></Text>`
# Critères d'évaluation
Pour être obtenir les points, vous devez faire valider vos aquis par l'enseignant à l'oral pendant les TP (ou si
l'enseignant le propose, lors d'une évaluation écrite).
Cette validation doit avoir lieu avant la fin du TP pour obtenir tous les points.
Si la validation a lieu pendant le TP2, une pénalité de 50% est appliquée.
Si elle a lieu pendant le TP3, une pénalité de 75% est appliquée.
Par la suite, plus aucun point n'est attribué.
**Légende**
symbole | signification
--- | ---
☢️ | si ce critère n'est pas respecté => 0/20
🎬 | évalué à la fin du TP
1⃣ | ctirère de niveau 1 : tant que vous n'avez pas obtenu tous les points sur les critères de niveau 1, les points sur les critères suivants ne sont pas attribués
2⃣ | critère de niveau 2 : tant que vous n'avez pas obtenu tous les points sur les critères de niveau 1 et 2, les points sur les critères de niveau 3 ne sont pas attribués
3⃣ | critère de niveau 3
**Critères**
niveau | description | coeff | pénalités TP2 | pénalités TP3
--- | --- | --- | --- | ---
☢️ | Le dépôt doit être accessible par l'enseignant | ☢️
☢️ | un .gitignore doit exister au premier push | ☢️
🎬 | le projet compile et s'exécute | 4 | 50% | 75%
1⃣ | j'ai créé le projet en typescript | 2 | 50% | 75%
1⃣ | j'ai créé un *Package* *Model* | 2 | 50% | 75%
1⃣ | j'ai créé la classe ```Joke``` | 1 | 50% | 75%
1⃣ | j'ai créé la classe ```SampleJoke``` | 1 | 50% | 75%
1⃣ | j'ai créé la classe ```CustomJoke``` | 1 | 50% | 75%
1⃣ | mes classes sont bien des fichiers Typescript | 1 | 50% | 75%
1⃣ | ```Joke``` contient des getters publics | 1 | 50% | 75%
1⃣ | ```Joke``` possède une méthode qui renvoit les 25 premiers caractères de la blague | 1 | 50% | 75%
1⃣ | ```Joke``` possède un constructeur | 1 | 50% | 75%
2⃣ | ```Joke``` est accessible par les fichiers typescript | 1 | 50% | 75%
1⃣ | ```SampleJoke``` contient des getters publics | 1 | 50% | 75%
1⃣ | ```SampleJoke``` possède un constructeur | 1 | 50% | 75%
2⃣ | ```SampleJoke``` est accessible par les fichiers typescript | 1 | 50% | 75%
1⃣ | ```CustomJoke``` contient des getters publics | 1 | 50% | 75%
1⃣ | ```CustomJoke``` possède un constructeur | 1 | 50% | 75%
2⃣ | ```CustomJoke``` est accessible par les fichiers typescript | 1 | 50% | 75%
2⃣ | ```JokeFactory``` est accessible par les fichiers typescript | 1 | 50% | 75%
1⃣ | ```JokeFactory``` contient une méthode statique permettant de transformer un tableau de JSON au format _string_ en un tableau de _CustomJoke_ | 1 | 50% | 75%
1⃣ | ```JokeFactory``` contient une méthode statique permettant de transformer un tableau de JSON au format _string_ en un tableau de _SampleJoke_ | 1 | 50% | 75%
2⃣ | j'ai un stub pour les CustomJoke | 1 | 50% | 75%
2⃣ | j'ai un stub pour les CustomJoke qui utilise la factory | 2 | 50% | 75%
2⃣ | j'ai un stub pour les SampleJoke | 1 | 50% | 75%
2⃣ | j'ai un stub pour les SampleJoke qui utilise la factory | 2 | 50% | 75%
3⃣ | j'ai déclaré ma méthode d'extension | 2 | 50% | 75%
3⃣ | j'ai fait l'implémentation de ma méthode d'extension | 2 | 50% | 75%
3⃣ | j'ai correctement chargé mes extensions | 2 | 50% | 75%
2⃣ | j'ai affiché le contenu de mon _CustomStub_ | 1 | 50% | 75%
2⃣ | j'ai affiché le contenu de mon _SampleStub_ | 1 | 50% | 75%
2⃣ | je sais utiliser `let` | 2 | 50% | 75%
3⃣ | mon dépôt possède un readme qui apporte quelque chose... | 2 | 50% | 75%
3⃣ | mon code est documenté | 1 | 50% | 75%
<a href="https://codefirst.iut.uca.fr/git/tony.fages/Tp_ReactNative.git" style="margin-right: 20px">Tony Fages</a>

Loading…
Cancel
Save