JobJet - Réseau Professionnel
Une plateforme de réseau social professionnel construite avec Node.js , Express et MongoDB .
Aymen Jeddou
Abderrahim Neji
Mohamed Amine Trabelsi
Node.js 14+
MongoDB 4.4+
npm 6+
# 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.
Tous les comptes sont déjà créés avec photos, compétences, expériences et publications.
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
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
Tableau de bord – Statistiques de la plateforme
Modération – Gérez les utilisateurs et le contenu
Configuration – Paramètres système
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
Couche
Technologies
Backend
Node.js, Express
Base de données
MongoDB, Mongoose
Authentification
JWT, bcryptjs
Upload
Multer
PDF
PDFKit
Frontend
HTML5, Bootstrap 5, jQuery
Méthode
Endpoint
Description
Auth
POST
/api/auth/register
Inscription
—
POST
/api/auth/login
Connexion
—
GET
/api/auth/me
Profil actuel
Requis
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
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
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)
Méthode
Endpoint
Description
Auth
GET
/api/messages/conversations
Conversations
Requis
POST
/api/messages/:recipientId
Envoyer message
Requis
GET
/api/messages/:conversationId
Historique
Requis
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
Méthode
Endpoint
Description
Auth
GET
/api/admin/stats
Statistiques
Requis (admin)
PUT
/api/admin/users/:id/ban
Bannir
Requis (admin)
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