Code Monkey home page Code Monkey logo

ynotes's Introduction

⚠️ Par manque de temps nous ne pouvons plus maintenir le projet, des maintainers actifs seraient les bienvenus.

yNotes

All Contributors

Vidéo de promotion pour la version 0.9.1

Introduction

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

  • CustomLogger.log(object, text);
  • CustomLogger.logWrapped(object, description, text);
  • CustomLogger.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

💻 📓

ynotes's People

Contributors

allcontributors[bot] avatar androz2091 avatar dependabot[bot] avatar florian-lefebvre avatar jsonlinescode avatar modernchocolate avatar taokann avatar vmoucadeau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ynotes's Issues

Crash intempestifs et déconnexion

🐛 Signaler un bug

Décrire le bug

Ferme l'application et peu dans le pire des cas supprimer la liaison avec le compte Pronote

Reproduire ce bug

Il n'y a pas de moyens précis, celui-ci survient de manière aléatoire lors de l'ouverture de l'application ou de l'activation de la notification constante.

Comportement attendu

Que l'application ne ce ferme pas brutalement ; ne déconnecte pas le compte ; active bien la notification constante.

Smartphone

  • Appareil : Mi 8 Lite
  • OS : Android 10
  • Version : 0.12.0

Contexte supplémentaire

  • Application scolaire : Pronote
  • ENT : Lycée Connecté

Devoirs personnalisés

Il pourrait être intéressant de rajouter des tâches/devoirs personnalisées, comme pour l'agenda sur yNotes. Certains devoirs ne sont pas référencés par les enseignants sur Pronote, mais ils sont pour autant bien présents et il me semble intéressant de pouvoir tout centraliser dans l'appli.

Utiliser les nouvelles issues

L'organisation a maintenant accès aux nouvelles Github issues (en beta). Il faut donc configurer les projets, milestones etc...

Ajout d'ENT

Bonjour,
L'application à l'aire excellente mais il manque cruellement de possibilité pour s'y connecter. La majorité des établissement utilise des ENT pour gérer les différentes offices dont Pronote.
C'est pourquoi il faudrait rajouter le support des CAS du gouvernement.

