Cahier de charges
I. Diagramme de classes :
II. Description des tâches :
But Authentification
Acteur Utilisateur
Pré-condition L'utilisateur doit avoir un compte.
Post-condition L'utilisateur est authentifié.
Scénario nominal - L’utilisateur entre son login et mot de passe et il en
valide en cliquant sur le bouton LOGIN.
- Le serveur vérifie l’existence du compte dans la base
de données.
- Le serveur génère le Token et il l’envoie à
l’application.
- L’application renvoie l’utilisateur à la page d’accueil
Exceptions Le compte n’existe pas ou le mot de passe est incorrect.
But Gérer les offres.
Acteur Entreprise
Pré-condition L’entreprise est authentifiée.
Post-condition Offre ajoutée, Offre modifiée, Offre supprimée, Offre
affichée.
Scénario nominal - L’entreprise remplit les champs du formulaire
- Ajouter Offre contenant les informations nécessaires d’une
offre, et il en valide en cliquant sur le bouton
enregistrer.
- Le serveur enregistre la nouvelle offre dans la
base de données.
Scénario alternatif A1 - L’entreprise choisit l’offre a modifié et remplit
- Modifier Offre les champs du formulaire, et il en valide en
cliquant sur le bouton enregistrer.
- Le serveur enregistre les modifications de l’offre
dans la base de données.
Scénario alternatif A2 - L’entreprise choisit l’offre a supprimée, et il la
- Supprimer valide en cliquant sur le bouton enregistrer.
Offre - Le serveur enregistre les modifications de l’offre
dans la base de données.
Scénario alternatif A3 - Le serveur renvoie toutes les informations d’une
- Consulter Offre offre.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Consulter la liste des étudiants avec filtrage.
Acteur Utilisateur.
Pré-condition L'utilisateur est authentifié.
Post-condition Étudiants affichés.
Scénario nominal - L’utilisateur cherche les étudiants avec filtrage.
- Le serveur renvoie la liste des étudiants.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Consulter la liste des entreprises avec filtrage.
Acteur Utilisateur
Pré-condition L'utilisateur est authentifié.
Post-condition Entreprises affichées.
Scénario nominal - L’utilisateur cherche les entreprises avec filtrage.
- Le serveur renvoie la liste des entreprises.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Consulter la liste des offres avec filtrage.
Acteur Utilisateur.
Pré-condition L'utilisateur est authentifié.
Post-condition Offres affichées.
Scénario nominal - L’utilisateur cherche les offres avec filtrage.
- Le serveur renvoie la liste des offres.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Modifier les données d’un étudiant.
Acteur Etudiant.
Pré-condition L'étudiant est authentifié.
Post-condition Données modifiées.
Scénario nominal - L'étudiant remplit les champs de données à
modifiées.
- Le serveur sauvegarde les modifications dans la base
de données.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Supprimer un étudiant.
Acteur Etudiant.
Pré-condition L'étudiant est authentifié.
Post-condition Étudiant supprimé.
Scénario nominal - L'étudiant confirme la suppression de son profil.
- Le serveur supprime les données de l'étudiant de la
base de données.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Modifier les données d’une entreprise.
Acteur Entreprise.
Pré-condition L’entreprise est authentifiée.
Post-condition Données modifiées.
Scénario nominal - L’entreprise remplit les champs de données à
modifiées.
- Le serveur sauvegarde les modifications dans la base
de données.
Exceptions Le serveur renvoie l’erreur s’il existe.
But Supprimer une entreprise.
Acteur Entreprise.
Pré-condition L’entreprise est authentifiée.
Post-condition Entreprise supprimée.
Scénario nominal - L’entreprise confirme la suppression de son profil.
- Le serveur supprime les données de l’entreprise de
la base de données.
Exceptions Le serveur renvoie l’erreur s’il existe.
III. Description des méthodes http (services web) :
URI Méthode Attributs Description
HTTP
student/signup POST { Inscrire un étudiant.
firstname: ” ”
lastname: ” ”
email: ” ”
password: ” ”
country: ” ”
city: ” ”
address: ” ”
phone: ” ”
type: ” ”
workAt: ” ”
class: ” ”
linkedin: ” ”
picture: ” ”
aboutme: ” ”
}
student/login POST { Identifier un étudiant.
email: ” ”
password: ” ”
}
student/confirm/:co GET Confirmer l’Email.
de
student/all GET Lister les informations de tous les
étudiants.
student/location GET property: Lister les coordonnées géographiques
?property=&key= key: des étudiants dont “property” = “key”.
student/search GET property: Lister les informations des étudiants
?property=&key= key: dont “property” = “key”.
student/find?q= GET q: Trouver l'étudiant dont le nom est “q”.
student/:userid GET Afficher les informations de l’étudiant
dont l’id est “userid”.
student:/userid PATCH { Modifier les informations de l’étudiant
country: ” ” dont l’id est “userid”.
city: ” ”
address: ” ”
phone: ” ”
type: ” ”
workAt: ” ”
class: ” ”
linkedin: ” ”
picture: ” ”
aboutme: ” ”
}
student/:userid DELETE Supprimer l’étudiant dont l’id est
“userid”.
URI Méthod Attributs Description
e HTTP
company/signup POST { Inscrire une entreprise.
name: “ “
email: “ “
password: “ “
website: “ “
address: “ “
city: “ “
country: “ “
phone: “ “
about: “ “
logo: “ “
}
company/login POST { Identifier une entreprise.
email: ” ”
password: ” ”
}
company/confirm/:code GET Confirmer l’Email.
company/location GET property: Lister les coordonnées géographiques
?property=&key= key: des entreprises dont “property” = “key”.
company/search GET property: Lister les informations des entreprises
?property=&key= key: dont “property” = “key”.
company/find?q= GET q: Trouver l’entreprise dont le nom est “q”.
company/:id/offers GET Trouver tous les offres de l’entreprise
dont l’id est “id”
company/:companyid GET Afficher les informations de l’entreprise
dont l’id est “companyid”.
company/:companyid PATCH { Modifier les informations de l’entreprise
name: “ “ dont l’id est “companyid”.
email: “ “
password: “ “
website: “ “
address: “ “
city: “ “
country: “ “
phone: “ “
about: “ “
logo: “ “
}
company/:companyid DELETE Supprimer l’entreprise dont l’id est
“companyid”.
URI Méthode Attributs Description
HTTP
offers/ POST { Ajouter une offre à l'entreprise identifiée.
title: “ “
type: “ “
duration: “ “
content: “ “
}
offers/ GET Lister toutes les offres.
offers/search/ GET property: Lister les informations des offres dont
?property=&key= key: “property” = “key”.
offers/:offerid GET Afficher les informations de l’offre dont
l’id est “offerid”.
offers/:offerid PATCH { Modifier les informations de l’offre dont
title: “ “ l’id est “offerid”.
type: “ “
duration: “ “
content: “ “
}
offers/:offerid DELETE Supprimer l’offre dont l’id est “offerid”.
IV. Structure de l’application :
├───config
├───controllers
├───emails
│ └───confirmation
├───middlewares
├───models
└───routes
/models : Dans ce dossier, sont stockés tous les modules de base de
données.
/controllers : Dans ce dossier, sont stockés tous les contrôleurs utilisés
pour traiter les données.
/routes : Dans ce dossier, sont stockées toutes les routes des
requêtes.
/emails : Dans ce dossier, sont stockés tous les templates PUG des
emails de confirmations.
/middlewares : Dans ce dossier, sont stockés tous les middlewares
Express. Le but d'un middleware est d'extraire un code de contrôleur
commun .
/config : Dans ce dossier, sont stockés tous le code utilitaire, qui est
utilisé sur plusieurs modèles, middlewares ou contrôleurs.