Pronotif est une application web (PWA) permettant de remplacer totalement l'application Pronote tout en étant beaucoup plus rapide au démarrage, fluide, belle et intuitive.
▷ Disponible sur pronotif.fr
▷ Instagram @pronotif
- Notifications de nouveaux devoirs, notes, retards, absences, etc...
- Notifications du prochain cours ou du cours actuel
- Emploi du temps, liste des devoirs, liste des notes, menu du jour, etc...
- Accédez à l'emploi du temps de vos amis et partagez le votre avec eux !
- Démarrage 16 fois plus rapide que Pronote (0.25 secondes pour Pronotif contre 4.15 secondes pour l'application Pronote)
- Disponible en hors ligne (contrairement à l'appli Pronote)
Toutes les 10 minutes, le serveur (Node) récupère la liste des utilisateurs depuis le Cloud Firestore et traite chacun d'eux.
Le traitement d'un utilisateur consiste à:
- Ouvrir une session Pronote avec les identifiants de l'utilisateur
- Récupérer les données utiles (emploi du temps, devoirs, notes, absences, retards, etc...)
- Comparer les données stockées dans le Cloud Firestore et les données récentes
- Si des nouvelles données sont détectées (nouveaux devoirs, nouvelle note, etc...), envoyer une notification à l'utilisateur
- Si des nouvelles données sont détectées, mettre à jour les données du Cloud Firestore
git clone https://github.com/Mathieu2301/Pronotif.git
yarn
FIREBASE_CREDENTIALS={"type":"service_account", ...}
FIREBASE_DB='https://xxxxxxx.firebaseio.com'
PWD_PRIVATE_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PWD_SALT=XXXXXXXXXXXXXXXX
PORT=3000 # Optionnel
PRODUCTION=false # Optionnel
NOTIFICATIONS=false # Optionnel
- La valeur de "pwd_private_key" par une chaine random de 32 caractères
- La valeur de "pwd_salt" par une chaine random de 16 caractères
cd ./vue-app
npm i
npm run serve
Le frontend est automatiquement build et déployé sur Firebase Hosting à chaque push sur la branche master
.
Le backend est automatiquement build et push sur GHCR à chaque push sur la branche master
.
Voici un exemple de stack pour déployer le backend:
version: '3'
services:
agent:
image: ghcr.io/mathieu2301/pronotif-agent:latest
restart: always
environment:
FIREBASE_CREDENTIALS: ${FIREBASE_CREDENTIALS}
FIREBASE_DB: ${FIREBASE_DB}
PWD_PRIVATE_KEY: ${PWD_PRIVATE_KEY}
PWD_SALT: ${PWD_SALT}
PRODUCTION: false
NOTIFICATIONS: false
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.pronotif.rule=Host(`${SERVER_URL}`)'
- 'traefik.http.routers.pronotif.entrypoints=https'
networks:
default:
name: traefik_web
external: true
Si vous obtenez des erreurs dans la console ou que vous observez un comportement indésirable, merci d'ouvrir une issue ici.