Gestion mutualisée de tous les événements sanitaires
- Technologies
- Installation et configuration
- Récupération du code source
- Python 3
- Création de l'environnement virtuel Python
- Activation de l'environnement virtuel Python
- Installation de pip-tools
- Installation des dépendances Python
- Création de la base de données
- Variables d'environnement
- Initialisation de la base de données
- Creation d'un super utilisateur pour l'accès à Django Admin
- Démarrer le serveur de développement
- Gestion des dépendances Python
- Tests
- Recette
- Production
- CRON
- Git
- PostgreSQL
- Python 3
- Django
- HTML, CSS
- Système de Design de l'État DSFR
- JavaScript (AlpineJS, vanilla)
- Pytest
- Playwright (tests E2E)
- Ruff (linter/formatter)
- Pre-commit
- DjHTML (indenter)
- Sentry
git clone git@github.com:betagouv/seves.git
Assurez vous d'avoir Python 3 d'installé.
python3 -m venv venv
source venv/bin/activate
pip install pip-tools
pip-sync
Créez la base de données via un client PosgreSQL ou la ligne de commande psql
(exemple: seves
).
Copiez le fichier d'exemple fourni (.env.dist
) et définissez les variables d'environnement :
cp .env.dist .env
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver
Se rendre sur http://localhost:8000/
Les dépendances sont gérées via pip-tools.
Pour ajouter une nouvelle dépendance au projet :
- ajoutez la dépendance dans le fichier requirements.in
- executez la commande
pip-compile
(pour mettre à à jour le fichierrequirements.txt
) - executez la commande
pip-sync
(installation de la nouvelle dépendance)
Suivre la documentation de minio sur le hub docker, en résumé pour avoir le stockage persistent:
sudo mkdir /mnt/data
sudo chown votre_user:votre_groupe /mnt/data/
podman run -v /mnt/data:/data -p 9000:9000 -p 9001:9001 quay.io/minio/minio server /data --console-address ":9001"
Une fois dans la console Web de minio vous pouvez vous créer une clé d'accès ainsi qu'un bucket en local.
Configurez ensuite votre fichier .env avec STORAGE_ENGINE="storages.backends.s3.S3Storage"
et les tokens d'authentification (cf exemple dans .env.dist).
Le backend d'authentification Agricoll nécessite l'utilisation du protocole HTTPS ainsi que d'URL spécifique (impossible de se connecter depuis localhost par exemple).
Pour faciliter le dévellopement au quotidien il est possible d'utiliser un autre backend OIDC en changeant les variables d'environnement.
Un exemple est donné dans le fichier .env.dist
, les informations sur les logins et mots de passe, ainsi que les endpoints pour le backend sont disponibles dans la documentation.
Les tests E2E sont réalisés avec la bibliothèque Playwright (installé précédemment).
Avant de pouvoir lancer les tests E2E, il faut installer les navigateurs (source) :
playwright install
Lancez les tests :
python -m pytest
git push scalingo main
Création d'un super user (commande CLI scalingo à éxecuter en local) : scalingo --app my-app run python manage.py createsuperuser
Sur Scalingo, des crons sont configurés via Scalingo Scheduler (cf. fichier cron.json à la racine du projet). Ils sont monitorés via Sentry Cron Monitors.
scalingo --app APP_NAME run --file FILE_PATH python manage.py import_contacts /tmp/uploads/FILE_NAME.csv