Releases: Xoriax/api_msn_tp
Release list
API MSN Events v1.5.0 Release Notes
Permissions and Access Improvements
New Features
Extended Permissions System
- Album access: Creators, event organizers, and group administrators can now access and manage albums
- Photo management: Extended access to photo authors, album creators, organizers, and group administrators
- Poll voting: Poll creators, organizers, and group administrators can now vote on their own polls
- Ticket purchasing: Event organizers and group administrators can purchase tickets for their events
Enhanced Group Management
- New endpoint: POST /groups/:id/promote/:userId to promote members to administrators
- Flexible group leaving: Administrators can leave groups after promoting other administrators
- Smart validation: Protection against removing the last administrator
Technical Improvements
Authentication Middleware Updates
- Multi-parameter support: Middlewares now handle id, groupId, and eventId parameters
- Hierarchical permissions: Organizers and administrators automatically inherit participant/member rights
- Debug logging: Added detailed logs for permission troubleshooting
Controller Updates
- Albums: Added GroupModel support for extended access permissions
- Photos: Updated checkPhotoAccess middleware with 4 parameters (added GroupModel)
- Polls: Inclusive voting logic for creators and administrators
- Tickets: Purchase authorization for organizers and group administrators
Architecture Enhancements
- GroupSchema imports added to all necessary controllers
- Updated constructors with this.GroupModel
- Populated groupId relations in event queries
- Full ESLint compliance (100 character limit, consistent indentation)
Documentation
Updated README
- Simplified API documentation with Postman collection link
- Removed detailed endpoint listings in favor of Postman collection
- Focus on architecture and concepts
Improved Error Messages
- More descriptive permission error messages
- Clear indication of authorized roles for each action
- Consistent HTTP status codes
Migration and Compatibility
This version is fully backward compatible. Existing endpoints continue to work normally with extended permissions for improved user experience.
Technical Details
Files Modified:
- src/controllers/albums.controller.mjs
- src/controllers/photos.controller.mjs
- src/controllers/polls.controller.mjs
- src/controllers/tickets.controller.mjs
- src/controllers/groups.controller.mjs
- src/controllers/discussions.controller.mjs
- src/middleware/auth.mjs
- README.md
Key Changes:
- Enhanced middleware functions for better parameter handling
- Extended permission checks to include creators and administrators
- Improved group management with promotion capabilities
- Streamlined documentation approach
This release significantly improves user experience by allowing creators, organizers, and administrators to naturally interact with their own content while maintaining API security.
v1.4.0 - Système d'Autorisation Complet
Release v1.4.0 - Système d'Autorisation Complet
Nouvelle Fonctionnalité Majeure : Architecture de Sécurité Complète
Cette version introduit un système d'autorisation granulaire complet couvrant tous les modules de l'API avec plus de 15 middleware d'autorisation spécialisés.
Améliorations Principales
Middleware d'Autorisation Avancé (middleware/auth.mjs)
- checkEventParticipant : Vérification de participation aux événements
- checkEventOrganizer : Contrôle des permissions organisateur
- checkEventCreator : Validation des droits de création d'événement
- checkGroupMember : Vérification d'appartenance aux groupes
- checkGroupAdmin : Contrôle des permissions administrateur
- checkGroupCreator : Validation des droits de création de groupe
- checkDiscussionAccess : Accès sécurisé aux discussions
- checkPollCreator : Contrôle de création des sondages
- checkPollResultsAccess : Accès conditionnel aux résultats
- checkPollDeleteAccess : Suppression sécurisée des sondages
- checkAlbumAccess : Accès aux albums avec permissions
- checkAlbumManageAccess : Gestion avancée des albums
- checkPhotoAccess : Contrôle d'accès aux photos
- checkPhotoUploader : Validation des téléchargements
- checkTicketOwner : Vérification de propriété des billets
- checkTicketTypeManageAccess : Gestion des types de billets
Sécurisation Complète des Contrôleurs
- tickets.controller.mjs : Autorisation complète pour la billetterie
- polls.controller.mjs : Sécurisation des sondages et votes
- photos.controller.mjs : Protection des uploads et modifications
- albums.controller.mjs : Contrôle d'accès aux collections
- discussions.controller.mjs : Sécurisation des messages
- events.controller.mjs : Protection des événements
Code
- Respect strict des règles ESLint (limite 100 caractères, formatage uniforme)
- Patterns d'import/export standardisés
- Gestion d'erreurs robuste avec try/catch systématique
- Documentation inline améliorée
Sécurité Renforcée
- Authentification JWT obligatoire pour actions sensibles
- Autorisation basée sur les rôles et propriétés
- Validation des permissions métier (organisateur, membre, créateur)
- Protection contre les accès non autorisés
Date de release : 31 octobre 2025
Compatibilité : Node.js 16+, MongoDB 4.4+
v1.3.0
Release Notes v1.3.0
API Events Management System v1.3.0
New Features
Photo Management Enhancements
- Complete photo likes system with like/unlike functionality
- User tracking for photo likes with duplicate prevention
- Enhanced photo responses with like counts and user status
Advanced Ticket Management
- Ticket cancellation system with status tracking (active/cancelled/used)
- Smart ticket type deletion based on quantity_sold counter
- Automatic stock management with cancellation refunds
- Detailed cancellation logging with timestamps and reasons
System Improvements
- Enhanced data validation and error handling
- Improved API documentation with comprehensive endpoint coverage
- Better response consistency across all endpoints
API Endpoints Added
Photo Likes
POST /photos/:id/like- Like a photoDELETE /photos/:id/like- Unlike a photo
Ticket Management
DELETE /tickets/:ticketNumber- Cancel a ticket with reason trackingDELETE /ticket-types/:id- Smart deletion based on active tickets
Technical Improvements
- Enhanced Ticket model with cancellation fields
- Photo model updated with likes tracking array
- Improved quantity_sold management for ticket types
- Better error messages with detailed context
Documentation
- Complete README rewrite with comprehensive API documentation
- Detailed endpoint tables with HTTP methods and descriptions
- Enhanced examples for all major features
- Security and architecture documentation improvements
Installation
git clone https://github.com/Xoriax/api_msn_tp.git
cd api_msn_tp
npm installQuick Start
- Configure your
.envfile with MongoDB URI and JWT secret - Run
npm run devfor development ornpm startfor production - API will be available at
http://localhost:3000
Full Feature Set
- JWT Authentication with bcrypt security
- Complete event management with participant tracking
- Group system (public/private/secret)
- Discussion threads with messaging
- Poll system with voting capabilities
- Photo albums with likes and comments
- Integrated ticketing system with purchase tracking
- Advanced cancellation and refund management
v1.2.0 - Authentification JWT sécurisée
Système d'authentification JWT complet avec sécurité renforcée. Nouvelles fonctionnalités: authentification JWT avec bcrypt, login/logout sécurisé, protection des routes utilisateur, autorisation basée sur l'ID. Breaking changes: POST /users nécessite un mot de passe, PUT/DELETE /users/:id nécessitent une authentification JWT.
Facebook Events API v1.1 - Contrôle d'Accès Intelligent aux Groupes
Facebook Events API v1.1 - Contrôle d'Accès Intelligent
Nouvelle Fonctionnalité Majeure : Gestion de la Confidentialité des Groupes
Cette version introduit un système de contrôle d'accès intelligent pour les groupes, permettant une gestion granulaire de la confidentialité.
Nouveautés
Endpoint GET /groups Amélioré
Remplace l'ancien /groups/public avec un système intelligent :
- Groupes publics : Informations complètes pour tous
- Groupes privés : Visibles avec détails limités aux non-membres
- Groupes secrets : Complètement invisibles dans la liste
Authentification Optionnelle
Les endpoints fonctionnent avec ou sans authentification :
- Sans token : Informations publiques uniquement
- Avec token : Informations personnalisées selon l'appartenance
Contrôle d'Accès Détaillé
Groupes Publics : Visibles par tous avec détails complets
Groupes Privés : Visibles dans la liste mais détails limités pour non-membres
Groupes Secrets : Invisibles dans GET /groups, accessibles par ID direct si membre
Compatibilité
L'ancien endpoint /groups/public reste disponible pour la rétrocompatibilité.
Améliorations Techniques
- Factorisation de la logique d'authentification
- Validation JWT optionnelle réutilisable
- Performance améliorée avec requêtes conditionnelles
- Documentation enrichie avec guide complet
Impact sur l'API
Nouveaux Endpoints
- GET /groups - Liste intelligente avec contrôle d'accès
- GET /groups/:id - Détails avec accès conditionnel
Migration
Aucune action requise - compatibilité descendante garantie.
Migration vers GET /groups recommandée pour bénéficier du nouveau système.
Corrections
- Amélioration gestion des tokens expirés
- Meilleure validation des ObjectId MongoDB
- Gestion d'erreurs plus robuste
Documentation
- README mis à jour avec système de confidentialité
Date de release : 30 octobre 2025
Compatibilité : Node.js 16+, MongoDB 4.4+
Facebook Events API v1.0 - Release Initiale
Facebook Events API v1.0
Release Initiale
Cette première version stable de l'API Facebook Events offre un système complet de gestion d'événements avec toutes les fonctionnalités essentielles.
Fonctionnalités Principales
Gestion des Utilisateurs
- Création et gestion des comptes utilisateurs
- Authentification sécurisée avec JWT
- Recherche par email et ID
- Profils utilisateurs complets
Système d'Événements
- Création d'événements publics et privés
- Gestion des organisateurs multiples
- Système de participation (rejoindre/quitter)
- Événements liés aux groupes
- Support de la billetterie intégrée
Gestion des Groupes
- Groupes publics, privés et secrets
- Système d'administration et de membres
- Permissions configurables pour posts et événements
- Discussions de groupe intégrées
Albums et Photos
- Albums liés aux événements
- Système de commentaires et likes
- Métadonnées complètes des photos
- Gestion des téléchargements
Discussions
- Fils de discussion pour événements et groupes
- Messages avec système de réponses imbriquées
- Gestion des permissions d'écriture
Sondages
- Création de sondages multi-questions
- Système de votes par utilisateur
- Calcul automatique des résultats en pourcentage
- Date de fin configurable
Billetterie
- Types de billets multiples avec prix
- Achat sécurisé avec informations complètes
- Numéros de billets uniques
- Gestion des statuts (acheté, validé, annulé)
Sécurité
Authentification JWT
- Tokens sécurisés avec expiration (24h)
- Middleware d'authentification complet
- Protection des endpoints sensibles
Autorisations
- Contrôle d'accès basé sur les rôles
- Vérification des permissions administrateur
- Protection contre les modifications non autorisées
Architecture Technique
Technologies
- Backend: Node.js avec Express.js
- Base de données: MongoDB avec Mongoose ODM
- Authentification: JWT (JSON Web Tokens)
- Validation: ESLint avec règles strictes
Structure Modulaire
- Contrôleurs séparés par fonctionnalité
- Modèles de données normalisés
- Middleware réutilisable
- Configuration centralisée
Documentation
API Endpoints
- Plus de 50 endpoints documentés
- Support de la pagination sur toutes les listes
- Format de réponse standardisé
- Gestion d'erreurs cohérente
Guide de Développement
- Instructions d'installation complètes
- Configuration pour développement et production
- Standards de code documentés
- Guide de contribution
Installation Rapide
# Cloner le projet
git clone https://github.com/Xoriax/api_msn_tp.git
cd api_msn_tp
# Installer les dépendances
npm install
# Configurer les variables d'environnement
cp .env.example .env
# Démarrer en développement
npm run devStatistiques
- Contrôleurs: 8 modules principaux
- Modèles de données: 9 schemas MongoDB
- Endpoints: 50+ routes API
- Middleware: Authentification et autorisation
- Lignes de code: ~2000 lignes
Configuration Requise
- Node.js 16+
- MongoDB (local ou Atlas)
- npm ou yarn
Variables d'Environnement
PORT=3000
MONGODB_URI=mongodb://localhost:27017/facebook_events
JWT_SECRET=your-secret-key
NODE_ENV=developmentProchaines Étapes (v1.1)
- Upload de fichiers pour photos
- Notifications en temps réel
- Cache Redis
- Tests automatisés
- Documentation Swagger/OpenAPI
Problèmes Connus
Aucun problème critique identifié dans cette version.
Date de release: 30 octobre 2025
Compatibilité: Node.js 16+, MongoDB 4.4+