Newer
Older
# Web Fullstack Lab (WIP)
Un projet utilisant API Platform et Next.js afin de visualiser des données des impôts locaux issues du site [du gouvernement](https://www.data.gouv.fr/datasets/impots-locaux-fichier-de-recensement-des-elements-dimposition-a-la-fiscalite-directe-locale-rei-3).
L'api est basée sur le framework Symfony et les graphiques sont rendus avec D3.
## Auteurs
|Prénom | Nom | Numéro Etudiant |
|---|---|---|
|Antonin|Huser|20191041|
|Tristan|Cherrier|20241682|
## Stacks
- [API Platform](https://api-platform.com)
Tristan Cherrier
a validé
Tristan Cherrier
a validé
Tristan Cherrier
a validé
```sh
git clone https://www-apps.univ-lehavre.fr/forge/ct241682/web_fullstack_lab.git
Tristan Cherrier
a validé
```
### Lancer l'api
Se rendre dans le dossier de l'api.
```sh
cd api-platform-4.1.0
```
Construire les dockers.
```sh
sudo docker compose build --no-cache
Tristan Cherrier
a validé
```
Lancer les dockers.
```sh
sudo docker compose up --wait
Tristan Cherrier
a validé
```
### Préparer l'api
Une fois les docker lancés, on peut peupler la base de données avec les données avec les commandes suivantes :
- Téléchargement et préparation des fichiers :
```sh
sudo docker compose exec php bin/console app:prepare-data
Tristan Cherrier
a validé
```
Cette commande va télécharger les dossiers zip depuis le site data.gouv.fr, récupérer automatiquement les fichiers voulus, les renommer, et convertir le fichier de données principal en csv (plus pratique à manipuler. separator ";") pour chaque année définie (2018-2022 inclus).
Tristan Cherrier
a validé
- Peuplement de la table des départements
```sh
sudo docker compose exec php bin/console app:fill-depts
Tristan Cherrier
a validé
```
La commande suivante échouera sans la liste des départements existante.
- Importation des données depuis les csv :
```sh
sudo docker compose exec php bin console app:import-xlsx --no-debug
Tristan Cherrier
a validé
```
L'argument --no-debug est nécessaire ici pour éviter de saturer la mémoire.
Tristan Cherrier
a validé
L'api est maintenant prête avec les données et disponible à l'adresse :
Créer la base de test
```
sudo docker compose exec php bin/console doctrine:database:create --env=test
```
Créer les tables
```
sudo docker compose exec php bin/console doctrine:schema:create --env=test
```
Load les fixtures en base (données de test)
```
sudo docker compose exec php bin/console doctrine:fixtures:load --env=test
```
Lancer les tests
```
sudo docker compose exec php php bin/phpunit
```
### Lancer le site web
Se rendre dans le dossier de l'application, web.
```sh
cd .. && cd /my-app
```
Télécharger les dépendances.
```sh
npm install
```
Pour ce projet, on lance l'environnement de développement, simplement pour tester.
```sh
npm run dev
```