--- title: Evaluation Javascript, NodeJS et Asynchrone tags: evaluation, frontend, event robots: noindex, nofollow author: Julien Noyer --- # Evaluation Javascript, NodeJS et Asynchrone *ECV Digital Paris M2 Dev. 2020-2021* <br> ![](https://i.imgur.com/ijqqy3t.png) *All rights reserved for educational purposes only © 2021-2022 [Julien Noyer](https://www.linkedin.com/in/julien-n-21219b28/)* --- Dans le cadre de votre cursus de formation, vous avez étudié différentes notions en **développement NodeJS** et sur les principes à mettre en place dans le cadre de la mise en place d'une **API** et d'un **backoffice**. L'évaluation que vous avez à réaliser va vous permettre de mettre en pratique ces différentes notions en partant d'un code de départ réaliser en cours pour y ajouter certaines fonctionnalités qui vont être définies ci-dessous. <br> ## Ressources du projet - **Boilerplate NodeJS** https://github.com/DWS-paris/STARTER-node-api-back - **Boilerplate VueJS** https://github.com/DWS-paris/STARTER-vue-node - **Support NodeJS** https://hackmd.io/_R9OX9G8QP2HxhvrbXoXeg - **Support Application native, hybride et web** https://hackmd.io/3ZjnKxprQl-AnHAlfbqR1A - **Support Déploiement serveur** https://hackmd.io/Qud4rN4qQf-QV-3H3wN6dQ --- <br><br><br><br><br><br> # Gestion des données en NoSQL *Gestion asynchrone côtés serveur* ![](https://i.imgur.com/VlooBd3.png) Le code de départ prend en exemple la gestion d'article pour des utilisateurs-trices connecté-e-s, vous devez ajouter la gestion complète des **commentaires et des likes**. Le but de cet exercice est de vous faire manipuler les fonctionnalités relatives à la gestion des données en NoSQL, et l'organisation de ces fonctions via un contrôleur. Une fois que vous avez mis en place les fonctionnalités côtés serveur, vous devez **intégrer la gestion de commentaires et des likes dans le backoffice**. Le but de cet exercice est de vous faire manipuler les données côtés client en les gérant de manière asynchrone. <br> ## Travail à réaliser : - [ ] Créer un model `comment` et un model `like` - [ ] Créer les contrôleurs nécessaires à la gestion des deux modèles [CRUD] - [ ] Joindre les informations des `comment` et des `like` aux requêtes pour les `user` - [ ] Joindre les informations des `comment` et des `like` aux requêtes pour les `post` - [ ] Pouvoir ajouter/supprimer un commentaire à un article - [ ] Pouvoir like/unlike un article ou un commentaire - [ ] Voir la liste des commentaires d'un article - [ ] Voir le nombre de likes d'un article - [ ] Visualiser tous les artciles avec tous les commantaires et les likes --- <br><br><br><br><br><br> # Application Front End *Gestion asynchrone côtés client* ![](https://i.imgur.com/W2eqlb9.png) La finalité du projet d'API est de fournir des routes fournissant des flux JSON à une application client, ce modèle est actuellement le plus utiliser dans le cadre de la mise en place d'application Web. Un code de départ à été réalisé en cours avec le framework VueJS, de manière succincte, pour présenter la gestion du paterne Flux en action. Pour pouvoir démontrer **une bonne compréhention des logiques de traitement de l'information en asynchrone**, il faut a la fois présenter un travail côté client et côtés serveur. La partie serveur qui vous est demandée comprend le développement en **NodeJS** et la gestion des **données en NoSQL**, ce qui vous est demandé côtés client et de présenter un projet développé sur le principe de "*Single Page Application*". Pour répondre à cet exercice vous avez le choix dans votre projet à restitué, **soit une application connectée à l'API**, **soit votre application dite de "Spécialisation"**. Il semble que le choix de développer une application connectée à l'API est la solution la plus propice à démontrer vos compétences, mais aux regards du travail que vous avez à réaliser, la possibilité vous est offerte d'utiliser un de vos projets pour valider cet exercice. Si vous développez une **application connectée à l'API**, vous devez y **intégrer les mêmes vue et les mêmes fonctionnalités que celles développées pour le backoffice**. Cet exercice peut être réalisé avec ou sans framework et dans la technologie que vous souhaitez. Si vous préférez présenter votre **application dite de "Spécialisation"**, vous devez vous assurer qu'elle **intègre un CRUD complet et qu'elle soit développée en suivant le principe d'une *Single Page Application***. Il est important que votre application gère de façon dynamique le DOM pour que la gestion des données en asynchrone côté client soit présentée de façon probante. --- <br><br><br> # Méthode de restitution *Contraintes à respecter pour la validation de l'exercice* ![](https://i.imgur.com/WAKxfgO.png) Dans la mesure ou une partie de l'exercice qui vous est demandé, intègre un travail en cours, le **délai** qui vous est laissé pour la réalisation de cet exercice est **volontairement long**. Ce pourquoi il vous est demandé de scrupuleusement **respecter la date de restitution** au risque de ne pas être corrigé. Vous avez en revanche la possibilité de restituer plus tôt votre travail, ce qui vous vaudra un remerciement chaleureux de votre correcteur. - **Date de restitution maximale** : 23 avril 2021 - **Formualire de restitution** : https://forms.gle/rvcLpufUeNZxkFKg6