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
- 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
- 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
- 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
- Algorithme de Tirage Intelligent
- Respect des contraintes familiales
- Garantie d’obtenir une solution valide
- Performance optimisée
- Système d’Emails Robuste
- Gestion des erreurs
- Sécurisation des connexions
- Templates personnalisables
- 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
- Développement
- Programmation structurée
- Gestion des données
- Intégration de services tiers
- Sécurité
- Protection des données
- Sécurisation des communications
- Gestion des accès
- 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.
