📅
Pro

SchedMaster

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.