Go to file
soufiane 93cd8d38ff feat: improve newsletter email design and buttons
- Change game button to redirect to /jeux instead of /register
- Improve button colors: orange/red for primary, gold for secondary
- Add hover effects with shadows and transform animations
- Remove unsubscribe section from footer
- Clean up email subject: remove emoji, keep professional format
- Increase button font size and add letter spacing for better readability

Button improvements:
- Primary button (Jouer Maintenant): vibrant orange gradient (#f59e0b → #ea580c)
- Secondary button (Visiter le Site): gold gradient matching brand colors
- Enhanced shadows and hover effects for better interactivity

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 15:57:42 +01:00
database feat: add newsletter subscription feature 2025-11-24 00:07:44 +01:00
node_modules dev 2025-11-17 23:47:54 +01:00
public feat: add newsletter subscription feature 2025-11-24 00:07:44 +01:00
scripts feat: add newsletter subscription feature 2025-11-24 00:07:44 +01:00
src feat: improve newsletter email design and buttons 2025-11-24 15:57:42 +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
.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 contact form email functionality 2025-11-24 11:38:08 +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 chore: remove SonarQube stages from Jenkins pipeline 2025-11-21 01:30:42 +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: simplify Jenkins triggers to use only pollSCM + add setup docs 2025-11-18 16:08:28 +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 feat: add SonarQube integration for code quality analysis 2025-11-21 01:24:59 +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