Application de gestion de planning, présence et ressources d'équipe
Application Blazor Server pour la gestion collaborative des plannings, présences, congés, compétences, clients, projets et analytics d'une équipe ou d'une organisation.
- Planning visuel par équipe et par employé
- Suivi de présence en temps réel
- Rotation automatique des affectations
- Calendrier interactif avec drag & drop
- Gestion des équipes et membres
- Fiches employés avec compétences
- Affectation équipes ↔ clients ↔ projets
- Cards visuelles par employé
- Référentiel clients avec détails
- Gestion de projets et affectations
- Suivi des missions par équipe
- Demandes de congés avec workflow
- Soldes et historique
- Vue calendrier des absences
- Matrice de compétences par employé
- Niveaux et certifications
- Matching compétences ↔ projets
- Dashboard avec KPIs
- Graphiques interactifs (présence, charge, compétences)
- Rapports exportables (PDF, Excel)
- Analytics avancées
- Paramètres utilisateur personnalisables
- Import de données (upload)
- Configuration du planning
- Notifications en temps réel (toasts)
| Page | Description |
|---|---|
| Dashboard | Vue d'ensemble, KPIs, activité récente |
| Planning | Planning visuel global |
| TeamPlanning | Planning par équipe |
| Calendar | Calendrier interactif |
| Teams | Gestion des équipes |
| TeamDetails | Détail d'une équipe |
| Employes | Liste et fiches employés |
| Clients | Référentiel clients |
| ClientDetails | Détail client |
| Projets | Gestion de projets |
| Conges | Congés et absences |
| Competences | Matrice de compétences |
| Rotation | Rotation des affectations |
| Analytics | Analytics avancées |
| Reports | Rapports et export |
| Export | Export PDF/Excel |
| Upload | Import de données |
| Admin | Administration |
| Settings | Paramètres utilisateur |
Clean Architecture avec séparation Domain / Application / Infrastructure :
TeamScheduler/
├── Core/ # 🧠 Domain Layer
│ ├── Entities/ # Employee, Team, Client, Project, Presence...
│ ├── Enums/ # Status, types, niveaux
│ └── Interfaces/ # Contrats repositories
│
├── Application/ # ⚙️ Application Layer
│ ├── DTOs/ # Data Transfer Objects
│ └── Services/ # TeamService
│
├── Infrastructure/ # 🔧 Infrastructure Layer
│ └── Repositories/ # EF Core implementations
│
├── Data/ # 💾 Data Access
│ ├── PlanningDbContext # EF Core DbContext
│ ├── Configurations # Fluent API
│ └── SeedTestData # Données de test
│
├── Services/ # 🔌 Business Services
│ ├── PlanningService # Logique planning
│ ├── SchedulerService # Planification automatique
│ ├── TeamPlanningService # Planning par équipe
│ ├── ReportService # Génération rapports
│ ├── ExportService # Export PDF/Excel
│ ├── NotificationService # Alertes temps réel
│ └── ToastService # Notifications UI
│
├── Pages/ # 📱 21 pages Blazor
├── Shared/ # 🧩 Composants partagés
│ ├── MainLayout
│ ├── EmployeeCard
│ ├── ChartComponents
│ ├── AdminNotifications
│ └── Modals/
│
├── Web/ # 🌐 Composants avancés
│ ├── Components/
│ └── Pages/
│
├── Tests/ # ✅ Tests unitaires
│ └── Unit/TeamServiceTests
│
└── Migrations/ # 📦 EF Core Migrations
| Composant | Technologie |
|---|---|
| Framework | .NET 8 Blazor Server |
| UI | Bootstrap + composants custom |
| Database | SQLite (dev) |
| ORM | Entity Framework Core |
| Charts | Composants Blazor interactifs |
| Export | PDF + Excel |
| Tests | xUnit |
| Container | Docker |
| CI/CD | GitHub Actions |
docker-compose up --build→ http://localhost:5000
dotnet restore
dotnet rundotnet test| Entité | Description |
|---|---|
| Employee | Nom, compétences, équipe, présence |
| Team | Nom, membres, clients assignés, projets |
| Client | Référentiel client, contacts |
| Project | Projets avec équipes assignées |
| PresenceRecord | Pointage quotidien |
| TeamClientAssignment | Affectation équipe ↔ client |
| TeamProjectAssignment | Affectation équipe ↔ projet |
| UserSettings | Préférences utilisateur |
MIT — Khalil Benazzouz