add prerequisites part and feedbacks from our teacher

This commit is contained in:
2026-04-01 11:04:53 +02:00
parent fee69cea89
commit 450e5463b5
+26 -9
View File
@@ -16,6 +16,20 @@ Lapplication a pour objectifs principaux de :
- Offrir aux responsables un tableau de bord pour suivre la participation et les besoins en ressources humaines. - Offrir aux responsables un tableau de bord pour suivre la participation et les besoins en ressources humaines.
- Centraliser les informations et la communication autour des projets associatifs. - Centraliser les informations et la communication autour des projets associatifs.
## Prérequis
Comme notre architecture se base sur l'utilisation de Docker, les seules prérequis pour la machine sur laquelle vous souhaitez installer cette application sont :
- [Docker](https://www.docker.com/)
- [Git](https://git-scm.com/)
## Installation
Pour installer ce projet il vous suffit de cloner le dépôt avec la commande suivante :
```bash
git clone <adresse du dépôt>
```
## Initialisation du projet ## Initialisation du projet
### 1. Configuration du fichier `.env` principal ### 1. Configuration du fichier `.env` principal
@@ -25,7 +39,7 @@ Lapplication a pour objectifs principaux de :
3. Renseignez les variables suivantes : 3. Renseignez les variables suivantes :
| Variable | Description | | Variable | Description |
| --------------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BACKEND_GIT_REPO` | URL HTTPS du dépôt backend sans le préfixe `https://` (ex : `gitlab.com/user/repo-backend.git`) | | `BACKEND_GIT_REPO` | URL HTTPS du dépôt backend sans le préfixe `https://` (ex : `gitlab.com/user/repo-backend.git`) |
| `FRONTEND_GIT_REPO` | URL HTTPS du dépôt frontend sans le préfixe `https://` | | `FRONTEND_GIT_REPO` | URL HTTPS du dépôt frontend sans le préfixe `https://` |
| `BACKEND_GIT_BRANCH` | Branche de votre dépôt backend à utiliser (ex : `main`, `dev`) | | `BACKEND_GIT_BRANCH` | Branche de votre dépôt backend à utiliser (ex : `main`, `dev`) |
@@ -53,13 +67,13 @@ De plus, un utilisateur administrateur est automatiquement créé avec les infor
- **Mot de passe :** `admin` - **Mot de passe :** `admin`
- **Numéro de téléphone :** `0909090909` - **Numéro de téléphone :** `0909090909`
> Il est bien sûr possible de modifier ces valeurs dans le fichier ``docker/php/.env`` avant le premier lancement du seeder, en utilisant les variables : ``ADMIN_NAME``, ``ADMIN_LASTNAME``, ``ADMIN_MAIL``, ``ADMIN_PASSWORD``et ``ADMIN_PHONE_NUMBER`` > Il est bien sûr possible de modifier ces valeurs dans le fichier `docker/php/.env` avant le premier lancement du seeder, en utilisant les variables : `ADMIN_NAME`, `ADMIN_LASTNAME`, `ADMIN_MAIL`, `ADMIN_PASSWORD` et `ADMIN_PHONE_NUMBER`
### 3. Note importante ### 3. Note importante
> ⚠️ Si vous êtes sous **Windows**, assurez-vous que tous les fichiers `.sh` utilisent des fins de ligne **LF** et non **CRLF**, sous peine derreurs lors de lexécution des scripts. > ⚠️ Si vous êtes sous **Windows**, assurez-vous que tous les fichiers `.sh` utilisent des fins de ligne **LF** et non **CRLF**, sous peine derreurs lors de lexécution des scripts.
## Installation et lancement ## Lancement
Une fois la configuration terminée : Une fois la configuration terminée :
@@ -70,16 +84,15 @@ Une fois la configuration terminée :
```bash ```bash
docker compose down -v docker compose down -v
``` ```
> Arrête et supprime les conteneurs existants ainsi que les volumes associés. > Arrête et supprime les conteneurs existants ainsi que les volumes associés.
> Cette étape permet de repartir sur une base propre. > Cette étape permet de repartir sur une base propre.
```bash ```bash
compose up --build -d docker compose up --build -d
``` ```
> Reconstruit les images Docker et démarre lensemble des services en arrière-plan. > Reconstruit les images Docker et démarre lensemble des services en arrière-plan.
## Point technique ## Point technique
### 1. Le nommage ### 1. Le nommage
@@ -134,7 +147,8 @@ La gestion des erreurs est assurée à plusieurs niveaux :
Le débogage a été réalisé grâce à plusieurs outils et méthodes : Le débogage a été réalisé grâce à plusieurs outils et méthodes :
- Utilisation des outils de développement du navigateur (console, réseau) - Utilisation des outils de développement du navigateur (console, réseau)
- Tests des routes API avec Bruno - Tests des routes API avec Bruno
- Logs côté backend pour analyser le comportement du serveur - Logs côté docker et backend pour analyser le comportement du serveur
- Par exemple un membre de notre groupe rencontré quelques problèmes lors du lancement des conteneurs docker. Il a donc accédé aux logs du conteneur en question, qui indiquait un problème de clonage du repo git : `unable to access to {url du depot git}` (cela peut être du a un `Personal Access Token` expiré, ou une mauvaise connexion internet)
- Tests manuels réguliers lors du développement - Tests manuels réguliers lors du développement
### 7. L'architecture ### 7. L'architecture
@@ -154,6 +168,9 @@ Notre environnement de déploiement repose sur plusieurs conteneurs Docker :
- **Backup** : conteneur dédié à la sauvegarde de la base de données - **Backup** : conteneur dédié à la sauvegarde de la base de données
- **Serveur WebSocket (Laravel Reverb)** : gestion des communications en temps réel - **Serveur WebSocket (Laravel Reverb)** : gestion des communications en temps réel
> Un schéma du fonctionnement global de l'application est disponible dans le dossier final de rendus.
### 8. Concepts de programmation ### 8. Concepts de programmation
Nous avons appliqué plusieurs concepts de programmation : Nous avons appliqué plusieurs concepts de programmation :
@@ -168,7 +185,7 @@ Cette conversion permet :
- Moins derreurs grâce au typage statique. - Moins derreurs grâce au typage statique.
- Un code plus lisible et documenté avec des interfaces claires. - Un code plus lisible et documenté avec des interfaces claires.
- Une meilleure collaboration grâce à des types explicites. - Une meilleure collaboration grâce à des types explicites.
Les interfaces TypeScript sont regroupées dans des fichiers dédiés, ce qui centralise les définitions et simplifie les mises à jour. Les interfaces TypeScript sont regroupées dans des fichiers dédiés, ce qui centralise les définitions et simplifie les mises à jour.
### 9. Tests unitaires ### 9. Tests unitaires
@@ -185,7 +202,7 @@ Nous avons donc choisi de nous concentrer sur quelques cas représentatifs, afin
Dans notre projet, lintégration continue repose sur les outils et pratiques utilisés tout au long du développement. Dans notre projet, lintégration continue repose sur les outils et pratiques utilisés tout au long du développement.
Nous avons appliqué les principes de lintégration continue de la manière suivante : Nous avons mis en place tous les outils qui permettent à termes l'intégration continu de l'application :
- Utilisation de Git pour gérer les versions du projet et intégrer régulièrement les modifications de chaque membre de l’équipe - Utilisation de Git pour gérer les versions du projet et intégrer régulièrement les modifications de chaque membre de l’équipe
- Utilisation de Docker pour garantir un environnement de développement et de déploiement identique et reproductible - Utilisation de Docker pour garantir un environnement de développement et de déploiement identique et reproductible
- Tests réguliers des fonctionnalités à chaque ajout de code (tests manuels et tests API avec Bruno) - Tests réguliers des fonctionnalités à chaque ajout de code (tests manuels et tests API avec Bruno)