Backend REST d'une API reseau social. TP Efrei, stack Node.js + Express + MongoDB avec securite et validation.
flowchart TB
CLIENT["Client HTTP<br/>fetch - Postman"]
ENTRY["index.mjs<br/>entry point - bootstrap"]
SERVER["server.mjs<br/>Express - helmet - cors - rate-limit"]
ROUTES["routes.mjs<br/>enregistrement des routes"]
CTRL["controllers/<br/>users - groups - events - albums - polls"]
VALID["validators.mjs<br/>express-validator"]
MODELS["models/<br/>Mongoose - user - event - poll - ticket"]
MONGO["MongoDB<br/>via Mongoose 7"]
CLIENT --> ENTRY
ENTRY --> SERVER
SERVER --> ROUTES
ROUTES --> CTRL
CTRL --> VALID
CTRL --> MODELS
MODELS --> MONGO
- Node.js 20 (ES modules)
- Express 4 + body-parser + compression
- MongoDB via Mongoose 7
- Securite - helmet + cors + express-rate-limit + express-validator
- dotenv pour la configuration
- Deploiement - Render (voir
render.yaml)
api/- source de l'API Expressindex.mjs- entry pointsrc/- routes, controllers, models, middlewarespublic/- assets statiquesdocs/- documentation API
render.yaml- config deploiement Render (plan free)
git clone https://github.com/Adam-Blf/TP-Social-Media
cd TP-Social-Media/api
npm install
cp .env.example .env # puis renseigner MONGO_URI
npm run dev # lint + dev
npm run prod # productionPOST /auth/register- creation comptePOST /auth/login- authentificationGET /posts- liste des postsPOST /posts- creation post- Validation via express-validator, rate-limiting actif
MIT
Par Adam Beloucif - Data Engineer & Fullstack Developer - GitHub - LinkedIn