Louis Mazin 5d5c4838f1 test
2026-10-02 16:09:10 +02:00
2026-10-02 16:09:10 +02:00
2026-10-02 16:09:10 +02:00
2026-10-02 15:54:40 +02:00
2026-10-02 16:09:10 +02:00
2026-10-02 16:09:10 +02:00
2026-10-02 15:54:40 +02:00

Planning

Petit site de planning public + demandes de disponibilité, avec une administration séparée.

Fonctionnalités

Public

  • consulter le planning semaine par semaine ;
  • voir l'état prévu : Disponible, Occupé ou Indisponible ;
  • envoyer une demande de disponibilité immédiate sans compte ;
  • suivre la réponse automatiquement avec un lien/token privé ;
  • voir une durée de disponibilité si l'admin en indique une.

Administration

  • connexion par compte admin ;
  • créer une plage sur un jour ou plusieurs jours ;
  • modifier/supprimer les plages directement depuis le planning ;
  • recevoir et traiter les demandes ;
  • accepter pour 15 min, 30 min, 1 h, une durée personnalisée, ou sans durée ;
  • refuser avec un message optionnel ;
  • actualisation automatique des demandes toutes les 15 secondes.

Stack

  • Frontend : React + Vite + Tailwind CSS
  • Backend : Django + Django REST Framework + JWT
  • Base : MariaDB/MySQL externe
  • Reverse proxy du frontend : Nginx
  • Notifications optionnelles : ntfy

Ports

  • Frontend : 1025
  • Backend : 1031

Le frontend proxy automatiquement /api/ vers le backend. Pour le domaine public, le reverse proxy principal peut donc pointer uniquement sur :

http://127.0.0.1:1025

Le backend reste aussi directement disponible sur :

http://127.0.0.1:1031

Lancement

Le fichier .env fourni au déploiement contient la configuration réelle. Il est volontairement ignoré par Git.

docker compose up -d --build

Logs :

docker compose logs -f backend
docker compose logs -f frontend

Mise à jour :

git pull
docker compose up -d --build

Compte admin

Au démarrage du backend, les variables suivantes créent ou mettent à jour automatiquement le compte admin :

ADMIN_USERNAME=...
ADMIN_PASSWORD=...
ADMIN_FIRST_NAME=...
ADMIN_LAST_NAME=...

L'administration est accessible sur :

/admin

Notifications ntfy

Le site fonctionne même sans notification externe.

Pour activer les notifications :

  1. installer l'app ntfy sur le téléphone ;
  2. choisir un nom de topic difficile à deviner ;
  3. s'abonner à ce topic dans l'app ;
  4. renseigner ce même topic dans .env :
NTFY_SERVER=https://ntfy.sh
NTFY_TOPIC=mon-topic-prive
  1. relancer le backend :
docker compose restart backend

Une nouvelle demande publique déclenche alors une notification avec un lien vers /admin/requests.

Gitea

Dépôt prévu :

https://gitea.louismazin.ovh/LouisMazin/Planning

Premier push depuis le dossier du projet :

git init
git branch -M main
git remote add origin https://gitea.louismazin.ovh/LouisMazin/Planning.git
git add .
git commit -m "Initial planning app"
git push -u origin main

.env n'est pas envoyé sur Git grâce au .gitignore. Garde-le uniquement sur le serveur.

Description
No description provided
Readme 252 KiB
Languages
JavaScript 87.9%
Python 9.8%
CSS 1.4%
Shell 0.6%
Dockerfile 0.2%
Other 0.1%