Voici un résumé du projet

Créer une application PHP permettant de générer et de gérer un tirage au sort selon certaines conditions données

Projet Secret Santa – Générateur et Gestionnaire de Tirage au Sort

Contexte du Projet

Développement d’une application PHP permettant d’organiser un « Secret Santa » (Père Noël Secret) pour des groupes familiaux. L’application gère automatiquement le tirage au sort et l’envoi des notifications par email aux participants.

Objectifs du Projet

  • Automatiser le processus de tirage au sort pour le Secret Santa
  • Respecter les contraintes familiales (pas de tirage dans la même famille)
  • Notifier automatiquement chaque participant par email
  • Garantir la confidentialité des tirages

Technologies Utilisées

  • PHP 7+
  • PHPMailer pour l’envoi d’emails
  • SMTP (Gmail) pour le service de messagerie
  • Composer pour la gestion des dépendances

Fonctionnalités Principales

  1. Gestion des Participants
  • Structure de données pour les familles
  • Système d’identification par indices numériques
  • Association email-participant
  • Mapping des noms et identifiants
  1. Algorithme de Tirage
  • Validation des contraintes familiales
  • Gestion des exclusions
  • Système de backtracking pour garantir une solution valide
  • Vérification de la cohérence des paires
  1. Système de Notification
  • Integration de PHPMailer
  • Configuration SMTP sécurisée
  • Templates d’emails personnalisés
  • Gestion des erreurs d’envoi

Architecture Technique

  • Utilisation de fonctions modulaires
  • Séparation des responsabilités (tirage/envoi d’emails)
  • Structure de données optimisée
  • Gestion des exceptions

Compétences Mobilisées

  • Programmation PHP orientée objet
  • Gestion des dépendances avec Composer
  • Integration d’API de messagerie
  • Algorithmes complexes
  • Gestion de données structurées

Points Forts Techniques

  1. Algorithme de Tirage Intelligent
  • Respect des contraintes familiales
  • Garantie d’obtenir une solution valide
  • Performance optimisée
  1. Système d’Emails Robuste
  • Gestion des erreurs
  • Sécurisation des connexions
  • Templates personnalisables
  1. Structure de Données Efficace
  • Organisation par familles
  • Système d’indexation flexible
  • Facilité de maintenance

Challenges Relevés

  • Implémentation d’un algorithme de tirage équitable
  • Gestion des contraintes familiales complexes
  • Sécurisation des envois d’emails
  • Maintien de la confidentialité des tirages

Perspectives d’Évolution

  • Interface utilisateur web
  • Hébergement web
  • Gestion des tirages des années précédentes pour empêcher de tomber a nouveau sur la même personne

Compétences BTS SIO SLAM Démontrées

  1. Développement
  • Programmation structurée
  • Gestion des données
  • Intégration de services tiers
  1. Sécurité
  • Protection des données
  • Sécurisation des communications
  • Gestion des accès
  1. Architecture
  • Conception modulaire
  • Organisation du code
  • Maintenabilité

Conclusion

Ce projet démontre ma capacité à concevoir et développer une solution technique complète, en gérant à la fois les aspects algorithmiques complexes et l’intégration de services externes. Il illustre également ma compréhension des enjeux de sécurité et de confidentialité dans le développement d’applications.