Un planning universitaire moderne réalisé par @kernoeb.
Si votre université (ou autre!) accepte le format ICS
pour les calendriers, n'hésitez pas à faire une pull request en modifiant le fichier static/url.json
- en respectant à la lettre le schéma déjà présent ! 😉
Note : dans la plupart des cas, vous devrez exporter votre calendrier au format iCalendar, et récupérer l'url obtenue (veillez à mettre un calendrier qui dure longtemps!).
- Mode hors connexion
- Couleurs par catégorie (Amphi, TD, TP, etc.)
- Mode jour / semaine / mois
- Zoom sur un cours
- Changement d'université / spécialité (cookie)
- Thème clair / thème sombre (cookie)
- Actualisation du planning au chargement, au focus de la page, ainsi que toutes les 2 minutes
N'hésitez pas à créér une issue ou à me contacter sur Telegram (@kernoeb) ou Discord (kernoeb#7737) pour plus d'infos, pour me notifier d'une erreur ou proposer une fonctionnalité !
Le planning est hébergé sur un Heroku, et développé en Nuxt.js (et donc Vue.js).
Nuxt.js, c'est du server-side rendering (SSR), donc le planning est généré côté serveur.
Il existe aussi une api : /api/getCalendar
, qui fetch côté serveur le calendrier au format .ics
depuis l'url donnée dans static/url.json
(et vérifie l'existence du calendrier, comme un contrat).
Ce fichier est ensuite transformé en .json
.
Note : l'url n'est pas directement fetch dans la méthode $fetch de Nuxt.js pour éviter les problèmes de CORS.
L'application est une PWA
, et fonctionne donc hors connexion (à condition d'être déjà venu sur le planning, ça se sauvegarde dans le cache !)
Pour finir, afin d'éviter les erreurs serveurs (http 500) côté université, les fichiers json sont sauvegardés dans une base de donnée PostgreSQL (Heroku). Si une erreur est présente, les données seront donc récupérées dans cette base de donnée.
Config Vars :
- DATABASE_URL | postgres://....
- HOST | 0.0.0.0
- NODE_ENV | production
- NPM_CONFIG_PRODUCTION | false