O'Last est une API RESTful développée avec Node.js et Express, destinée à connecter les joueurs en ligne à travers un système de gestion d’annonces et de profils de jeu. Ce dépôt contient le code back-end de l'application, construit pour fournir une API sécurisée et performante, avec une base de données relationnelle gérée sous PostgreSQL.
- Gestion des utilisateurs : CRUD complet pour les utilisateurs et profils, avec vérification par email unique et stockage sécurisé des mots de passe (bcrypt).
- Gestion des annonces : Création, lecture, mise à jour et suppression d’annonces de jeu, avec des filtres par critères (jeux, âge, plateforme, etc.).
- Système de notation : Les utilisateurs peuvent noter et laisser des avis sur leurs partenaires de jeu pour renforcer la fiabilité de la communauté.
- Recherche et filtrage avancés : Filtrage des annonces par âge, type de jeu, et autres critères pour faciliter les recherches.
- JWT et Cookies : Authentification sécurisée des utilisateurs via JSON Web Tokens (JWT) et cookies pour le maintien de sessions.
- Validation des données : Utilisation de Joi pour garantir que toutes les entrées utilisateur sont valides, sécurisées et conformes aux exigences.
- CORS : Paramétrage des en-têtes CORS pour sécuriser les appels API depuis le front-end.
Une architecture a été mises en place afin de faciliter la gestion et la maintenance du projet :
controllers : Contient la logique métier de l'application models : gère les requêtes SQL vers la base de données middlewares : gère les différentes vérifications concernant la sécurité de l'application routes : Définit les routes et points de terminaison de l'API
La base de données relationnelle est structurée en entités principales, notamment User
, Profile
, Game
, Post
, et Rate
. Chaque entité a des relations et des contraintes spécifiques pour garantir l’intégrité et la cohérence des données.
- Migration : Sqitch est utilisé pour versionner et gérer les migrations de la base de données, assurant ainsi une transition structurée entre les versions.
Pour exécuter le projet en local avec Docker :
# Cloner le dépôt
git clone https://github.com/ton-compte/olast-backend.git
# Lancer les conteneurs avec Docker Compose
docker-compose up
# Accéder à l'application
npm start