Création d'une application pour la gestion des projets des employés d'une société.
> Supposons que vous
travaillez pour une entreprise de développement de logiciels et que vous devez créer une application
pour gérer les projets.
1. Créez un nouveau projet service-projets [Link] 2pts ?
mkdir service-projets
cd service-projets
npm init -y
2. Installez les dépendances nécessaires 2pts
npm install express mongoose
3. Créez un fichier [Link] pour votre serveur Express 3pts
-[Link]
const express = require('express');
const app = express();
[Link](4000,()=>[Link](`Serveur en lancer sur le port4000));
4. Model: 4pts
-[Link]
const {model,Schema}=require('mongoose');
const ProjetSchema = Schema({
nomProjet: String,
type: String,
statut: String,
employes:[String],
});
const Projet = model('Projet', ProjetSchema);
[Link] = Projet;
5. Créez le Controller: 10pts
-[Link] :
Getprojets(),Ajouterprojets().Rechercherprojets(), Modifierprojets().Supprimerprojets()
const Projet = require('./models/projet');
[Link]=async(req, res)=> {
const projets = await [Link]();
[Link](projets);
}
[Link]=async(req, res) =>{
const projet = new Projet([Link]);
await [Link]();
[Link](projet);
}
[Link]=async(req, res)=> {
const { nomProjet } = [Link];
const projet = await [Link]({ nomProjet });
if (projet) {
[Link](projet);
}
else {
[Link](404).json({ error: 'Projet non trouvé' });
}
}
[Link]=async(req, res)=> {
const { nomProjet } = [Link];
const { type, statut } = [Link];
const projet = await [Link]({nomProjet},{$set:{type,statut}});
if (projet) {
[Link](projet);
}
else {
[Link](404).json({ error: 'Projet non trouvé' });
}
}
[Link]=async(req, res)=> {
const { nomProjet } = [Link];
await [Link]({ nomProjet });
[Link]({ message: 'Projet supprimé avec succès' });
}
6. Créez les routes nécessaires pour l'application 4pts
-[Link]
const express = require('express');
const app = express();
require('./Database/db');
const
{getProjets,ajouterProjet,rechercherProjet,modifierProjet,supprimerProjet}=
require('./controllers/projetController');
[Link]([Link]());
[Link](4000,()=>[Link](`Serveur en lancer sur le port 4000));
[Link]('/projets',getProjets);
[Link]('/projets',ajouterProjet);
[Link]('/projets/:nomProjet',rechercherProjet);
[Link]('/projets/:nomProjet',modifierProjet);
[Link]('/projets/:nomProjet',supprimerProjet);
7. En utilisant RABBITMQ créé une fonction AffecterProjets qui permet d'ajouter les employés Envoyé par
le service-employés au projet créer. Spts
Hada Ma3adnach Ma3adna lach nsa7oh idrissi galt 7ta f EFF makaynch
8. Créer un fichier DOCKERFILE pour créer image sous docker. Spts
-Dockerfile :
FROM node:latest
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "node","[Link]"]
9. Créer un fichier Dockercompose qui contient la configuration des deux services app et [Link]
-[Link] :
-Method 1
version: '3.9'
services:
mongodb:
container_name: mongodb
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
app:
build:
dockerfile: .app/Dockerfile
container_name: app
ports:
- "4000:4000"
volumes:
- /app/node_modules
depends_on:
- mongodb
-Method 2
version: '3.9'
services:
mongodb:
container_name: mongodbb
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
app:
build: ./app-servi
container_name: app
ports:
- "4000:4000"
volumes:
- /app/node_modules
depends_on:
- mongodb