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.
-
Téléchargez dès maintenant yNotes sur le Google Play Store ou l'App Store
-
Rejoignez le serveur Discord officiel pour contacter l'équipe et être au courant de chaque nouveauté
- 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.
- yNotes
- Introduction
- Sommaire
- Fonctionnalités
- Installation
- Compilation
- Compatibilité
- A propos des APIs officielles
- Documentation
- Contributeurs
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.
-
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 (EcoleDirecte seulement)
- Epinglage de devoirs importants
-
Emploi du temps
- Accès aux cours programmés
- Ajout d'évènements personnalisables
- Ajout de rappels et alarmes
-
Applications supplémentaires
- Cloud (EcoleDirecte)
- Mails (EcoleDirecte) avec notifications
- Sondages (Pronote)
-
Mode nuit
-
Application hors ligne
- 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
L'application est développée avec le framework Flutter, et donc développée en Dart.
Si vous êtes utilisateur et souhaitez télécharger l'application sur votre smartphone, vous pouvez :
- Installer l'application depuis le Google Play Store
- Télécharger la dernière release (.apk)
- Compiler vous même votre application
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 :
- Compiler pour Android
- Compiler pour iOS Vous devez disposer d'un compte Apple Developer gratuit (ou payant) pour installer l'application sur un appareil iOS
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.
- Par connexion directe (munissez vous d'une adresse Pronote valide) ou géolocalisation
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 environ15 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 !
Le fichier principal (exécuté en premier) est /lib/main.dart
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.
- 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 💻 📓 |