From 265c7e90757b81f3c5139d08ee380da9ea8c8f78 Mon Sep 17 00:00:00 2001 From: Tony Fages Date: Tue, 30 Jan 2024 18:11:43 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 170 +++++++++--------------------------------------------- 1 file changed, 26 insertions(+), 144 deletions(-) diff --git a/README.md b/README.md index 6068cf5..0ef5ef2 100644 --- a/README.md +++ b/README.md @@ -1,152 +1,34 @@ -# Énoncé semaine 1 +

JokeAPP

-- [É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) +

+ .NET + C# + Entity Framework +

-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 expo 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 { - <> - +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 `` - -# 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% + Tony Fages