diff --git a/Webzine.Documentation/Installation/equipe 1 - dossier de configuration.md b/Webzine.Documentation/Installation/equipe 1 - dossier de configuration.md index e69de29..9d202cb 100644 --- a/Webzine.Documentation/Installation/equipe 1 - dossier de configuration.md +++ b/Webzine.Documentation/Installation/equipe 1 - dossier de configuration.md @@ -0,0 +1,171 @@ +# Dossier de configuration — Projet Webzine + +**Équipe 1** +**Formation :** Développement .NET niveau 1 / Dr1-P4 +**Date :** Mars 2026 + +--- + +## Table des modifications + +| Date | Auteur | +|------|--------| +| 25/03 | Clément Bobin | + +--- + +## 1. Prérequis + +Avant de lancer l'application, assurez-vous d'avoir installé les outils suivants : + +| Outil | Version minimale | Lien | +|-------|-----------------|------| +| .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 | — | + +--- + +## 2. Récupérer le projet + +```bash +git clone +cd Webzine +``` + +--- + +## 3. Structure des projets + +Le projet est organisé en plusieurs bibliothèques de classes et une application web : + +``` +Webzine.sln +├── Webzine.Entity/ → Entités du domaine (modèles) +├── Webzine.Entity.Tests/ → Tests unitaires MSTest +├── Webzine.Repository.Contracts/ → Interfaces des repositories +├── Webzine.Repository/ → Implémentations des repositories +├── Webzine.Business.Contracts/ → Interfaces de la couche métier +├── Webzine.Business/ → Logique métier +├── Webzine.EntitiesContext/ → Contexte Entity Framework (à venir) +├── Webzine.Documentation/ → Documentation, StyleCop, rapports +└── Webzine.WebApplication/ → Application ASP.NET Core MVC (.NET 10) +``` + +--- + +## 4. Lancer l'application + +### Via la ligne de commande + +```bash +cd Webzine.WebApplication +dotnet run +``` + +L'application est accessible par défaut à : +- **HTTP :** http://localhost:5038 +- **HTTPS :** https://localhost:7095 + +Ces URLs sont configurées dans `Webzine.WebApplication/Properties/launchSettings.json`. + +### Via Visual Studio + +Ouvrir `Webzine.sln`, sélectionner le profil `https` ou `http`, puis lancer avec F5 ou Ctrl+F5. + +--- + +## 5. Configuration applicative + +Le fichier principal de configuration est `Webzine.WebApplication/appsettings.json` : + +```json +{ + "Webzine": { + "NombreDerniereChronique": 3, + "NombreDeTopTitres": 3 + } +} +``` + +| 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`. + +--- + +## 6. Logging (NLog) + +La configuration du logging se trouve dans `Webzine.WebApplication/nlog.config`. + +Les logs sont écrits dans le dossier `/Logs/` avec deux fichiers : + +| Fichier | Contenu | +|---------|---------| +| `nlog-all-{date}.log` | Tous les logs (Debug et supérieur pour l'application) | +| `nlog-own-{date}.log` | Logs applicatifs avec URL de la requête | + +Les logs de la console sont également activés, utiles lors du développement. + +**Niveaux configurés :** +- `Webzine.WebApplication.*` → Debug et supérieur +- `Microsoft.*` → Warning et supérieur (pour réduire le bruit) +- `Microsoft.Hosting.Lifetime*` → Info (pour voir le démarrage de l'appli) + +Pour modifier le niveau de log minimum sans recompiler, éditer la règle correspondante dans `nlog.config`. NLog recharge automatiquement sa configuration (`autoReload="true"`). + +--- + +## 7. Lancer les tests + +```bash +cd Webzine.Entity.Tests +dotnet test +``` + +Ou depuis la solution complète : + +```bash +dotnet test Webzine.sln +``` + +Les tests vérifient les contraintes de validation (annotations DataAnnotations) sur toutes les entités. Ils s'exécutent en parallèle au niveau des méthodes (`[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]`). + +**Résultat attendu :** 55 tests passants, 0 échec. + +--- + +## 8. Routes principales + +| URL | Contrôleur | Description | +|-----|-----------|-------------| +| `/` | `AccueilController.Index` | Page d'accueil | +| `/artiste/{nom}` | `ArtisteController.Index` | Page d'un artiste | +| `/titre/{id}` | `TitreController.Details` | Détail d'un titre | +| `/titre/style/{style}` | `TitreController.Style` | Titres par style | +| `/recherche` (POST) | `RechercheController.Index` | Résultats de recherche | +| `/Administration/Dashboard` | `DashboardController.Index` | Tableau de bord admin | +| `/Administration/Artiste` | `ArtisteController` (admin) | Gestion des artistes | +| `/Administration/Titre` | `TitreController` (admin) | Gestion des titres | +| `/Administration/Style` | `StyleController` | Gestion des styles | +| `/Administration/Commentaire` | `CommentaireController` | Gestion des commentaires | + +--- + +## 10. Variables d'environnement + +L'environnement est contrôlé par la variable `ASPNETCORE_ENVIRONMENT`. En développement, elle vaut `Development` (configuré dans `launchSettings.json`). + +En production, positionner : + +```bash +export ASPNETCORE_ENVIRONMENT=Production +``` + +Cela désactive les pages d'erreur détaillées et active les optimisations de performance ASP.NET Core. \ No newline at end of file diff --git a/Webzine.Documentation/Rapport/equipe 1 - rapport.md b/Webzine.Documentation/Rapport/equipe 1 - rapport.md index 76f195f..d6776c5 100644 Binary files a/Webzine.Documentation/Rapport/equipe 1 - rapport.md and b/Webzine.Documentation/Rapport/equipe 1 - rapport.md differ