# 🚀 Application de Gestion Chauffagiste ## Description Cette application permet de gérer les interventions, les utilisateurs (chauffagistes, secrétaires, admin), les pièces détachées, les véhicules, et les plannings dans une entreprise de chauffagistes. ## Fonctionnalités principales - **Gestion des utilisateurs** : création de chauffagistes, secrétaires, et admins avec des rôles spécifiques. - **Gestion des interventions** : assignation des chauffagistes, suivi des véhicules et des pièces détachées. - **Gestion des stocks et des véhicules** : gestion des pièces détachées et des véhicules. - **Planning des interventions** : chaque rôle a accès à un planning adapté (chauffagiste, secrétaire, admin). - **Sécurisation par rôles** : accès aux pages limité par rôle (Admin, Secrétaire, Chauffagiste). ### Précisions pour les rôles : - **Admin** : Accès complet à toutes les fonctionnalités (gestion des utilisateurs, véhicules, stocks, plannings, etc.) - **Secrétaire** : Peut gérer les chauffagistes, les interventions et le planning des chauffagistes, mais **ne peut pas gérer d'autres secrétaires ni les admins**. - **Chauffagiste** : Accède uniquement à ses propres interventions et à son planning. ## Installation ### Prérequis : - PHP 8.x - Composer - Symfony 7.x ### Étapes d'installation : 1. Clonez le projet : ```bash git clone https://gitea.btssio-poitiers.fr/sermandm/HegreEtConfort.git ``` 2. Installez les dépendances avec Composer : ```bash cd chauffagiste-app composer install ``` 3. Créez la base de données : ```bash php bin/console doctrine:database:create ``` 4. Exécutez les migrations pour créer les tables : ```bash php bin/console doctrine:migrations:migrate ``` 5. Lancez le serveur Symfony : ```bash symfony server:start ``` Accédez ensuite à l'application sur `http://localhost:8000`. ## Sécurisation des accès Les secrétaires ont accès à toutes les pages **sauf celles concernant d'autres secrétaires et les admins**. Cela est géré par les contrôleurs via la méthode `denyAccessUnlessGranted()` pour vérifier le rôle de l'utilisateur. Par exemple, un secrétaire ne pourra pas modifier un autre secrétaire. --- ## Technologies utilisées - Symfony 7.x - Doctrine ORM - Twig - PHP 8.x