Skip to content

Commit

Permalink
add use case to readme
Browse files Browse the repository at this point in the history
  • Loading branch information
giovannimin committed Mar 30, 2024
1 parent c4239d4 commit ce0edca
Showing 1 changed file with 110 additions and 12 deletions.
122 changes: 110 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# TellMeMoreAbout

![image](./assets/img/img_banniere.jpg)
[![Python](https://img.shields.io/pypi/pyversions/tensorflow.svg)](https://badge.fury.io/py/tensorflow)
[![LICENSE](https://img.shields.io/badge/License-Apache%202.0-yellow.svg)](https://github.com/myscale/myscaledb/blob/main/LICENSE)
[![Language](https://img.shields.io/badge/Language-Python-blue.svg)](https://isocpp.org/)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter)](https://twitter.com/)




Ce projet est un projet open source, qui a pour but de mettre en évidence des indicateurs de performance
Expand All @@ -23,24 +27,115 @@ Pour les contributions, n'hésitez pas à regarder les besoins dans les

### Pour commencer
Pour utiliser ce projet en local :
- Cloner ce repositories avec la commande `git clone https://github.com/giovannimin/TellMeMoreAbout.git`
- Cloner ce repositories avec la commande


git clone https://github.com/giovannimin/TellMeMoreAbout.git

### Pré-requis
Pour installer les dépendances de ce projet : 2. `pip install requirements.txt`
Pour installer les dépendances de ce projet

pip install requirements.txt


### Utilisation
Ce projet est destiné à être utilisé via différents modes :
- Une [API](./src/api/app.py) mise a disposition `curl -o ${player_name}_report.png -X GET http://localhost:8000/status/${player_name}`
- Une utilisation locale via la CLI `python3 ./src/main.py $player_name`
- Une utilisation automatisée contrôlée par des bots [X | Twitter](https://twitter.com)
- Une application executable avec Docker `docker-compose -f TellMeMoreAbout/docker_app/docker-compose.yml up --build`
- Une [API](./src/api/app.py) mise a disposition


curl -o path/${player_name}_report.png -X GET http://localhost:8000/status/${player_name}

- Une utilisation locale via la CLI


### Exemple d'utilisation
python3 ./src/main.py $player_name

- Une application executable avec Docker


docker-compose -f TellMeMoreAbout/docker_app/docker-compose.yml up --build

- Une utilisation automatisée contrôlée par des bots [X | Twitter](https://twitter.com)

### Exemple d'utilisation
Voici un exemple d'utilisation de l'application :
#### Requête
Pour cet exemple, nous allons requêter le rapport comparatif de [Bradley Barcola](https://fbref.com/en/players/a0d55a09/Bradley-Barcola), en ne spécifiant que son nom comme argument pour la requête.

- API :


curl -o barcola_report.png -X GET http://localhost:8000/status/$barcola
- CLI :


python3 ./src/main.py $barcola

#### Objet
Le comportement de l'application est le suivant :
```bash
UserWarning: Exact match for barcola not found.
Setting `player_name` to first search result: Bradley Barcola Maybe `player_name` could be one of them ['Malcolm Barcola']
warnings.warn(msg)
```
Pour cette requête une alerte est levée dans le cas où il y a une confusion sur le paramètre d'entrée.
Dans ce cas, la recherche sélectionne le plus probable, ici Bradley Barcola,
en précisant avoir aussi trouvé d'autres correspondances ['Malcolm Barcola'].

L'objet crée est unique et identifié par nom complet, slug_id et id.
```bash
<player: Bradley Barcola, slug_id: a0d55a09, id: 140602241202592>
```


L'objet contient les attributs suivants :

```python
{'name': 'Bradley Barcola',
'_url_page': 'https://fbref.com/en/players/a0d55a09/Bradley-Barcola',
'_standard_tables': None,
'_scouting_url': 'https://fbref.com/en/players/a0d55a09/scout/365_m1/Bradley-Barcola-Scouting-Report',
'_scouting_tables': None,
'slug_id': 'a0d55a09',
'infos': {'complete_name': 'Bradley Barcola',
'country': 'fr',
'country_img': 'https://cdn.ssref.net/req/202403271/flags/fr-2002.svg',
'img': 'https://fbref.com/req/202302030/images/headshots/a0d55a09_2022.jpg',
'club_img': 'https://cdn.ssref.net/req/202312151/tlogo/fb/e2d8892c.png',
'club': 'Paris Saint-Germain',
'age': 21,
'position': 'FW-MF',
'footed': None,
'weight': '63',
'height': '188'},
'img': 'https://fbref.com/req/202302030/images/headshots/a0d55a09_2022.jpg',
'country_img': 'https://cdn.ssref.net/req/202403271/flags/fr-2002.svg',
'club_img': 'https://cdn.ssref.net/req/202312151/tlogo/fb/e2d8892c.png',
'position': 'FW-MF',
'height': '188',
'weight': '63',
'age': 21,
'club': 'Paris Saint-Germain',
'country': 'fr',
'footed': None,
'complete_name': 'Bradley Barcola',
'minutes_played': '2301 '}
```

#### Output
Enfin, l'output de la requête est renvoyé dans le dossier [./outputs](./outputs)
ou dans le chemin spécifié lors de la requête curl sous format .png.

![image](./assets/img/exemple_output.png)

La figure ci-dessus est exprimée en centiles. Elle ordonne l'ensemble
des joueurs d même poste évoluant dans l'un des 5 grands championnats.
Les indicateurs sont normalisés par le temps.

*(ie. Parmi tous les attaquants de cotés évoluant dane le Big5,
Bradley Barcola remporte plus de duels aériens par 90 min de jeu,
que 82% des joueurs de ce panel.)*

### Sources des données
Les données utilisées sont issus de méthodes de scrapping. Les sources utilisées sont :
- **[FBRef](https://fbref.com/)**
Expand All @@ -49,15 +144,15 @@ Les données utilisées sont issus de méthodes de scrapping. Les sources utilis
Les autres sources sont les bienvenues, que ce soit à partir d'API ou de données scrappées.


#### Automatisation
### Automatisation
L'ensemble des actions automatisées sont recensés sur cette section.
Vous pourrez les trouver dans le repertoire
[workflows](https://github.com/giovannimin/TellMeMoreAbout/tree/main/.github/workflows).
- [test.yml](https://github.com/giovannimin/TellMeMoreAbout/tree/main/.github/workflows/test.yml),
cette action exécute l'ensemble des tests unitaires pytests lors de chaque push sur la branche principale.
-

#### Tests unitaires
### Tests unitaires
Les tests unitaires sont exécutés automatiquement lors de chaque push sur la branche principale et les logs ajoutés dans le volume monté sur le conteneur.
Pour les exécuter manuellement : `python3 -m pytest tests/`

Expand All @@ -83,5 +178,8 @@ sur GitHub, en ouvrant une **[New Issue](https://github.com/giovannimin/TellMeMo
Si vous avez besoin de plus d'information sur les contributions open-source,
**[ce guide](https://opensource.guide/how-to-contribute/)** explique pourquoi et comment vous impliquer.

#### Licence
[Apache License 2.0](license)

### Licence
[Apache License 2.0](license)


0 comments on commit ce0edca

Please sign in to comment.