Ce projet à pour but de permettre à un utilisateur de générer une url de calendrier en ligne à partir de la liste des événements churros auquels un utilisateur de l'appli à accès.
Ce calendrier peut ensuite être ajouté à votre google agenda et se mettra à jour automatiquement.
- Seuls les 10 derniers événements dans l'ordre chronologique sont affichés actuellement
- Pas de nettoyage automatique des données inutiles de la base de donnée :
- Il faudra penser à supprimer manuellement les vieux tokens périmés au fil du temps (on peut s'aider du champs
creation_date
de la table des tokens) - Il faudra penser à supprimer manuellement les url de calendrier inutilisées (on peut s'aider du champs
last_access_date
de la table des calendriers qui est mis à jour à chaque fois que quelqu'un fait une requête sur cette url de calendrier)
- Il faudra penser à supprimer manuellement les vieux tokens périmés au fil du temps (on peut s'aider du champs
- Risque d'évolution de l'api dans les versions futures
- On peut pas choisir l'emplacement du fichier .sql si on veut utiliser sqlite3 pour la base de donnée
L'api REST est composée de 2 requêtes:
GET /calendars/<calendar_uid>
: récupérer le contenu du calendrier qui a pour uid "calendar_uid" au format .ics. C'est cette url qu'il faut ajouter à votre agenda en ligne. Si calendar_uid == public : renvoie le calendrier des événements publicsPOST /register
data="<churros_token>"
: enregistrer un nouveau token churros dans la base de donnée et renvoie l'uid du calendrier de l'utilisateur à qui appartient le token. Si un calendrier existait déjà pour cet utilisateur, l'uid de son calendrier ne change pas.
(cette section sera mise à jour dans le futur)
- Utiliser dune pour installer les dépendances du projet.
- Compiler le projet avec
dune build
- Executer le projet avec
dune exec bin/main.exe
Vous pouvez télécharger, compiler et exécuter directement le projet avec nix:
nix run git+https://git.inpt.fr/inp-net/churros-ecosystem/online-calendar.git
vous pouvez également ajouter l'exécutable au path temporairement avec:
nix shell git+https://git.inpt.fr/inp-net/churros-ecosystem/online-calendar.git
(la configuration de la base de donnée va probablement changer dans le futur)
Pour lancer le projet et utiliser une base de donnée postgresql, utiliser les variables d'environnement comme suit:
PGHOST=localhost PGPORT=5455 PGDATABASE=postgresDB PGUSER=postgresUser PGPASSWORD=postgresPW churros_online_calendar
Les variables PGUSER
et PGPASSWORD
ne doivent pas être renseignée si votre base de donnée ne nécessite pas d'authentification.
Si aucune variable d'environnement n'est passée à l'exécutable, une base de donnée sqlite par défaut sera créée et sera accessible dans /tmp/test.sql
.
L'utilisation de cette base de donnée est plutôt à réserver pour du developpement. Elle est déconseillée en production.