Go to file
soufiane 33668e5a64 fix: resolve all ESLint warnings and update dependencies
- Remove unused variables and imports across codebase
- Use empty catch blocks where error object not needed
- Remove unused fs, path imports from apply-grand-prize-migration.js
- Remove unused OAuth2Client from oauth.controller.js
- Update dependencies to latest patch versions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 10:49:45 +01:00
database fix: resolve all ESLint warnings and update dependencies 2025-11-27 10:49:45 +01:00
public feat: add newsletter subscription feature 2025-11-24 00:07:44 +01:00
scripts fix: resolve all ESLint warnings and update dependencies 2025-11-27 10:49:45 +01:00
src fix: resolve all ESLint warnings and update dependencies 2025-11-27 10:49:45 +01:00
test fix: update test to use correct route (/) instead of /health 2025-11-18 16:59:43 +01:00
.dockerignore Initial commit du frontend The Tip Top 2025-10-30 11:11:05 +00:00
.env fix: configure Gmail App Password and SSL for contact form emails 2025-11-24 14:07:12 +01:00
.env.dev fix: configure Gmail App Password and SSL for contact form emails 2025-11-24 14:07:12 +01:00
.env.preprod fix: configure Gmail App Password and SSL for contact form emails 2025-11-24 14:07:12 +01:00
.env.production fix: configure Gmail App Password and SSL for contact form emails 2025-11-24 14:07:12 +01:00
.gitignore chore: add .gitignore and remove node_modules from tracking 2025-11-27 10:23:06 +01:00
.sonarignore feat: add SonarQube integration for code quality analysis 2025-11-21 01:24:59 +01:00
API-DOCUMENTATION.md dev 2025-11-17 23:47:54 +01:00
backend.log dev 2025-11-17 23:47:54 +01:00
create-test-users.sql dev 2025-11-17 23:47:54 +01:00
db.js dev 2025-11-17 23:47:54 +01:00
DEPLOYMENT-WORKFLOW.md dev 2025-11-17 23:47:54 +01:00
Dockerfile Fix Jenkinsfile syntax (clean comments) 2025-11-04 15:29:35 +01:00
eslint.config.js fix: resolve ESLint errors and Jest configuration 2025-11-18 16:49:19 +01:00
index.html sauvegarde avant pull 2025-10-25 23:21:31 +00:00
index.js feat: add HTTP metrics middleware for Prometheus monitoring 2025-11-26 10:54:45 +01:00
JENKINS_AUTO_TRIGGER_SETUP.md fix: simplify Jenkins triggers to use only pollSCM + add setup docs 2025-11-18 16:08:28 +01:00
JENKINS_WEBHOOK_SETUP.md feat: add automatic deployment triggers to Jenkinsfile 2025-11-18 15:23:32 +01:00
Jenkinsfile feat: add database backup stage before production deploy 2025-11-27 10:04:55 +01:00
jest.config.js fix: resolve ESLint errors and Jest configuration 2025-11-18 16:49:19 +01:00
NEWSLETTER_SETUP.md feat: add newsletter subscription feature 2025-11-24 00:07:44 +01:00
package-lock.json fix: resolve all ESLint warnings and update dependencies 2025-11-27 10:49:45 +01:00
package.json feat: add SonarQube integration for code quality analysis 2025-11-21 01:24:59 +01:00
postman-collection.json dev 2025-11-17 23:47:54 +01:00
README.md dev 2025-11-17 23:47:54 +01:00
restart-all.bat dev 2025-11-17 23:47:54 +01:00
RESTART-ALL.ps1 dev 2025-11-17 23:47:54 +01:00
restart-backend.bat dev 2025-11-17 23:47:54 +01:00
RESTART-FORCE.bat dev 2025-11-17 23:47:54 +01:00
sonar-project.properties fix: use sonar-project.properties for SonarQube config 2025-11-25 15:48:32 +01:00
test-admin-features.js dev 2025-11-17 23:47:54 +01:00
test-all-roles.sh dev 2025-11-17 23:47:54 +01:00
test-auth.sh dev 2025-11-17 23:47:54 +01:00
test-prizes.js dev 2025-11-17 23:47:54 +01:00
test-roles.sh dev 2025-11-17 23:47:54 +01:00

