🎨 Introduction
🛠️ Technologies
🎯 Fonctionnalités
🚧 Mise à Jour
🚀 Installation
Piquante est une application web fullstack dédiée au partage de sauces piquantes.
Basée sur un backend Node.js / Express connecté à MongoDB, et un frontend Angular moderne et responsive.
Les utilisateurs peuvent s’inscrire, publier des sauces, voter (like/dislike), et gérer leurs propres créations via une API REST sécurisée.
📂 Pour plus de détails, consultez le dossier.
- Backend : Node.js, Express, Mongoose, bcrypt, JSON Web Token (JWT)
- Frontend : Angular, RxJS
- Base de données : MongoDB Atlas ou MongoDB Compass local
- Déploiement : Render (API), Vercel (UI)
- Image hosting : Cloudinary
- Authentification sécurisée (bcrypt + JWT)
- CRUD complet sur les sauces avec image
- Upload intelligent : local (dev) / Cloudinary (prod)
- Like / Dislike par utilisateur unique
- API REST sécurisée via JWT
- Interface Angular responsive
- Affichage des erreurs serveur côté client
- Hébergement d’images via Cloudinary (CDN, compression, nettoyage automatique)
- Détection automatique de l’environnement : dev ou prod
- Gestion des erreurs enrichie côté client & serveur
- Upload intelligent : local en développement, Cloudinary en production
- Refactor : structure
api/(backend) etpublic/(frontend) - Déploiement performant via Render (API) & Vercel (UI)
- Git — Système de gestion de versions
- Node.js — Exécuteur local de scripts JavaScript
- npm — Gestionnaire de paquets JavaScript
- MongoDB — Base de données NoSQL
- Google Chrome — Navigateur moderne
- Visual Studio Code — Éditeur de code
- Render — Déploiement de l’API en production
- Cloudinary — Hébergement et optimisation des images
- Vercel — Déploiement du frontend en production
git clone https://github.com/ValentinMadiot/piquante-sauces_api
cd piquante-sauces_apiRenommer .env.exemple en .env dans ./api
Ajoutez les variables d’environnement dans le fichier .env :
# IDENTIFIANT BASE DE DONNEES (MongoDB)
MONGODB_URI_DEV=mongodb://localhost:27017/piquante
# PASSWORD JWT (JSON Web Token)
JWT_TOKEN=secret_token
# ENVIRONNEMENT D'EXÉCUTION (dev = Stockage Local)
NODE_ENV=developmentAjoutez les variables d’environnement sur Render :
# IDENTIFIANT BASE DE DONNEES (MongoDB)
MONGODB_URI_PROD=mongodb+srv://<username>:<password>@cluster0.mongodb.net/myDatabase...
# PASSWORD JWT (JSON Web Token)
JWT_TOKEN=secret_token
# ENVIRONNEMENT D'EXÉCUTION (prod = Cloudinary)
NODE_ENV=production
# IDENTIFIANT CLOUDINARY
CLOUD_API_KEY=clef_api
CLOUD_API_SECRET=api_secrete
CLOUD_NAME=nom_du_stockageAjoutez les variables d’environnement sur Vercel :
# URL RENDER
API_URL=https://nom_projet.onrender.comcd api
npm install
npm startBackend disponible sur : http://localhost:8080
cd public
npm install
npm startFrontend disponible sur : http://localhost:4200