📝 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

112
README.md
View File

@ -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 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
### 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 à lapplication : [http://localhost:8000](http://localhost:8000)
---
@ -63,3 +86,14 @@ Les secrétaires ont accès à toutes les pages **sauf celles concernant d'autre
- Doctrine ORM
- Twig
- 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