diff --git a/README.md b/README.md index 830b7b5..14cb0fd 100755 --- a/README.md +++ b/README.md @@ -43,12 +43,37 @@ Ce dépôt contient une application Blazor conçue pour faciliter l'administrati 4. **Sécurité Intégrée**: Utilisation des fonctionnalités de sécurité de Blazor pour protéger les données sensibles. +## Les attendus du projet +* [x] Implementation of a data visualization page with pagination (2 points) +* [x] Page for adding an element with validation (2 point) +* [x] Edit page of an element without validation (2 point) +* [x] Deletion of an element with a confirmation (2 point) +* [ ] Complex component (5 point) +* [x] Use API (Get / Insert / Update / Delete) (3 point) +* [x] IOC & DI use (4 point) +* [x] Localization & Globalization (at least two languages) (1 point) +* [ ] Use of the configuration (1 point) +* [ ] Logs (2 points) +* [x] Code cleanliness (2 point) +* [x] GUI (Global design, placement of buttons, ...) (2 point) +* [x] Code location (No code in views) (2 point) +* [x] The Readme (2 points) +* [x] Description of how the client solution works (code-level illustration) (6 points) +* [x] Merge request (2 points) + +## Ce que nous avons fait +* [x] Les listing dans la page de tickets et d'Activités +* [x] La modification dans la page de tickets +* [x] La suppression dans la page de tickets +* [x] Le get by id dans la page de tickets +* [x] L'implementation de la partie API et du data service dans la pages d'Activités +* [x] L'authentification dans la branch `issue_auth` mais des problèmes persistent (les actions des services ne sont pas gerer par l'authentification) +* [ ] Le data service dans toutes les pages +* [ ] La répartitions des fonctionnalités de la page de tickets sur les autres pages ## Répartition du Git -[**Sources**](Sources/) : **Code de l'application** - -[**Documents**](Documents/README_DOCUMENTS.md) : **Documentation de l'application et diagrammes** +[**Sources**](Sources/HeartTrack) : **Code de l'application** --- @@ -61,7 +86,7 @@ Le projet HeartTrack utilise un modèle de flux de travail Git (Gitflow) pour or ### API PHP L'application Blazor utilise une API en PHP pour récupérer les données depuis la base de données. -Pour l'utiliser, vous devez faire tourner notre projet PHP disponible [ici](https://codefirst.iut.uca.fr/git/HeartDev/Web/src/branch/API_tests) sur votre machine locale. Pour ensuite changer le type de skockage par `API` dans le fichier `monfichier.cs` dans le dossier `Data` de l'application Blazor. +Pour l'utiliser, vous devez faire tourner notre projet PHP disponible [ici](https://codefirst.iut.uca.fr/git/HeartDev/Web/src/branch/API_tests) sur votre machine locale. Pour ensuite changer le type de skockage `ActivityDataServiceFactice` par `ActivityDataServiceAPI` et vice versa dans le fichier `Program.cs` de l'application Blazor en ligne 24 `Add Data Services`. ### Prérequis @@ -74,30 +99,19 @@ Pour l'utiliser, vous devez faire tourner notre projet PHP disponible [ici](http 1. Clonez ce dépôt sur votre machine locale : ```bash - git clone https://github.com/votre-utilisateur/Blazor-User-Admin.git + git clone https://codefirst.iut.uca.fr/git/HeartDev/Admin.git ``` -2. Accédez au répertoire du projet : - - ```bash - cd Blazor-User-Admin - ``` +2. Lacer Visual Studio et ouvrez le projet `HeartTrack.sln` dans le dossier `Sources/HeartTrack`. -3. Lancez l'application avec la commande : - - ```bash - dotnet run - ``` +Pour des raison de manque de la partie php, vous ne pourrez utiliser l'application qu'en localStorage. Il est cependant possible de tester l'aaplication avec la partie API en PHP en faisant tourner en local le projet php disponible [ici](https://codefirst.iut.uca.fr/git/HeartDev/Web/src/branch/API_tests) et en changant le type de skockage `ActivityDataServiceFactice` par `ActivityDataServiceAPI` dans le fichier `Program.cs` de l'application Blazor en ligne 24 `Add Data Services` et importer les dépendances en conséquence. -4. Ouvrez votre navigateur et accédez à [https://localhost:5001](https://localhost:5001) pour voir l'application en action. -Pour des raison de manque de la partie php, vous ne pourrez utiliser l'application qu'en localStorage. Il est cependant possible de tester l'aaplication avec la partie API en PHP en faisant tourner en local le projet php disponible [ici](https://codefirst.iut.uca.fr/git/HeartDev/Web/src/branch/API_tests) et en changant le type de stockage dans le fichier `monfichier.cs` dans le dossier `Data` de l'application Blazor. Comme ceci : ```csharp -public class MonFichier -{ - public static string TypeStockage = "API"; -} +// Add Data Services +builder.Services.AddScoped(); +builder.Services.AddScoped(); ``` ### Fabriqué avec diff --git a/Sources/HeartTrack/Pages/Tickets.razor.cs b/Sources/HeartTrack/Pages/Tickets.razor.cs index 1e03850..e5dde1c 100644 --- a/Sources/HeartTrack/Pages/Tickets.razor.cs +++ b/Sources/HeartTrack/Pages/Tickets.razor.cs @@ -45,7 +45,7 @@ namespace HeartTrack.Pages if (currentData == null) { // this code add in the local storage the fake data (we load the data sync for initialize the data before load the OnReadData method) - var originalData = Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-tickets.json").Result; + var originalData = Http.GetFromJsonAsync($"{NavigationManager.BaseUri}data/fake-tickets.json").Result; await LocalStorage.SetItemAsync("data", originalData); } @@ -94,28 +94,5 @@ namespace HeartTrack.Pages NavigationManager.NavigateTo("tickets", true); } - - /*private void OnShowsOpenTicketClicked() - { - foreach (var ticket in tickets) - { - if (!ticket.isCheck) - { - sortedTickets.Add(ticket); - } - } - - dataGrid.Data = sortedTickets; - dataGrid.Refresh(); - } - - private void OnResetDataClicked() - { - dataGrid.Data = tickets; - dataGrid.Refresh(); - }*/ - - - } } diff --git a/Sources/HeartTrack/Program.cs b/Sources/HeartTrack/Program.cs index 56bcd6e..893584d 100644 --- a/Sources/HeartTrack/Program.cs +++ b/Sources/HeartTrack/Program.cs @@ -9,13 +9,7 @@ using HeartTrack.Services.ActivityDataService; using HeartTrack.Services.TicketDataService; using MudBlazor.Services; using HeartTrack.Services.ActivityDataServiceFactice; -using HeartTrack.Services.ReportDataServiceFactice; using HeartTrack.Services.TicketDataServiceFactice; -<<<<<<< HEAD -using HeartTrack.Services.ActivityDataServiceFactice; -======= -using HeartTrack.Services.UserDataServiceFactice; ->>>>>>> a4ae9e1426746a50a8434f2b803f2059d60fcb29 var builder = WebApplication.CreateBuilder(args); @@ -27,17 +21,9 @@ builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddHttpClient(); -// Add Services -<<<<<<< HEAD -builder.Services.AddScoped(); -builder.Services.AddScoped(); -======= -builder.Services.AddScoped(); +// Add Data Services builder.Services.AddScoped(); -builder.Services.AddScoped(); builder.Services.AddScoped(); -builder.Services.AddScoped(); ->>>>>>> a4ae9e1426746a50a8434f2b803f2059d60fcb29 builder.Services.AddBlazorise() @@ -50,7 +36,6 @@ builder.Services.AddControllers(); // Add the localization to the app and specify the resources path builder.Services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; }); -<<<<<<< HEAD // Configure the localtization builder.Services.Configure(options => { @@ -77,9 +62,6 @@ builder.Services.AddControllers(); builder.Services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; }); // Configure the localtization -======= -// Configure the localization ->>>>>>> a4ae9e1426746a50a8434f2b803f2059d60fcb29 builder.Services.Configure(options => { // Set the default culture of the web site diff --git a/Sources/HeartTrack/wwwroot/data/fake-reports.json b/Sources/HeartTrack/wwwroot/data/fake-reports.json deleted file mode 100644 index c58b50f..0000000 --- a/Sources/HeartTrack/wwwroot/data/fake-reports.json +++ /dev/null @@ -1,178 +0,0 @@ -[ - { - "id": 1, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 2, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 3, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 4, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 5, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 6, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 7, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 8, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 9, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 10, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 11, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 12, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 13, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 14, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 15, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 16, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 17, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 18, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 19, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 20, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 21, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - }, - { - "id": 22, - "username": "johndoe", - "reported_user": "erickol", - "raison": "Jvais dire wallah", - "description": "Wallah c`est la description", - "image": "oui.png" - } -] \ No newline at end of file diff --git a/Sources/HeartTrack/wwwroot/data/fake-users.json b/Sources/HeartTrack/wwwroot/data/fake-users.json deleted file mode 100644 index a6c5378..0000000 --- a/Sources/HeartTrack/wwwroot/data/fake-users.json +++ /dev/null @@ -1,379 +0,0 @@ -[ - { - "id": 1, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2018-12-27", - "isban": true - }, - { - "id": 2, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2021-06-29", - "isban": true - }, - { - "id": 3, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2021-04-09", - "isban": true - }, - { - "id": 4, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2022-11-20", - "isban": true - }, - { - "id": 5, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2021-02-20", - "isban": true - }, - { - "id": 6, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2014-02-17", - "isban": true - }, - { - "id": 7, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2020-07-14", - "isban": true - }, - { - "id": 8, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2018-02-21", - "isban": false - }, - { - "id": 9, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2014-07-31", - "isban": true - }, - { - "id": 10, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2019-10-02", - "isban": true - }, - { - "id": 11, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2015-07-26", - "isban": false - }, - { - "id": 12, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2020-10-23", - "isban": false - }, - { - "id": 13, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2014-11-03", - "isban": true - }, - { - "id": 14, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2014-01-31", - "isban": false - }, - { - "id": 15, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2022-04-12", - "isban": false - }, - { - "id": 16, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2018-07-22", - "isban": false - }, - { - "id": 17, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2017-04-04", - "isban": true - }, - { - "id": 18, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2015-08-15", - "isban": true - }, - { - "id": 19, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2022-04-10", - "isban": false - }, - { - "id": 20, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2020-02-09", - "isban": false - }, - { - "id": 21, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2017-02-18", - "isban": false - }, - { - "id": 22, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2023-06-25", - "isban": false - }, - { - "id": 23, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2017-09-27", - "isban": true - }, - { - "id": 24, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2015-02-01", - "isban": true - }, - { - "id": 25, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2017-05-28", - "isban": true - }, - { - "id": 26, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2022-06-11", - "isban": true - }, - { - "id": 27, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2019-08-08", - "isban": true - }, - { - "id": 28, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2015-01-29", - "isban": false - }, - { - "id": 29, - "username": "johndoe", - "nom": "Doe", - "prenom": "John", - "email": "john.doe@example.com", - "password": "password123", - "sexe": "male", - "taille": 1.76, - "poids": 56.3, - "birthdate": "2020-08-21", - "isban": false - } -] \ No newline at end of file