https://github.com/flozone/test_fastapi
Test perso pour découvrir FastApi
https://github.com/flozone/test_fastapi
fastapi python test
Last synced: about 2 months ago
JSON representation
Test perso pour découvrir FastApi
- Host: GitHub
- URL: https://github.com/flozone/test_fastapi
- Owner: FloZone
- Created: 2024-11-26T15:19:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-28T09:40:44.000Z (about 1 year ago)
- Last Synced: 2025-03-28T10:42:17.988Z (about 1 year ago)
- Topics: fastapi, python, test
- Language: Python
- Homepage:
- Size: 456 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Test SC
## Sujet
### Description
Le principe du test est de faire un sous-ensemble d'une plateforme de réservation de ressources, ce qui fait partie de notre quotidien.
Une ressource est composée de:
* un libellé
* un type de ressource
* une localisation
* une capacité (nombre de personnes)
Une réservation est composée de:
* un titre
* une date de début
* une date de fin
### Règles
Niveau 1:
* Créer, modifier et supprimer des ressources
* Tous les utilisateurs peuvent réserver une ressource
* Un utilisateur peut voir ses réservations passés, en cours et à venir
* Un utilisateur peut annuler ses réservations en cours ou à venir
* Un utilisateur peut modifier ses réservations à venir
Niveau 2:
* Mise en place de l'authentification sur l'API
* Permettre à un administrateur de gérer les ressources
* Permettre à un utilisateur de lister les ressources
* Permettre à un administrateur d'accéder à toutes les réservations
* Filtrage sur la liste des ressources (type et localisation)
## Dev
### First install
Copy the `.env.example` file to a `.env` file and set your database URL and your secret key for JWT token validation.
```
pyenv install 3.13.0
pyenv virtualenv 3.13.0 test_fastapi
pyenv activate test_fastapi
```
```
poetry config virtualenvs.in-project true
poetry install
poetry run alembic upgrade head
```
### Start
```
# Start DB container
docker compose up -d
# Start FastAPI
cd app && poetry run fastapi dev main.py
```
### Utils
```
# Format command manually
poetry run pre-commit run
poetry run pre-commit run --all-files
# Create migration file
poetry run alembic revision --autogenerate -m "create XXX table"
# Apply migrations
poetry run alembic upgrade head
# Show migration status
poetry run alembic history --verbose
# Run tests
poetry run pytest tests/* --verbose -s -x --cov=app --cov-report xml:coverage.xml
# Run SonarQube scanner
sonar-scanner
```