From aaa66849be7a0f4da4ab274f58cca4c802c72deb Mon Sep 17 00:00:00 2001 From: sermandm Date: Thu, 8 May 2025 15:20:40 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20Mise=20=C3=A0=20jour=20du=20READ?= =?UTF-8?q?ME=20avec=20les=20fonctionnalit=C3=A9s=20finales=20et=20instruc?= =?UTF-8?q?tions=20d'installation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 114 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 74 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index b77de51..d082dde 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,83 @@ - # 🚀 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. +Cette application permet de gérer les interventions, les utilisateurs (chauffagistes, secrétaires, admins), 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). +- **Gestion des interventions** : assignation des chauffagistes, véhicules, pièces détachées, ajout de remarques. +- **Gestion des stocks et des véhicules** : CRUD complet pour les pièces détachées et les véhicules. +- **Planning des interventions** : chaque rôle accède à un planning personnalisé (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. +--- + +## Fonctionnalités avancées +- ✅ **Contrôle d’unicité** : interdiction de double-assignation d’un même chauffagiste ou véhicule sur une même date/heure. +- ✅ **Calendrier FullCalendar dynamique** : affichage différent selon le rôle + clic pour afficher l’intervention. +- ✅ **Sélecteurs intelligents** : seuls les chauffagistes apparaissent pour l’assignation dans les interventions. +- ✅ **Remarque chauffagiste** : chaque chauffagiste peut ajouter une remarque à ses interventions uniquement. +- ✅ **Sécurité renforcée** : vérifications d’accès sur toutes les routes sensibles. + +--- + +## Rôles & restrictions + +| Rôle | Droits | +|---------------|------------------------------------------------------------------------| +| **Admin** | Accès complet à tous les modules (utilisateurs, stocks, véhicules...) | +| **Secrétaire** | Accès complet à tous les modules **mais pas aux utilisateurs** | +| **Chauffagiste** | Accède uniquement à ses interventions et peut y ajouter des remarques | + +--- ## Installation + ### Prérequis : - PHP 8.x - Composer - Symfony 7.x +- Base de données PostgreSQL ou MySQL -### É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 HegreEtConfort - 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. Exécuter cette insertion dans la console PostgreSQL pour créer votre premier utilisateur admin : - ```bash - INSERT INTO "HegreEtConfort".public.utilisateur (id, email, first_name, last_name, birth_date, phone, roles, password) - VALUES (1000, 'admin@admin.admin', 'admin', 'admin', '2025-04-10', 'admin', '["ROLE_ADMIN"]', '$2y$13$4jqoZVgncgDJ6oPFDswZeeiVmt9TF2AC.xoBwyyrrbNl5Xz8r.50e'); - ``` +### Étapes : +### 1. Clonez le projet +```bash +git clone https://gitea.btssio-poitiers.fr/sermandm/HegreEtConfort.git +cd HegreEtConfort +``` +### 2. Installez les dépendances +```bash +composer install +``` +### 3. Créez la base de données +```bash +php bin/console doctrine:database:create +``` +### 4. Appliquez les migrations +```bash +php bin/console doctrine:migrations:migrate +``` -6. Lancez le serveur Symfony : - ```bash - symfony server:start - ``` +### 5. Créez un utilisateur admin (exemple PostgreSQL) : +```sql +INSERT INTO "HegreEtConfort".public.utilisateur ( + id, email, first_name, last_name, birth_date, phone, roles, password +) +VALUES ( + 1000, 'admin@admin.admin', 'admin', 'admin', '2025-04-10', '0000000000', + '["ROLE_ADMIN"]', + '$2y$13$4jqoZVgncgDJ6oPFDswZeeiVmt9TF2AC.xoBwyyrrbNl5Xz8r.50e' +); +``` -Accédez ensuite à l'application sur `http://localhost:8000`. +### 6. Démarrez le serveur Symfony : +```bash +symfony server:start +``` -## 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. +➡️ Accédez ensuite à l’application : [http://localhost:8000](http://localhost:8000) --- @@ -62,4 +85,15 @@ Les secrétaires ont accès à toutes les pages **sauf celles concernant d'autre - Symfony 7.x - Doctrine ORM - Twig -- PHP 8.x \ No newline at end of file +- PHP 8.x +- FullCalendar.js +- PostgreSQL (ou MySQL selon config) + +--- + +## Auteur +Développé dans le cadre du BTS SIO - D'Hegre Et Confort +- Maxim SERMAND +- Alyssa ALLARD +- Giovanny BRUNET +- Lucas RAGUENEAU \ No newline at end of file