# Documentation Projet Alexandre Javet
## Summary
1. Usecases Diagram
2. Activity Diagram
3. Database Diagrams
4. Original frontend template
5. Frontend end result
6. Documentation
## Usecases diagram

## Activity diagram (Session Management)

## Database diagrams


## Original frontend template

## Frontend end result (Example pictures)


## Documentation
### Lancement du projet + Github du projet
Le projet se trouve sur ce **[github](https://github.com/JaavLex/shooting-session-app)**.
Bon je pense pas avoir besoin d'avoir besoin à expliquer comment lancer le projet, mais tout de même : Pour lancer le frontend + backend il suffit de faire un `dotnet run`dans le root du projet ou de tout simplement le lancer depuis un IDE comme **Visual Studio ou Rider.**
### A quoi sert le site ?
C'est un site web single use (un seul utilisateur) de gestion de sessions de tir. L'utilisateur peut ici **enregistrer les armes/munitions qu'ils possède, les stands de tirs auquel il va le plus souvent, ainsi que les gens qui l'accompagne de manière régulière ou pas**. Une fois ces choses enregistrées il peut **garder un historique de toute les sessions de tirs qu'il a effectué**, le prix qu'elles ont coutées, les gens qui y ont participé, ainsi que l'équipement amené.
Cela servirais par exemple à si des gens avaient été invité a une session, de savoir à qui envoyer une demande twint par exemple pour diviser le prix de la session par tout les participants.
### Fonctionnalités
* Création de sessions
* Vue d'un historique de sessions
* Voir les détails des sessions
* Modification et suppression des sessions
* CRUD sur toutes les sous pages/tables (Armes, Munitions, Personnes, Stands de tir)
* Viewer d'image sur les munitions et les armes.
### Chemins du site web
#### Misc.
- https://localhost:5001/swagger (Swagger)
#### Frontend
- https://localhost:5001 (Home page)
- https://localhost:5001/addsession (Page d'ajout de session)
- https://localhost:5001/updatesession/(ID) (Page de modification de session)
- https://localhost:5001/weapons (Home page armes)
- https://localhost:5001/addweapon (Page d'ajout d'armes)
- https://localhost:5001/updateweapon/(ID) (Page de modification d'armes)
- https://localhost:5001/ammos (Home page munitions)
- https://localhost:5001/addammo (Page d'ajout de munition)
- https://localhost:5001/updateammo/(ID) (Page de modification de munitions)
- https://localhost:5001/persons (Home page participants)
- https://localhost:5001/addperson (Page d'ajout de participants)
- https://localhost:5001/updateperson/(ID) (Page de modification de participants)
- https://localhost:5001/ranges (Home page stands de tir)
- https://localhost:5001/addrange (Page d'ajout de stands de tir)
- https://localhost:5001/updaterange/(ID) (Page de modification de stands de tir)
#### API
Voir Swagger :b (C'est un peu long de tout recopier).
### Features manquantes
- Tests unitaires
- Utilisation de services angular (J'ai perdu un peu de temps sur d'autres choses, et ça me prendrait trop longtemps avec le temps qui me reste de refactor les requêtes API pour le mettre dans un service.)
- Dans la home page (sessions) le fait de cliquer sur une des armes/munitions/personnes ne te ramène pas sur les details de celui-ci. Pas trop le temps de le faire malheuresement.
- Certains retours de code HTTP quand on fait des requêtes à l'API.
- Mon weekend :,(