Les CAS des académies fonctionnent tous de la même façon (à part celui de Bordeaux puisqu'il propose plusieurs services de connexion différents). Tous les CAS utilise ATEN pour gérer les connections c'est à dire, les même base pour les URL, les mêmes requêtes à effectuer et les même informations à fournir.

Cela signifie qu'implémenter une seule académie reviendrait à implémenter toutes les académies (enfin la base du fonctionnement).

Je pense que créer une requête commune à ATEN faciliterai la tache, ensuite il faut juste choisir l'ENT que l'on souhaite utiliser et modifier deux valeurs pour que la connexion marche.

Petit exemple :

url,
username,
password,

startURL: '/sso/SSO?SPEntityID=https%3A%2F%2Fmon.lyceeconnecte.fr%2Fauth%2Fsaml%2Fmetadata%2Fidp.xml',
atenURL: 'bv.ac-bordeaux.fr'

Les valeurs à retourner lors de la requêtes sont url, username, password.
startURL est la suite de l'URL qui change en fonction des académies pour redirigé vers les services voulus (ici Lycée Connecté)
atenURL est le nom de domaine du service de connexion.

Lycée Connecté est un ENT open-source qui est aussi utilisé sur ent.iledefrance.fr et bien d'autre.

Ce qui fait que l'académie de Bordeaux et différente c'est qu'elle a aussi un ENT pour les collégiens à une URL différente :
startURL: /sso/SSO?SPEntityID=https://ent2d.ac-bordeaux.fr/shibboleth
atenURL: idp-fim-ts.ac-bordeaux.fr

Aussi aujourd'hui EduConnect est beaucoup utilisé, encore une fois il suffit de développer une fois la connexion pour EduConnect pour faire marcher pas mal d'ENT.

J'ai essayé de bricoler la connexion vers Lycée Connecté avec l'académie de Bordeaux mais je ne sais pas ce que ça donne :

ac_bordeaux_1(String username, String password, String url) async {
    var headers = {
        'connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0'
    };

    final client = HttpClient();
    // ignore: close_sinks
    final request = await client.getUrl(Uri.parse(url));
    request.headers.set(HttpHeaders.contentTypeHeader, "plain/text");
    request.followRedirects = false;
    final response = await request.close();
    //Get location from headers
    String redirectedUrl = response.headers.value(HttpHeaders.locationHeader);
    String service = Uri.encodeComponent(url);

    String ent_login = "https://bv.ac-bordeaux.fr/login/ct_logon_vk.jsp?CT_ORIG_URL=http%3A%2F%2Fbv.ac-bordeaux.fr%2Fsso%2FSSO%3FSPEntityID%3Dhttps%253A%252F%252Fmon.lyceeconnecte.fr%252Fauth%252Fsaml%252Fmetadata%252Fidp.xml";
    String ent_verif = "https://bv.ac-bordeaux.fr/aten-web/connexion/controlesConnexion?CT_ORIG_URL=http%3A%2F%2Fbv.ac-bordeaux.fr%2Fsso%2FSSO%3FSPEntityID%3Dhttps%253A%252F%252Fmon.lyceeconnecte.fr%252Fauth%252Fsaml%252Fmetadata%252Fidp.xml"
    
    //remove old cookies
    await Requests.clearStoredCookies(Requests.getHostname(ent_login));
    //payload to send
    var payload = {
        "username": username,
        "password": password,
        "auth_mode": 'BASIC',
        "orig_url": '/sso/SSO?SPEntityID=https%3A%2F%2Fmon.lyceeconnecte.fr%2Fauth%2Fsaml%2Fmetadata%2Fidp.xml',
    };
    print(payload);
    var response2 = await Requests.post(ent_login, body: payload, persistCookies: true, bodyEncoding: RequestBodyEncoding.FormURLEncoded);

    if (response2.content().contains("Identifiant ou mot de passe incorrect")) {
        throw "runes";
    }
    var cookies = await Requests.getStoredCookies(Requests.getHostname(ent_login));
    printWrapped(cookies.toString());
    return cookies;
}

Sinon vous pouvez vous appuyer sur le code qu'il y a dans PronotePy avec l'ENT de Montpellier qui fonctionne avec ATEN.

Vous pouvez aussi vous appuyez sur une api en javascript par Litarvan, ici pour la base d'ATEN et ici avec le bout de code à modifier pour les différents ENT d'académies

Je vous souhaite une bonne journée, si vous avez besoin de quoi que ce soit pour le code ou d'information sur ATEN ou si vous avez besoin d'essayer la connexion vers l'ENT.
En attendant de vos nouvelles.

Paramètres

Je pense que les paramètres devraient être accessible de partout (peut-être dans la barre en bas ?), ce n'est pas très intuitif d'avoir les paramètres globaux dans Space.

Agenda: Ecran vide après modification d'un paramètre

🐛 Signaler un bug

Décrire le bug

Suite à un feedback in-app j'ouvre cette issue. Visiblement, après avoir modifié un paramètre dans les paramètres de l'agenda, la page est devenue grise (couleur du fond mais appbar quand même visible).

Reproduire ce bug

Étapes pour reproduire le comportement : En attente de plus d'informations.

Comportement attendu

On devrait pouvoir modifier les options sans aucun problème.

Captures d'écran

Si possible, ajoutez des captures d'écran pour aider à expliquer votre problème.

image

Smartphone (veuillez compléter les informations suivantes)

  • Appareil : ?
  • OS : Android
  • Version ?

Contexte supplémentaire

  • Application scolaire : ?

Résumé: ajouter informations

💡 Demande de fonctionnalité / idée

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez le décrire.

L'établissement peut afficher des informations sur l'écran d'accueil ce qui n'est pas le cas dans yNotes

Décrivez la solution que vous souhaitez

Il faut l'ajouter au résumé. Cela demande une modification de l'api.

Contexte supplémentaire

Nous avons besoin de la requête pour pouvoir récupérer les informations.

Ecran blanc sur iOS

🐛 Signaler un bug

Décrire le bug

Stuck sur un écran blanc au démarrage de l'application.

Reproduire ce bug

Étapes pour reproduire le comportement :

  1. Démarrer l'application sur un appareil physique iOS (cela semble aléatoire mais l'erreur a particulièrement eu lieu sur iPhone 6s)

Comportement attendu

Démarrage correct

Smartphone (veuillez compléter les informations suivantes)

  • Appareil : iPhone 6s
  • OS : iOS 14.5
  • Version: 0.12

Contexte supplémentaire

  • Application scolaire : Peu importe

Sondages dans le désordre

Les sondages et informations sont, sur la version Pronote du moins, affichés du plus ancien au plus récent.

