TimePlanner — Système de Gestion d'Emploi du Temps Multi-Services
🎯 Pitch Court
TimePlanner est une plateforme complète de gestion d'emploi du temps qui centralise tous tes horaires, services et lieux d'intervention sur un unique calendrier. Elle te rappelle quotidiennement tes tâches, s'intègre au help desk, et synchronise les données en temps réel entre tous tes services.
📋 Le Problème & La Solution
Le Problème
Gérer plusieurs services, lieux d'intervention et horaires complexes manuellement = erreurs, oublis, désorganisation .
La Solution
TimePlanner résout ça avec une plateforme centralisée, intelligente et proactive qui :
📅 Affiche tous tes horaires sur un calendrier intuitif
📧 T'envoie rappels quotidiens par email avec détails complets
✅ Te demande de confirmer ta présence (validation requise)
🔗 S'intègre au help desk pour accès centralisé aux données
📊 Synchronise les données entre tous tes services
🔐 Sécurise l'accès avec JWT tokens et authentification robuste
📝 Ce qu'on Peut Planifier
TimePlanner supporte :
Horaires de travail : shifts, jours entiers, périodes
Services : liste des tâches/rôles à exécuter
Lieux d'intervention : adresses, coordonnées, zones
Jours fériés : jours non-travaillés automatiquement
Disponibilités : plages libres/occupées
Congés : vacances, jours maladie, RTT
On-call : astreinte, urgences
✨ Fonctionnalités Principales
📅 Calendrier Avancé (React Big Calendar)
Multi-vues : mensuelle, hebdomadaire, journalière avec switch fluide
Drag & drop : déplacer/modifier les horaires directement
Color coding : codes couleur par service/lieu/type
Quick preview : hover sur un créneau = détails complets
Édition inline : modifier horaires sans quitter le calendrier
Multi-service view : voir tous tes services en parallèle
Synchronisation temps réel : mise à jour instantanée via WebSocket
📧 Rappels & Notifications Intelligents
Système Cron Automatisé :
Email quotidien à 06:00 UTC (configurable)
Récapitulatif complet des horaires du jour
Détails services, lieux, statut confirmation
Boutons d'action directement dans l'email
Support cron Linux, PM2, ou Systemd Timer
Contenu Email :
Liste chronologique des horaires
Services et lieux associés
Statut confirmation (✓ confirmé / ⚠️ en attente)
Résumé : heures totales, nombre services
Actions rapides : [Confirmer] [Voir détails] [Modifier]
Lien vers calendrier complet
✅ Validation de Présence
Click obligatoire : confirmer chaque horaire du jour
Push notification : alerte mobile (optionnel)
SMS rappel : avant 2h du shift (optionnel)
Historique : suivi qui a confirmé quoi et quand
Escalade : alerte manager si non-confirmé 30 min avant
🔗 Intégration Help Desk
Accès centralisé : consulter l'emploi du temps depuis le help desk
Context switching : passer du help desk au calendrier sans refonte
Data sync : modifications dans TimePlanner = mise à jour help desk immédiate
Liaison incidents : lier incidents help desk aux horaires
SLA awareness : voir qui est disponible pour un incident en temps réel
📊 Gestion Multi-Services
Services configurables incluant :
Support (Tier-1, Tier-2, Tier-3)
DevOps (Infrastructure, Deployments)
Développement (Frontend, Backend)
QA (Tests, Validation)
Astreinte (On-call, Urgences)
Formations, Réunions, Disponibilité
Pour chaque service :
Description détaillée
Couleur d'identification
Durée standard
Lieu(x) associé(s)
Notification spécifique
Intégration (Slack, email, SMS)
📍 Gestion des Lieux d'Intervention
Lieux physiques : adresse, coordonnées GPS, parking, accès, contact
Visio : URL Zoom/Teams, Slack channel, dial-in details
À distance : work from home, durée trajet 0
Localisation GPS : calculer trajets, itinéraires
Notes spéciales : parking, code accès, contact local
🎉 Gestion Jours Fériés & Congés
Jours fériés automatiques : France, Italie inclus par défaut
Jours off : marquer comme non-travaillés automatiquement
Vacances : bloquer périodes complètes
RTT/congés personnels : demandes de congés intégrées
Maladie : absence planifiée/non-planifiée
Overlap detection : détection automatique des conflits
📊 Analytics & Rapports
Total heures travaillées (période)
Heure moyenne par service
Disponibilité (% confirmations)
Absences non-justifiées
Distribution services/lieux
Trends (augmentation/diminution charge)
Export rapports (PDF, CSV)
⏰ Système Cron - Configuration
Option 1: Cron Linux (Recommandé)
# Fichier: /etc/cron.d/timeplanner
# Daily reminder at 6 AM UTC
0 6 * * * root cd /var/www/timeplanner && php bin/console app:send-daily-reminder
# Check for unconfirmed events (every 30 min)
*/30 * * * * root cd /var/www/timeplanner && php bin/console app:check-event-confirmation
# Cleanup old events (1st day of month, 2 AM)
0 2 1 * * root cd /var/www/timeplanner && php bin/console app:cleanup-old-events
Option 2: PM2 (Node.js Cron)
// ecosystem.config.js
{
"name": "timeplanner-cron-reminder",
"script": "src/cron/dailyReminder.js",
"cron_time": "0 6 * * *", // 6 AM daily
"error_file": "/var/log/timeplanner-cron-error.log"
}
Option 3: Systemd Timer
Configuration de service systemd avec timer automatique pour exécution fiable.
📈 Exemple de Flux Quotidien
06:00 UTC
│
├─ [CRON] Déclenche SendDailyReminderCommand
├─ Récupère events du jour pour chaque utilisateur
├─ Génère email HTML personnalisé
├─ Envoie via SMTP
└─ Log: "Rappels envoyés pour 3 utilisateurs"
┌─ Utilisateur reçoit email à 06:00
├─ Lit récapitulatif horaires + services
├─ Click: [Confirmer présence]
├─ Requête POST /api/events/{id}/confirm
├─ Backend: update event_confirmations.status = 'confirmed'
├─ Frontend: sync calendrier + Redux
└─ Toast: "✓ Présence confirmée"
30 min avant event
├─ [CRON] CheckEventConfirmationCommand
├─ Si status = 'pending' → alerte (optionnel)
└─ Escalade: manager notifié si besoin
🏗️ Architecture Technique
Frontend (React + Vite)
Components : Calendar, EventForm, ReminderModal, ServiceSelector, LocationPicker, DayView
React Big Calendar : calendrier avancé avec drag/drop
Redux Toolkit : state management (auth, events, services, locations)
Tailwind CSS : design responsive et moderne
Vite : bundling ultra-rapide
Axios : HTTP client avec interceptors JWT
Backend (Symfony 7 + Cron)
Controllers : Auth, Event, Service, Location, Reminder, Holiday, Analytics
Entities : User, Event, Service, Location, Reminder, Holiday, EventConfirmation
Commands : SendDailyReminderCommand, CheckEventConfirmationCommand, CleanupOldEventsCommand
Cron Support : Linux cron, PM2, Systemd Timer
JWT Authentication : LexikJWTAuthenticationBundle
Database : Doctrine ORM + MySQL migrations
Database (MySQL)
users : email, timezone, notification preferences
events : horaires avec service, location, description
services : métadonnées (nom, couleur, durée, notification)
locations : détails lieux (adresse, GPS, contact)
event_confirmations : suivi validations (status, timestamp)
holidays : jours fériés (date, pays, working_day flag)
sent_reminders : historique emails envoyés
💻 Stack Technique
Frontend
React 18 + Hooks
Vite (bundling)
React Big Calendar (calendrier)
Redux Toolkit (state)
Tailwind CSS (styles)
Axios (HTTP)
React Hook Form (formulaires)
SweetAlert / Sonner (notifications)
Backend
Symfony 7.2 (framework)
Doctrine ORM (persistance)
LexikJWTAuthenticationBundle (JWT)
Symfony Messenger (queues)
Symfony Mailer (emails)
API Platform (REST)
Monolog (logging)
Infrastructure
MySQL 8.0 (database)
Apache 2.4 (server)
PHP 8.2 (runtime)
Cron / PM2 / Systemd (scheduling)
Let's Encrypt SSL (security)
Docker (optionnel)
🎯 Cas d'Usage
Pour Développeurs/Ops Freelances
✅ Gérer plusieurs services/clients
✅ Reminders automatiques chaque matin
✅ Validation présence requise
✅ Historique complet
Pour Équipes Distribuées
✅ Calendrier centralisé visible
✅ Intégration help desk
✅ Notifications temps réel
✅ Analytics d'utilisation
Pour Gestionnaires de Ressources
✅ Voir qui est disponible quand
✅ Planifier selon capacités
✅ Détecter surcharge
✅ Rapports & KPIs
🌟 Points Forts
✅ Calendrier intuitif : React Big Calendar avec drag & drop
✅ Rappels intelligents : cron automatisé, email riche
✅ Multi-services : gère complexité facilement
✅ Intégration help desk : un seul point d'accès
✅ Sécurité : JWT, validation côté serveur
✅ Responsive : mobile, tablet, desktop
✅ Notifications : email, SMS, push (optionnel)
✅ Audit trail : qui a confirmé quand
🚀 Améliorations Futures
IA Scheduling : suggestion auto d'horaires optimaux
Slack bot : confirmer depuis Slack directement
Mobile app : React Native pour notifications push
Google Calendar sync : synchronisation bidirectionnelle
Time tracking : tracker temps réel vs planifié
Incident linking : lier events aux tickets help desk
Analytics avancées : prédire overload, burnout
Approval workflow : manager approuve/refuse shifts
TimePlanner centralise ta gestion d'emploi du temps avec rappels intelligents, intégration help desk complète, et synchronisation multi-services en temps réel. Cron automatisé, validation présence, et dashboard centralisé pour tous tes services.