The Tip Top Backend API

API backend pour le jeu-concours The Tip Top.

Configuration

Variables d'environnement

Le fichier .env contient la configuration de la base de données et de l'application :

DB_HOST=51.75.24.29
DB_PORT=5433
DB_USER=postgres
DB_PASS=postgres
DB_NAME=thetiptop_dev
PORT=4000
JWT_SECRET=thetiptopsecret
SESSION_SECRET=thetiptopsessionsecret

Note : La base de données PostgreSQL est hébergée sur le serveur distant 51.75.24.29:5433.

Installation

# Installer les dépendances
npm install

# Créer le schéma de la base de données
psql -U postgres -d thetiptop_dev -p 5433 -f database/schema.sql

# Insérer les données de test
npm run db:seed

Démarrage

Démarrage normal

npm start

Démarrage en mode développement (avec nodemon)

npm run dev

Arrêter le serveur

Sur Windows :

  1. Ouvrez le Gestionnaire des tâches (Ctrl + Shift + Esc)
  2. Cherchez les processus "Node.js"
  3. Terminez-les tous

Ou via PowerShell :

Get-Process node | Stop-Process -Force

Structure du projet

the-tip-top-backend/
├── database/
│   ├── schema.sql          # Schéma de la base de données
│   ├── seed.js             # Script de seed
│   └── README.md           # Documentation DB
├── src/
│   ├── config/
│   │   └── env.js          # Configuration environnement
│   ├── controllers/        # Contrôleurs (logique métier)
│   ├── middleware/         # Middlewares (auth, validation, erreurs)
│   ├── routes/             # Définition des routes
│   ├── services/           # Services (email, etc.)
│   ├── utils/              # Utilitaires
│   └── validations/        # Schémas de validation Zod
├── db.js                   # Configuration PostgreSQL
├── index.js                # Point d'entrée de l'application
└── .env                    # Variables d'environnement

Routes API

Authentification (/api/auth)

  • POST /register - Inscription
  • POST /login - Connexion
  • GET /verify-email/:token - Vérification email
  • POST /forgot-password - Demande de réinitialisation
  • POST /reset-password - Réinitialisation du mot de passe

Utilisateur (/api/users)

  • GET /profile - Récupérer le profil
  • PUT /profile - Mettre à jour le profil
  • POST /change-password - Changer le mot de passe

Jeu (/api/game)

  • POST /play - Jouer et obtenir un ticket
  • GET /my-tickets - Mes tickets
  • GET /ticket/:code - Détails d'un ticket

Employé (/api/employee)

  • POST /validate-ticket - Valider un ticket
  • GET /pending-tickets - Tickets en attente

Admin (/api/admin)

  • GET /statistics - Statistiques globales
  • GET /prizes - Liste des prix
  • POST /prizes - Créer un prix
  • PUT /prizes/:id - Modifier un prix
  • DELETE /prizes/:id - Supprimer un prix
  • GET /users - Liste des utilisateurs
  • POST /employees - Créer un employé
  • PUT /users/:id - Modifier un utilisateur
  • DELETE /users/:id - Supprimer un utilisateur
  • GET /tickets - Liste des tickets

Comptes de test

Après avoir exécuté le seed :

Email Mot de passe Rôle
admin@thetiptop.com Admin123! ADMIN
employee1@thetiptop.com Employee123! EMPLOYEE
employee2@thetiptop.com Employee123! EMPLOYEE
client1@example.com Client123! CLIENT
client2-5@example.com Client123! CLIENT

Tests

# Tests unitaires
npm test

# Tests d'intégration
npm run test:integration

Endpoints de monitoring

  • GET / - Health check
  • GET /db-check - Vérification connexion DB
  • GET /metrics - Métriques Prometheus

Technologies

  • Express - Framework web
  • PostgreSQL - Base de données
  • JWT - Authentification
  • Bcrypt - Hashage de mots de passe
  • Zod - Validation des données
  • Nodemailer - Envoi d'emails
  • Helmet - Sécurité HTTP
  • CORS - Gestion des origines
  • Morgan - Logs HTTP
  • Prometheus - Métriques