/ynotes

Application open source de vie scolaire étudiante

Primary LanguageDartOtherNOASSERTION

yNotes

All Contributors

Vidéo de promotion pour la version 0.9.1

Introduction

Le développement d'yNotes s'est arrêté depuis le 3 avril 2022 (cf Discord). Il n'y aura plus de support pour l'application. Voilà pourquoi ce fork a été créé afin, pour les développeurs qu'ils le souhaitent, de maintenir l'application.

yNotes est un gestionnaire de notes, d'emploi du temps et de devoirs qui vous permet d'accéder à toutes vos informations scolaires dans une interface moderne et intuitive.

*L'application actuelle est basée sur les APIs des sites École Directe et Pronote*.

- yNotes n'est pas un client officiel et utilise directement les APIs d'applications scolaires.
- Vos identifiants sont chiffrés et stockés sur votre appareil et nous n'y avons strictement pas accès
- Nous ne nous portons pas responsables en cas de sanction de l'application scolaire.

Sommaire

Fonctionnalités

Les fonctionnalités de yNotes s'étendent chaque jour pour vous permettre d'être le plus efficace dans votre travail, et l'interface est régulièrement revue pour être la plus intuitive possible.

Fonctionnalités mises en place

  • Notes

    • Affichage des notes et des données liées
    • Notification de nouvelles notes
    • Partage des notes
    • Filtrage des notes par spécialités ou catégorie (sciences, littérature)
  • Devoirs

    • Accès aux devoirs à faire
    • Accès aux devoirs à une date spécifique
    • Affichage des pièces jointes liées
    • Epinglage de devoirs importants
  • Emploi du temps

    • Accès aux cours programmés
    • Ajout d'évènements personnalisables
    • Ajout de rappels et alarmes
    • Affichage du prochain cours (affiche également la salle pour EcoleDirecte)
  • Applications supplémentaires

    • Cloud (EcoleDirecte)
    • Mails (EcoleDirecte) avec notifications
    • Sondages (Pronote)
  • Mode nuit

  • Application hors ligne

Fonctionnalités à venir

  • Fonctionnalités supplémentaires dans l'affichage des devoirs, partage et recherche rapide par mot-clé (partenariat avec applications scolaires ?)
  • Tickets de vie scolaire
  • Actualités et informations

Installation

L'application est développée avec le framework Flutter, et donc développée en Dart.

Depuis les releases officielles

Si vous êtes utilisateur et souhaitez télécharger l'application sur votre smartphone, vous pouvez :

Android

iOS

Compilation

La compilation permet de créer une application interprétable par un appareil donné, dans notre cas votre smartphone à partir du code source.

Il est conseillé de procéder à l'installation guidée indiquée par la documentation officielle de Flutter.

Notez que pour compiler l'application pour iOS, il vous faut absolument un ordinateur Mac.

Téléchargez une version officielle du code source de l'application depuis cette page, si vous êtes utilisateur, préférez la branche stable, sinon vous pouvez essayer de compiler une version bêta de yNotes.

Ouvrez le dossier du code source dans votre éditeur favori (VSCode, Android Studio, XCode).

Assurez vous que votre téléphone est connecté à votre ordinateur si vous souhaitez directement compiler l'application sur ce dernier et vérifiez les conditions suivantes.

Suivez les étapes de compilation de la documentation officielle :

Compatibilité

yNotes est disponible pour les utilisateurs suivants :

  • Utilisateurs d'EcoleDirecte (comptes élèves)

  • Utilisateurs Pronote (comptes élèves)

    • Par connexion directe (munissez vous d'une adresse Pronote valide) ou géolocalisation
      • Support HTTPS et HTTP
      • Support de tous les ENT/CAS

    Nous ajoutons actuellement une fonction qui permettra de se connecter à partir de n'importe quel ENT.

A propos des APIs officielles

En réalité, Pronote et EcoleDirecte ne proposent pas vraiment "d'APIs" publiques et faciles d'accès. Je vous invite à regarder le dossier apis (lib/core/apis) puis consulter leurs dossiers respectifs pour comprendre comment yNotes accède aux données.

  • Pour EcoleDirecte, j'ai intégralement réalisé l'API de l'application. Les requêtes ne sont pas très complexes et vous pouvez facilement obtenir les données après avoir récupéré un token qui est valide environ 15 minutes dans la requête de connexion.
  • Pour Pronote, j'ai quasiment recopié l'API en python réalisée par bain. Si vous comptez vous lancer dans la réalisation de votre propre API - ce que je vous déconseille - jetez un coup d'oeil à cette discussion. Mais Pronote utilisant tellement de méthodes complexes qui vous compliqueront la tache je vous conseille plutôt de vous baser sur l'API de Bain citée précédemment, sur l'API très complète de Litarvan ou la bibliothèque de Leloubil.
    Je suis bien moins compétant qu'eux sur le sujet, alors n'hésitez pas à aller consulter leur travail voire leur demander directement !

Documentation

Le fichier principal (exécuté en premier) est /lib/main.dart

Architecture

yNotes a été codée suivant une architecture MVC. La partie business /lib/core inclut les controlleurs (dans /logic) ainsi qu'un dossier /apis qui contient tout ce qui est nécessaire pour collecter les données provenant d'EcoleDirecte ou Pronote.

Le dossier /offline contient tout ce qui est nécessaire à la mise en cache/hors ligne des données (nous utilisons la base de donnée Hive). Et finalement, le dossier /services est à différencier de /utils. Le premier servant à organiser les interactions "système" de l'application : notifications, deeplinks, arrière plan, le second contenant des utilitaires plus globaux dans l'application : theming, export de la db en json...

Les vues sont dans /lib/ui L'organisation des fichiers est néanmoins succeptible de changer.

Précisions

N'utilisez pas de print(text); mais plutôt:

  • Logger.log(object, text);
  • Logger.logWrapped(object, description, text);
  • Logger.error(e);

Déboguer une application déjà installée

Exécutez flutter logs.

Contributeurs

Mentions spéciales

  • Merci aux développeurs et bêta testeurs qui ont aidé à participer au projet en me suggérant des fonctionnalités et en montrant des bugs que je n'aurai sûrement jamais remarqués
  • L'API Pronote est un portage de pronotepy, développée par bain que je remercie énormément pour ses explications et sa disponibilité :)

Je tiens à remercier chaque autre personne ne figurant pas dans cette section pour avoir testé yNotes, collaboré d'une manière ou d'une autre pour la création de l'application et m'avoir donné des idées pour l'améliorer.


taokann.one

🐛 🤔 📓

Florian LEFEBVRE

🐛 🤔

bain3

🤔 🔌

ShiyukiNeko

🤔

Vincent Moucadeau

💻 📓

Remerciements

Nous pouvons développer yNotes pour iOS et macOS facilement grâce à MacStadium.

MacStadium logo