Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johan-perso/syncpronote
Synchroniser votre emploi du temps Pronote avec votre agenda Google !
https://github.com/johan-perso/syncpronote
calendar google-agenda google-api google-calendar-api google-calendar-integration google-calendar-synchronization organization pawnote pronote pronote-api students
Last synced: about 1 month ago
JSON representation
Synchroniser votre emploi du temps Pronote avec votre agenda Google !
- Host: GitHub
- URL: https://github.com/johan-perso/syncpronote
- Owner: johan-perso
- License: mit
- Created: 2024-05-15T16:20:49.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-07T11:39:23.000Z (4 months ago)
- Last Synced: 2024-09-07T12:47:51.614Z (4 months ago)
- Topics: calendar, google-agenda, google-api, google-calendar-api, google-calendar-integration, google-calendar-synchronization, organization, pawnote, pronote, pronote-api, students
- Language: JavaScript
- Homepage:
- Size: 27.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SyncPronote
Un service en arrière-plan qui synchronise votre emploi du temps Pronote sur Google Agenda. Celui-ci vous alerte aussi lorsqu'un cours est modifié ou annulé via [ntfy](https://ntfy.sh/) (optionnel).
## Installation
> Vous aurez besoin d'une version récente de [Node.js](https://nodejs.org/en/)
> Vous pouvez installer [pm2](https://www.npmjs.com/package/pm2) pour démarrer le service en arrière-plan
> Vous pouvez installer [ntfy](https://ntfy.sh/) pour recevoir des notifications lors de certaines actions apportées à l'EDT1. Cloner le dépôt
```sh
git clone https://github.com/johan-perso/syncpronote.git
```2. Installer les dépendances
```sh
cd syncpronote
npm install
# ou "pnpm install" si vous utilisez pnpm
```3. Configurer le service
```sh
cd clinode auth-pronote.js
# Suivez les instructions pour configurer l'accès à Pronotenode auth-google.js
# Suivez les instructions pour configurer l'accès à Google Calendar
# Important : un fichier `google-credentials.json` doit exister à la racine du projet, il doit correspondre au fichier JSON téléchargé sur le dashboard Google (détails d'authentification du client, choissisez "application de bureau")nano .env
# Ajouter une ligne `GOOGLE_CALENDAR_ID=` avec l'identifiant de l'agenda Google qui contiendra les nouveaux événements (format similaire à celui d'une adresse mail)
# Vous pouvez ajouter `NTFY_URL` et `NTFY_USERNAME` + `NTFY_PASSWORD` pour recevoir des notifications lors de la modification ou suppression d'un cours. Le topic utilisé sera `pronote`.
```4. Lancer le service
```sh
npm start
# ou vous pouvez utiliser pm2 pour le lancer en arrière plan
pm2 start index.js --name "SyncPronote"
```## Fonctionnement
Toutes les demies-heures (x:00 et x:30) entre 6h et 21h, les cours sur la semaine actuelle ainsi que les trois semaines à venir seront récupérés depuis Pronote et comparés aux entrées de l'agenda Google. Les événements manquants seront ajoutés, les cours modifiés seront mis à jour et les cours annulés seront supprimés.
> Seules les entrées considérées comme des cours peuvent être mises à jour ou supprimées. Les autres événements du calendrier ne seront pas touchés.
## Personnalisation (avancé)
Personnaliser les heures des cours :
> Le fichier `utils/custom-hours` permet de changer les heures de début et de fin des cours annoncées par Pronote. Vous devrez modifier les valeurs pour les faire correspondre à votre emploi du temps.Personnaliser le nom des matières :
> Vous pouvez modifier le fichier `utils/classnames.js` pour personnaliser le nom affiché dans votre agenda pour chacune de vos matières. Certaines matières sont déjà préconfigurées et seront affichées dans votre agenda sans modification à effectuer.## Licence
MIT © [Johan](https://johanstick.fr). Soutenez moi via [Ko-Fi](https://ko-fi.com/johan_stickman) ou [PayPal](https://paypal.me/moipastoii) si vous souhaitez m'aider 💙