From d2a1e1cbdd5907377b3f8b21ff9646d369b309e6 Mon Sep 17 00:00:00 2001 From: mirage <119869686+ClementBobin@users.noreply.github.com> Date: Wed, 25 Mar 2026 10:40:39 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20ajouter=20le=20dossier=20de=20configura?= =?UTF-8?q?tion=20et=20le=20rapport=20d'=C3=A9quipe=20pour=20le=20projet?= =?UTF-8?q?=20Webzine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipe 1 - dossier de configuration.md | 171 ++++++++++++++++++ .../Rapport/equipe 1 - rapport.md | Bin 958 -> 17678 bytes 2 files changed, 171 insertions(+) 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 76f195f06a720f444561f14d991a99eaafbbe43c..d6776c5bba2402ac4a215fbeaa24ce725b3002a2 100644 GIT binary patch literal 17678 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 S8SW$&F=Sp$O~srGA&cMoSWyN5