Je pense qu'il serait plus intuitif de les afficher, au contraire, du plus récent au plus ancien.

Connexion par webview charge à l'infini

La connexion par webview charge à l'infini après la saisie des identifiants dans la webview (testé sur Android avec le cas mon-ent-occitanie, cela fonctionne bien avec quelques autres CAS que j'ai pu également tester).

Intégration des ENT de Kosmos Education

💡 Demande de fonctionnalité / idée

Actuellement yNotes ne gère que les ENT Pronote et EcoleDirecte.

Kosmos Education est la société qui gère les ENT suivants:

  • Mon Bureau Numérique
  • Mon ENT Occitanie
  • Arsene 76
  • ENT 27
  • ENT Creuse
  • ENT Auvergne-Rhône-Alpes
  • Savoirs Numériques 62
  • Agora 06
  • CyberCollèges 42
  • eCollège 31 Haute-Garonne
  • Mon collège en Val d'Oise
  • Webcollège Seine-Saint-Denis
  • Eclat-BFC
  • @Ucollège84

+ Quelques établissements français à l'étranger

Ce qui représente 6 millions de comptes utilisateurs.

L'intégration de l'API K-D'Ecole dans yNotes est une amélioration qui me semble intéressante au vu de la qualité de votre application comparée aux applications disponibles de ces différents ENT.

J'ai développé un client API NodeJS en TypeScript (https://github.com/maelgangloff/kdecole-api).

Le lien de la spécification OpenAPI que j'ai écrite et pouvant aider à comprendre comment l'API fonctionne: https://raw.githubusercontent.com/maelgangloff/kdecole-api/master/OpenAPI/kdecole.yaml

Je crois que l'éditeur https://editor.swagger.io/ permet de générer automatiquement un module Dart en lui donnant une spécification OpenAPI.

Je ne connais pas encore le langage Dart, c'est pourquoi je me contente d'ouvrir un ticket ;)

Compiler pour iOS

Je trouve le principe de l'app génial et, ayant un Mac, j'ai essayé de compiler l'application pour iOS et de la lancer dans le simulateur avec flutter run, mais Flutter me renvoie une erreur à chaque fois ! Quelqu'un sait-il comment résoudre ce problème ?
Merci d'avance ! Voilà les logs :

Launching lib/main.dart on iPhone 12 Pro Max in debug mode...
Running pod install...                                              1,1s
CocoaPods' output:

↳
      Preparing

    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Finding Podfile changes
      A advance_pdf_viewer
      A awesome_notifications
      A battery_optimization
      A flutter_file_dialog
      A image_picker
      A sqflite
      A webview_flutter
      R file_picker
      - Flutter
      - background_fetch
      - connectivity
      - ext_storage
      - flutter_local_notifications
      - flutter_secure_storage
      - open_file
      - package_info
      - path_provider
      - permission_handler
      - sensors
      - share
      - shared_preferences
      - url_launcher
      - video_player
      - wakelock

    Fetching external sources
    -> Fetching podspec for `Flutter` from `Flutter`
    -> Fetching podspec for `advance_pdf_viewer` from
    `.symlinks/plugins/advance_pdf_viewer/ios`
    -> Fetching podspec for `awesome_notifications` from
    `.symlinks/plugins/awesome_notifications/ios`
    -> Fetching podspec for `background_fetch` from
    `.symlinks/plugins/background_fetch/ios`
    -> Fetching podspec for `battery_optimization` from
    `.symlinks/plugins/battery_optimization/ios`
    -> Fetching podspec for `connectivity` from
    `.symlinks/plugins/connectivity/ios`
    -> Fetching podspec for `ext_storage` from
    `.symlinks/plugins/ext_storage/ios`
    -> Fetching podspec for `flutter_file_dialog` from
    `.symlinks/plugins/flutter_file_dialog/ios`
    -> Fetching podspec for `flutter_local_notifications` from
    `.symlinks/plugins/flutter_local_notifications/ios`
    -> Fetching podspec for `flutter_secure_storage` from
    `.symlinks/plugins/flutter_secure_storage/ios`
    -> Fetching podspec for `image_picker` from
    `.symlinks/plugins/image_picker/ios`
    -> Fetching podspec for `open_file` from `.symlinks/plugins/open_file/ios`
    -> Fetching podspec for `package_info` from
    `.symlinks/plugins/package_info/ios`
    -> Fetching podspec for `path_provider` from
    `.symlinks/plugins/path_provider/ios`
    -> Fetching podspec for `permission_handler` from
    `.symlinks/plugins/permission_handler/ios`
    -> Fetching podspec for `sensors` from `.symlinks/plugins/sensors/ios`
    -> Fetching podspec for `share` from `.symlinks/plugins/share/ios`
    -> Fetching podspec for `shared_preferences` from
    `.symlinks/plugins/shared_preferences/ios`
    -> Fetching podspec for `sqflite` from `.symlinks/plugins/sqflite/ios`
    -> Fetching podspec for `url_launcher` from
    `.symlinks/plugins/url_launcher/ios`
    -> Fetching podspec for `video_player` from
    `.symlinks/plugins/video_player/ios`
    -> Fetching podspec for `wakelock` from `.symlinks/plugins/wakelock/ios`
    -> Fetching podspec for `webview_flutter` from
    `.symlinks/plugins/webview_flutter/ios`

    Resolving dependencies of `Podfile`
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local
      because checking is only perfomed in repo update
    [!] CocoaPods could not find compatible versions for pod
    "awesome_notifications":
      In Podfile:
        awesome_notifications (from
        `.symlinks/plugins/awesome_notifications/ios`)

    Specs satisfying the `awesome_notifications (from
    `.symlinks/plugins/awesome_notifications/ios`)` dependency were found, but
    they required a higher minimum deployment target.

    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:32
    8:in `raise_error_unless_state'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:31
    0:in `block in unwind_for_conflict'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:30
    8:in `tap'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:30
    8:in `unwind_for_conflict'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:68
    4:in `attempt_to_activate'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:25
    4:in `process_topmost_state'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:18
    2:in `resolve'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:i
    n `resolve'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/resolver.rb:94:
    in `resolve'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analy
    zer.rb:1074:in `block in resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.
    rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analy
    zer.rb:1072:in `resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analy
    zer.rb:124:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:41
    4:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:23
    9:in `block in resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.
    rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:23
    8:in `resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:16
    0:in `install!'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command/install
    .rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in
    `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:i
    n `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/bin/pod:55:in `<top
    (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'

Error output from CocoaPods:
↳

    [!] Automatically assigning platform `iOS` with version `8.0` on target
    `Runner` because no platform was specified. Please specify a platform for
    this target in your Podfile. See
    `https://guides.cocoapods.org/syntax/podfile.html#platform`.

Error running pod install
Error launching application on iPhone 12 Pro Max.

Avoir la moyenne de la classe de l'enseignement de spécialité

Bonsoir,
tout d'abord super appli ! Je trouve ça très intéressant et je compte bien vous donner un coup de main si j'ai le temps.
Voici ma requête (j'utilise EcoleDirecte) :
Avec la réforme du bac, il y a maintenant les enseignements de spécialité, ce qui veut dire que les moyennes des EDS ne sont pas réelles. Est-ce qu'il n'y aurait pas moyen d'afficher en plus la moyenne de la classe de l'EDS ? Je ne sais même pas si EcoleDirecte gère ce système là.

EDIT: est-ce que ça sert à ça le Tri dans la section notes ?

URL pronote/eleve.html ne fonctionne pas

Décrire le bug
Impossible de se connecter sans inclure .mobile dans l'URL Pronote.

Reproduire ce bug
Étapes pour reproduire le comportement :

  • Sélectionner Pronote
  • Entrer https://0310047h.index-education.net/pronote/eleve.html
  • Se connecter
  • Tout fonctionne bien mais l'animation de chargement tourne à l'infini

Comportement attendu

Même comportement que pour l'URL https://0310047h.index-education.net/pronote/mobile.eleve.html. Peut-être parser l'URL pour récupérer 0310047h et eleve avec une Regexp et reconstruire l'URL à partir de ça. Cela permettrait d'être plus tolérant sur les URLs

  • 0310047h.index-education.net --> 0310047h et null (donc eleve par défaut)
  • https://0310047h.index-education.net/pronote/ --> 0310047h et null (donc eleve par défaut)
  • https://0310047h.index-education.net/pronote/eleve.html --> 0310047h et eleve

➡️ Sinon, afficher au moins une erreur au lieu d'un spinner infini.

Captures d'écran
N/A

Smartphone (veuillez compléter les informations suivantes):

  • Appareil : Huawei psmart 2020
  • OS : Android 9
  • Version v0.10-beta

Contexte supplémentaire

  • Application scolaire : Pronote

IOS: bug coeff simulateur

🐛 Signaler un bug

Décrire le bug

Sur IOS, on ne peut pas éditer le coefficient. Cela semble du au fait que le clavier puisse faire une virgule mais pas un point (ou vice-versa je ne me souviens pas).

Reproduire ce bug

Étapes pour reproduire le comportement :

  1. Aller sur la page /grades
  2. Ouvrir le simulateur
  3. Ajouter une note
  4. Editer le coefficient
  5. Mettre une virgule
  6. Valider

Comportement attendu

Le coefficient devrait être accepté mais il ne se passe rien

Smartphone (veuillez compléter les informations suivantes)

  • Appareil : Iphone 8
  • OS : iOS
  • Version 0.12

Contexte supplémentaire

  • Application scolaire : EcoleDirecte

Responsive Design

Heyyyyyyy tout le monde !
Sur iPad l’affichage est type iPhone (voir screenshot), et c’est très énervant 😡 à lire même si l’app est super !
Merci de votre lecture !
" Yan Jobs#0001

🐛 Compétences non prises en charge

🐛 Signaler un bug

Décrire le bug

Les compétences écoles directes ne sont pas prises en compte.

Reproduire ce bug

Étapes pour reproduire le comportement :

  1. Se connecter à EC depuis yNotes
  2. Avoir des compétences qui apparaîtront dans le fil des notes dans la page d'accueil.

Comportement attendu

Les compétences sont affichés normalement avec leur couleur.

Captures d'écran

Smartphone (veuillez compléter les informations suivantes)

  • Appareil : iPad 7th gen
  • OS : iOS 15 bêta
  • Version: 0.12 (951) TestFlight

Contexte supplémentaire

  • Application scolaire : ÉcoleDirecte

Contenu de séances

💡 Demande de fonctionnalité / idée

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez le décrire.

Il n'y a pas de contenu de séance dans yNotes.

Décrivez la solution que vous souhaitez

Pour chaque devoir, avoir la possibilité de voir le contenu de séance

Utiliser Pronote pour marquer les devoirs comme faits

Actuellement, le comportement de l'appli semble être de garder en mémoire locale le fait qu'un devoir soit fait ou non. Cela est un peu embêtant avec plusieurs appareils, et je pense que l'API de Pronote pourrait être utilisée pour marquer le devoir comme fait sur Pronote, et récupérer cette info au moment de rafraichir les données.

Connexion impossible à Pronote avec l'ENT Lycée Connecté

Bonjour,
C'est de nouveau moi, et oui...

Tout d'abord, bravo pour les améliorations récentes et l'intégration des ENT sur l'application.
J'ai tester ce système avec peu d'espoirs connaissant la galère qu'est Lycée Connecté au niveau de la gestion des comptes...

Il ce trouve que l'application ne peut pas, pour le moment, fonctionner en Nouvelle Aquitaines car l'ENT (Lycée Connecté) vers lequel nous sommes redirigé pour nous connecter lorsque nous utilisons Pronote ne nous permet pas de passer par la page https://mon.lyceeconnecte.fr/auth/login pour nous connecter. Nous n'avons pas d'identifiants sur Lycée Connecté car cet accès est réservé au personnel de l'établissement. Nous devons passer obligatoirement par EduConnect ou notre académie (dans mon cas bv.ac-bordeaux.fr) pour accéder à l'ENT et donc à Pronote.
Malheureusement, il n'y a pas de bouton sur la page de connexion de Lycée Connecté (voir plus haut) pour être redirigé vers ces autres systèmes de connexion, il faut forcément passer par l'accueil (https://lyceeconnecte.fr puis se connecter).

Je comprends donc tout à fait que vous ne puissiez pour le moment rien faire et que le fait que la méthode utilisé (donc l'URL fournie par Pronote) ne fonctionne pas ici et que cela ne soit pas de votre faute...

Cependant, pensez-vous qu'il serait possible de faire quelque chose pour y remédier, soit en connexion manuelle ou alors en détectant l'ENT Lycée Connecté pour nous redirigé plutôt sur la page d'accueil que sur la page de connexion ?

Bien à vous,
Lucas

Agenda: modification de la durée de rappel de cours non prise en compte

🐛 Signaler un bug

Décrire le bug

Il est impossible de modifier la durée entre les rappels de cours.

Reproduire ce bug

Étapes pour reproduire le comportement :

  1. Aller sur la page Agenda (/agenda)
  2. Ouvrir les paramètres de la page
  3. Éditer le paramètre "Me rappeler les cours"

Comportement attendu

Confirmer le dialog devrait mettre à jour la valeur.

Captures d'écran

https://media.discordapp.net/attachments/838039639737499672/886843826851962880/video0.mp4

Smartphone (veuillez compléter les informations suivantes)

  • Appareil : iPhone 6S
  • OS : iOS 14.7.1
  • Version 0.12.0

Contexte supplémentaire

  • Application scolaire : EcoleDirecte

Impossible d'entrer des caractères spéciaux sur lycée connecté

Après avoir entré le lien de mon Pronote, j'atterris sur la page de connexion lycée connecté et quand je veut entrer mes identifiants je ne peut pas entrer de caractères spéciaux, quand je clique sur le bouton caractères spéciaux de mon clavier ça Switch directement sur le clavier de lettre. (Embêtant pour les mots de passe)

Étapes pour reproduire le comportement :

  1. Ouvrir Ynote
  2. Choisir Pronote
  3. Choisir "Saisir l'URL"
  4. Entrer l'URL Pronote (https://0160048r.index-education.net/pronote/eleve.html)
  5. Cliquer se connecter
  6. Quand la page est chargé, essayer d'entrer l'identifiant, le mien comporte un tiret et je ne peut pas l'entrer, et mon mot de passe a des caractères spéciaux.

Comportement attendu
Possibilité d'entrer dans les zones textuelles des caractères spéciaux.

Captures d'écran
https://youtube.com/shorts/syjyCyDLlPc?feature=share

Smartphone:

  • Appareil : Oneplus 6
  • OS : Android 11, RQ2A.210305.006
    PixelExperience_Plus_enchilada-11.0-20210313-1827-UNOFFICIAL

Écrire en français

Ben ouais, Écoledirecte et Pronote ne sont disponibles qu'en France, tous les utilisateurs de l'app parlent donc la langue de Molière. Évidemment je parle juste du readme et autre documentations, surtout pas les messages de commit et encore moins le code xD
D'ailleurs je me demande quelles apps utilisent les étudiants d'autres pays...

La version pour Pronote n'affiche pas mes notes

Mon établissement utilise Pronote avec l'ENT ile de france.
Je ne peux pas accéder à mes notes depuis l'appli.
C'est probablement lié au fait que mon établissement fonctionne par semestres au lieu de trimestres...
Screenshot_20210320-115718

Ergonomie

Je pense que la dernière note a une place trop importante, on ne voit pas assez ce qu'il y a à faire. Ce serait peut-être plus judicieux de mettre côte à côte en haut le travail fait et cette note pour laisser tout le reste de l'écran pour les devoirs. D'ailleurs, ce serait bien d'avoir une information sur le nombre de contrôles à venir.

Content-type : faute de frappe

Dans /lib/parsers/EcoleDirecte.dart, il y a une erreur ligne 76
Map<String, String> headers = {"Content-type": "texet/plain"};

Faciliter l'accès à l'emploi du temps

💅 Amélioration

Décrire le problème

Il est compliqué d'avoir accès rapidement à son emploi du temps.

Décrire l'amélioration

Je vois 2 possibilités :

  1. Ajouter une information sur le Résumé quant à l'heure la plus proche. Exemple: Dans 5 min tu as cours de maths en salle 48
  2. Avoir un bouton qui permette d'ouvrir l'emploi du temps sans passer par le drawer.

J'ai une préférence pour la 1ère option, mais je suis curieux d'avoir d'autres avis @JsonLinesCode @taokann

Option pour cacher le samedi et le dimanche

Bonjour,
Dans la plupart des collèges, on ne travaille pas le samedi ni le dimanche. Je trouverais donc pas mal de rajouter une option pour cacher ces jours dans l'agenda lorsque qu'on utilise les flèches pour aller de jours en jours.
Cordialement,
Freezman

Proposition d'amélioration pour l'agenda/calendrier

💡 Demande de fonctionnalité / idée

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez le décrire.

Aujourd'hui, j'utilise une autre application que ynotes pour mon calendrier en général.

Décrivez la solution que vous souhaitez

Il serait donc pratique de pouvoir visualiser les autres calendriers de son téléphone dans ynotes voir même de pouvoir visualiser le calendrier du collège/lycée/école dans les autres app de calendrier.

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.