Skip to content

Ce projet a été développé dans le cadre de l'UV SR10 à l'UTC en P23. Le but de ce projet est de créer une plateforme de recrutement afin d'appréhender le développement Web en respectant le modèle MVC, Le projet est écrit en JS sous express.

Notifications You must be signed in to change notification settings

mrrfr/UTOPIA_WORK

Repository files navigation

SR10-P23 / Projet - Plateforme de Recrutement / UT'OPIA - WORK

Le Projet Plateforme de Recrutemen est un projet développé dans le cadre de l'UV SR10 à l'UTC en P23. Ce projet a été supervisé par :
AKHERAZ Mohamed

Par DOUDECH Taïeb Rayen dans le cadre de l'UV SR10 en P23

Le projet n'est pas maintenu !! Néanmoins, les PRs sont la bienvenue et seront étudiées !

Qu'est ce que UT'OPIA - WORK ?

Le but de ce projet est de créer une plateforme de recrutement afin d'appréhender le développement Web en respectant le modèle MVC, Le projet est écrit en :
  • Backend : en JS sous express (Node.js).
  • Frontend : HTML + JS + CSS + Utilisation du Framework Bootstrap

Modélisation du projet

Diagramme de cas d'utilisation

Wireframe

Le diagramme de cas d'utilisation se trouve dans res/diag-cas-utilisation.pdf

Modélisation UML du Projet

MPD + MCD INITIAL

MPD + MCD FINALE

Les changements dans le MPD et Pourquoi avoir fait ces modifications ?

Quels ont été les changements dans le MPD ?

  • La table `postes` n'existe plus à la place tout est centralisé dans offres
  • La table `user_credentials` n'existe plus à la place tout est centralisé dans utilisateurs

Les changements ont été effectués afin de rendre le projet plus modulaire et plus facile à maintenir. Je me suis rendu compte au fil du développement du projet que le projet ne nécessitait pas autant de tables que prévu initialement. Ainsi pour faciliter le développement j'ai fait le choix de diminuer le nombre de tables et conséquemment le nombre de requêtes SQL à effectuer.

Librairie et Framework utilisés

Framework et libs Frontend

  • EJS
  • JQuery
  • JQuery Datatables - Pour les tables et les filtres
  • Sweetalert 2 - Pour les popups

Framework et libs Backend

  • NodeJS
  • Crypto - Hachage de mot de passe
  • Axios pour quelques requêtes
  • Passport - Authentification
  • Passport-local - Authentification
  • Express-session - Gestion de session
  • Express-mysql-session - Gestion du stockage de session en SQL
  • MySQL2 - Database
  • Express-FileUpload - Envoi de fichier

Quelques utilitaires utilisés :

  • body-parser
  • bootstrap
  • cookie-parser
  • jest - Tests
  • Supertests - Tests
  • uuid - Génération de UUID
  • nodemon - Pour le développement, ne pas devoir relancer l'application constamment
  • Lottie.json publiques files pour les annimations
  • Template public bootstrap pour la sidebar

Rapport sur les tests :

Le rapport se trouvent dans test.md

Rapport sur la sécurité :

Le rapport se trouvent dans securite.md

Installation du projet

Prérequis

  • NodeJS

Installation

1. Cloner le projet

git clone https://gitlab.utc.fr/tdoudech/sr10_p23_doudech

2. Installer les dépendances

npm install

3. Créer la base de données

Importer les seeds scripts disponible dans le dossier seeds dans le dossier res dans votre base de données.

ATTENTION : Les seeds scripts doivent être importés dans l'ordre suivant :

organisations_types > groups > positions_types > etat_offre > utilisateurs > organisations > offres > users_organisation > candidature_docs > candidature

Les seeds scripts contiennent déjà des données pour faciliter les tests, il est donc inutile de les importer plusieurs fois.

Plusieurs comptes sont déjà crées via les seeds scripts, tous les mots de passe sont password et sont pré-remplis dans le formulaire de connexion les comptes sont :

Modifier le fichier de configuration

Modifier le fichier pour insérer la configuration de votre BDD : models/database/db.js

Il suffit de modifier la partie suivante en insérant vos creds :

const pool = mysql.createConnection({
    host: "",
    user: "SR10",
    password: "",
    database: "",
    port: 3306,
});

Créer les creds pour le SQL Cookie Store dans le fichier app.js, pour ce faire il suffit de mettre les creds SQL à la ligne 39.

store: new MySQLStore({
    host:'',
    port:3306,
    user:'',
    password:'',
    database:'session_cookie'
  }),

Optionnel : Ajouter votre propre clef Maps.

Nous utilisons l'API de Google Maps afin de géolocaliser les entreprises en fonction des coordonnées GPS. Pour activer cette feature, vous pourrez ajouter votre propre clef dans le fichier suivant :

  • models/offre.js à la ligne 305 à la place de PUT_YOUR_OWN_MAPS_KEY_HERE
  • models/organisation.js à la ligne 308 à la place de PUT_YOUR_OWN_MAPS_KEY_HERE

Il faut aussi effectuer cette manipulation dans le fichier suivant :

  • views/public/candidature.ejs à la ligne 110 à la place de PUT_YOUR_OWN_MAPS_KEY_HERE
  • views/organisation/offers-creation.ejs aux lignes 90 et 209 à la place de PUT_YOUR_OWN_MAPS_KEY_HERE

Toutes les clefs Google Maps utilisé durant ce projet ont été supprimés, il est donc nécessaire d'ajouter votre propre clef pour pouvoir utiliser cette feature.

Vous pouvez créer une clef maps en suivant ce lien : Use API Keys - Maps JS API

4. Lancer le projet

cd 0.1\ -\ PLATEFORME_RECRUTEMENT/
npm start

Bonne utilisation et bon dév :)

About

Ce projet a été développé dans le cadre de l'UV SR10 à l'UTC en P23. Le but de ce projet est de créer une plateforme de recrutement afin d'appréhender le développement Web en respectant le modèle MVC, Le projet est écrit en JS sous express.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published