Documentation: relecture, ajout de la conclusion. Dossier de configuration complété.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Dossier de configuration — Projet Webzine
|
||||
# Dossier de configuration - Projet Webzine
|
||||
|
||||
**Équipe 1**
|
||||
**Formation :** Développement .NET niveau 1 / Dr1-P4
|
||||
@@ -12,6 +12,7 @@
|
||||
| ----- | ------------- |
|
||||
| 25/03 | Clément Bobin |
|
||||
| 31/03 | Joséphine Vetu |
|
||||
| 08/04 | Joséphine Vetu |
|
||||
|
||||
---
|
||||
|
||||
@@ -24,7 +25,7 @@ Avant de lancer l'application, assurez-vous d'avoir installé les outils suivant
|
||||
| .NET SDK | 10.0 | https://dotnet.microsoft.com/download |
|
||||
| Node.js (optionnel, pour outils front) | 18+ | https://nodejs.org |
|
||||
| Git | 2.x | https://git-scm.com |
|
||||
| Un IDE | Visual Studio 2022+ ou Rider | — |
|
||||
| Un IDE | Visual Studio 2022+ ou Rider | - |
|
||||
|
||||
---
|
||||
|
||||
@@ -79,27 +80,73 @@ Ouvrir `Webzine.sln`, sélectionner le profil `https` ou `http`, puis lancer ave
|
||||
---
|
||||
|
||||
## 5. Configuration applicative
|
||||
|
||||
La configuration de l'application est répartie sur plusieurs fichiers `appsettings` selon l'environnement.
|
||||
|
||||
### `appsettings.json` - configuration commune
|
||||
|
||||
Ce fichier contient les paramètres partagés entre tous les environnements :
|
||||
|
||||
- **Logging** : niveau `Information` par défaut, `Warning` pour ASP.NET Core, et `Debug` pour la couche repository afin de tracer les requêtes.
|
||||
- **Webzine** : paramètres d'affichage (nombre de chroniques et de titres sur la page d'accueil, nombre de lignes dans les vues d'administration). Ces valeurs sont injectées via `IConfiguration` et modifiables sans recompilation.
|
||||
- **ConnectionStrings** : chaînes de connexion pour SQLite (dev) et PostgreSQL (prod). L'application bascule de l'une à l'autre selon la valeur de `Repository`.
|
||||
- **SpotifySeeder** : paramètres de l'import Spotify - credentials, marché cible, genres musicaux, et limites de volumétrie (artistes par genre, albums par artiste, titres par album, commentaires par titre).
|
||||
- **EfPerformance** : seuil en millisecondes au-delà duquel une requête Entity Framework est considérée comme lente (60 ms par défaut).
|
||||
|
||||
Le fichier principal de configuration est `Webzine.WebApplication/appsettings.json` :
|
||||
|
||||
### Configuration par environnement
|
||||
|
||||
#### Développement - `appsettings.Development.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"Webzine": {
|
||||
"NombreDerniereChronique": 3,
|
||||
"NombreDeTopTitres": 3
|
||||
"Seeder": "Spotify",
|
||||
"Repository": "Db",
|
||||
"SpotifySeeder": {
|
||||
"ClientId": "",
|
||||
"ClientSecret": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| Propriété | Type | Description | Valeur par défaut |
|
||||
| ------------------------- | ---- | -------------------------------------------------------------------------------- | ----------------- |
|
||||
| `NombreDerniereChronique` | int | Nombre de chroniques affichées sur la page d'accueil (section "Derniers titres") | 3 |
|
||||
| `NombreDeTopTitres` | int | Nombre de titres affichés dans le bloc "Titres les plus populaires" | 3 |
|
||||
|
||||
Ces valeurs sont injectées dans `AccueilController` via `IConfiguration` et peuvent être modifiées sans recompilation.
|
||||
|
||||
Pour l'environnement de développement, les surcharges se font dans `appsettings.Development.json`.
|
||||
|
||||
|
||||
#### Production - `appsettings.Production.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"Seeder": "Local",
|
||||
"Repository": "Db",
|
||||
"SpotifySeeder": {
|
||||
"ClientId": "",
|
||||
"ClientSecret": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Valeurs acceptées
|
||||
|
||||
Les propriétés `Seeder` et `Repository` correspondent aux enums suivants :
|
||||
|
||||
```csharp
|
||||
public enum SeederType
|
||||
{
|
||||
Local, // Données mockées en mémoire
|
||||
Spotify, // Données récupérées depuis l'API Spotify
|
||||
}
|
||||
|
||||
public enum RepositoryType
|
||||
{
|
||||
Local, // Données en mémoire (pas de base de données)
|
||||
Db, // Base de données (SQLite en dev, PostgreSQL en prod)
|
||||
}
|
||||
```
|
||||
|
||||
| Propriété | Type | Valeurs acceptées | Description |
|
||||
|---|---|---|---|
|
||||
| `Seeder` | `SeederType` | `Local`, `Spotify` | Source des données au démarrage |
|
||||
| `Repository` | `RepositoryType` | `Local`, `Db` | Mode d'accès aux données |
|
||||
| `SpotifySeeder.ClientId` | string | - | Identifiant de l'application Spotify |
|
||||
| `SpotifySeeder.ClientSecret` | string | - | Secret de l'application Spotify |
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 6. Logging (NLog)
|
||||
@@ -175,10 +222,17 @@ Cela désactive les pages d'erreur détaillées et active les optimisations de p
|
||||
|
||||
## Ajout du pre-commit
|
||||
|
||||
Les fichiers présents dans le dossier git_hooks sont à copier dans le dossier caché .git.
|
||||
```bash
|
||||
git config core.hooksPath Webzine.Documentation/git_hooks
|
||||
```
|
||||
|
||||
Les fichiers présents dans le dossier git_hooks sont les suivants:
|
||||
Le pre-commit reformatte le code à chaque commit.
|
||||
Le commit-msg vérifie si le message du commit respecte bien les conventions du cahier des charges:
|
||||
|
||||
- le message référence un ticket
|
||||
- le message termine par un point
|
||||
- le message doit faire au moins 10 caractères
|
||||
|
||||
Il n'est pas nécessaire de les copier et de les ajouter au dossier caché .git.
|
||||
La commande ci-dessus suffit.
|
||||
Reference in New Issue
Block a user