Skip to content

AymenJeddou/JobJet

Repository files navigation

JobJet - Réseau Professionnel

Une plateforme de réseau social professionnel construite avec Node.js, Express et MongoDB.


Projet réalisé par

  • Aymen Jeddou
  • Abderrahim Neji
  • Mohamed Amine Trabelsi

Démarrage Rapide

Ce dont vous avez besoin

  • Node.js 14+
  • MongoDB 4.4+
  • npm 6+

Installation

# 1. Installer les dépendances
npm install

# 2. Remplir la base avec des données de test
npm run seed

# 3. Lancer le serveur
npm start

Commandes Terminal Requises

Exécutez dans l'ordre:

cd ProjetWeb

# Installer les dépendances
npm install

# Remplir la base de données avec les comptes de test
npm run seed

# Lancer le serveur
npm start

Ouvrez http://localhost:3000 dans votre navigateur.


Comptes de Test

Tous les comptes sont déjà créés avec photos, compétences, expériences et publications.

Email Mot de passe Rôle Détails
admin@jobjet.com Admin123! Admin Administrateur
abderrahim.neji@jobjet.com User123! Utilisateur Ingénieur Full Stack
mohamedamine.trabelsi@jobjet.com User123! Utilisateur Ingénieur Data
aymen.jeddou@jobjet.com User123! Utilisateur Ingénieur Logiciel
contact@ey.com Company123! Entreprise Cabinet de conseil
contact@vermeg.com Company123! Entreprise Entreprise technologique

Fonctionnalités

Pour les Utilisateurs

  • Profil – Ajoutez vos compétences, expériences, projets et générez votre CV en PDF
  • Fil d'actualité – Suivez des professionnels, réagissez aux publications, commentez
  • Offres d'emploi – Recherchez et filtrez les offres par type et localisation
  • Candidatures – Postulez avec une lettre de motivation et suivez vos candidatures
  • Messages – Discutez avec les entreprises et autres professionnels
  • Notifications – Recevez des alertes en temps réel

Pour les Entreprises

  • Publication d'offres – Créez et gérez vos annonces avec salaire et compétences requises
  • Gestion des candidats – Consultez et gérez les candidatures reçues
  • Profil entreprise – Présentez votre entreprise
  • Actualités – Publiez des nouvelles sur votre entreprise

Pour les Admins

  • Tableau de bord – Statistiques de la plateforme
  • Modération – Gérez les utilisateurs et le contenu
  • Configuration – Paramètres système

Structure du Projet

ProjetWeb/
├── config/              # Configuration base de données
├── models/              # Schémas Mongoose
│   ├── User.js         # Utilisateurs et entreprises
│   ├── Post.js         # Publications
│   ├── Job.js          # Offres d'emploi
│   ├── Message.js      # Messages
│   ├── Notification.js # Notifications
│   └── Application.js  # Candidatures
├── controllers/         # Logique métier
├── routes/              # Points d'entrée API
├── middlewares/         # Authentification
├── views/               # Pages EJS
├── public/
│   ├── css/            # Styles
│   └── js/             # Scripts frontend
├── uploads/            # Fichiers utilisateurs
├── seed.js             # Données de test
└── server.js           # Point d'entrée

Technologies

Couche Technologies
Backend Node.js, Express
Base de données MongoDB, Mongoose
Authentification JWT, bcryptjs
Upload Multer
PDF PDFKit
Frontend HTML5, Bootstrap 5, jQuery

API Endpoints

Authentification

Méthode Endpoint Description Auth
POST /api/auth/register Inscription
POST /api/auth/login Connexion
GET /api/auth/me Profil actuel Requis

Utilisateurs

Méthode Endpoint Description Auth
GET /api/users/:id Voir profil Requis
PUT /api/users/:id Modifier profil Requis
POST /api/users/:id/follow Suivre/Ne plus suivre Requis
POST /api/users/skills Ajouter compétence Requis
POST /api/users/experiences Ajouter expérience Requis
GET /api/users/:id/cv Télécharger CV Requis

Publications

Méthode Endpoint Description Auth
GET /api/posts/feed Fil d'actualité Requis
POST /api/posts Créer publication Requis
DELETE /api/posts/:id Supprimer Requis
POST /api/posts/:id/react Réagir Requis
POST /api/posts/:id/comment Commenter Requis

Emplois

Méthode Endpoint Description Auth
GET /api/jobs Liste des offres Requis
POST /api/jobs Créer offre Requis (entreprise)
POST /api/jobs/:id/apply Postuler Requis (utilisateur)
GET /api/jobs/applications Candidatures reçues Requis (entreprise)

Messages

Méthode Endpoint Description Auth
GET /api/messages/conversations Conversations Requis
POST /api/messages/:recipientId Envoyer message Requis
GET /api/messages/:conversationId Historique Requis

Notifications

Méthode Endpoint Description Auth
GET /api/notifications Notifications Requis
GET /api/notifications/unread/count Non lues Requis
PUT /api/notifications/:id/read Marquer lue Requis

Admin

Méthode Endpoint Description Auth
GET /api/admin/stats Statistiques Requis (admin)
PUT /api/admin/users/:id/ban Bannir Requis (admin)

Sécurité

  • Mots de passe: Hashés avec bcryptjs
  • Authentification: JWT avec tokens
  • Autorisation: Rôles (utilisateur, entreprise, admin)
  • Validation: Tous les endpoints validés
  • Fichiers: Limites de taille et type MIME

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors