📝 Mise à jour du README avec les fonctionnalités finales et instructions d'installation

This commit is contained in:
sermandm 2025-05-08 15:20:40 +02:00
parent 461e661f62
commit aaa66849be

114
README.md
View File

@ -1,60 +1,83 @@
# 🚀 Application de Gestion Chauffagiste # 🚀 Application de Gestion Chauffagiste
## Description ## 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 ## Fonctionnalités principales
- **Gestion des utilisateurs** : création de chauffagistes, secrétaires, et admins avec des rôles spécifiques. - **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 interventions** : assignation des chauffagistes, véhicules, pièces détachées, ajout de remarques.
- **Gestion des stocks et des véhicules** : gestion des pièces détachées et des véhicules. - **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 a accès à un planning adapté (chauffagiste, secrétaire, admin). - **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). - **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**. ## Fonctionnalités avancées
- **Chauffagiste** : Accède uniquement à ses propres interventions et à son planning. - ✅ **Contrôle dunicité** : interdiction de double-assignation dun 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 lintervention.
- ✅ **Sélecteurs intelligents** : seuls les chauffagistes apparaissent pour lassignation dans les interventions.
- ✅ **Remarque chauffagiste** : chaque chauffagiste peut ajouter une remarque à ses interventions uniquement.
- ✅ **Sécurité renforcée** : vérifications daccè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 ## Installation
### Prérequis : ### Prérequis :
- PHP 8.x - PHP 8.x
- Composer - Composer
- Symfony 7.x - Symfony 7.x
- Base de données PostgreSQL ou MySQL
### Étapes d'installation : ### Étapes :
1. Clonez le projet : ### 1. Clonez le projet
```bash ```bash
git clone https://gitea.btssio-poitiers.fr/sermandm/HegreEtConfort.git git clone https://gitea.btssio-poitiers.fr/sermandm/HegreEtConfort.git
``` cd HegreEtConfort
2. Installez les dépendances avec Composer : ```
```bash ### 2. Installez les dépendances
cd HegreEtConfort ```bash
composer install composer install
``` ```
3. Créez la base de données : ### 3. Créez la base de données
```bash ```bash
php bin/console doctrine:database:create php bin/console doctrine:database:create
``` ```
4. Exécutez les migrations pour créer les tables : ### 4. Appliquez les migrations
```bash ```bash
php bin/console doctrine:migrations:migrate 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');
```
6. Lancez le serveur Symfony : ### 5. Créez un utilisateur admin (exemple PostgreSQL) :
```bash ```sql
symfony server:start 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 ➡️ Accédez ensuite à lapplication : [http://localhost:8000](http://localhost:8000)
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.
--- ---
@ -62,4 +85,15 @@ Les secrétaires ont accès à toutes les pages **sauf celles concernant d'autre
- Symfony 7.x - Symfony 7.x
- Doctrine ORM - Doctrine ORM
- Twig - Twig
- PHP 8.x - 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