Giter Site home page Giter Site logo

mathieu2301 / pronotif Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 0.0 804 KB

Interface intermédiaire pour Pronote: plus jolie, plus rapide, fonctionne hors-ligne, système d'amis, notifications, etc...

Home Page: https://pronotif.fr

JavaScript 69.23% HTML 0.44% Vue 30.29% Dockerfile 0.04%
pronote emploi-du-temps devoirs application-pronote ent rapide retards nouveaux-devoirs

pronotif's Introduction

Pronotif

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

Fonctionnalités actuelles

  • 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)

Screenshots

MainPage MainPage2

Fonctionnement

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 à:

  1. Ouvrir une session Pronote avec les identifiants de l'utilisateur
  2. Récupérer les données utiles (emploi du temps, devoirs, notes, absences, retards, etc...)
  3. Comparer les données stockées dans le Cloud Firestore et les données récentes
  4. Si des nouvelles données sont détectées (nouveaux devoirs, nouvelle note, etc...), envoyer une notification à l'utilisateur
  5. Si des nouvelles données sont détectées, mettre à jour les données du Cloud Firestore

Installation pour développement

Cloner le repo

git clone https://github.com/Mathieu2301/Pronotif.git

Initialisation du serveur

Installer les dépendances pour le serveur

yarn

Créer un fichier .env sur le modèle suivant

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

Initialisation de l'interface Vue

Installer les dépendances pour l'interface

cd ./vue-app
npm i

Serve l'interface en hot reload

npm run serve

Déploiement

Déploiement du frontend

Le frontend est automatiquement build et déployé sur Firebase Hosting à chaque push sur la branche master.

Déploiement du backend

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

Problèmes

Si vous obtenez des erreurs dans la console ou que vous observez un comportement indésirable, merci d'ouvrir une issue ici.

pronotif's People

Contributors

mathieu2301 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pronotif's Issues

CAS login not working

As far as I saw the CAS login was not implemented. There is a selector for these but it literrally do nothing.

Add a README

I wanted to test this project, but I couldn't since I don't know what to do to use it.

I know that the credentials.json file is missing but I don't know what to put inside of it.

You might want to add a comprehensive README to help people to install your project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.