---
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>

*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*

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*

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*

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