Giter Site home page Giter Site logo

applets / notre-dame-v3 Goto Github PK

View Code? Open in Web Editor NEW
13.0 9.0 3.0 10.26 MB

The 3rd generation of ÉTSMobile, the main gateway between the École de technologie supérieure and its students on mobile devices

License: Apache License 2.0

Kotlin 85.68% Swift 8.20% Ruby 0.02% HTML 5.51% Shell 0.59% CSS 0.01%
mobile mobile-app students university notre-dame etsmobile ets android ios kotlin

notre-dame-v3's Introduction


Projet Notre-Dame
Build Status

This project is the placeholder for the third version of ÉTSMobile, a mobile which application that is currently available for Android and iOS. ÉTSMobile is the main gateway between the user and the École de technologie supérieure (ÉTS) on mobile devices. ÉTSMobile is an open-source project and is developped by members of the student club ApplETS. It offers:

  • Access to evaluation grades
  • Access to the student's schedules
  • And many more...

Note: This guide is also available in: Français

Get it on Google Play

git clone https://github.com/ApplETS/Notre-Dame.git
  • Open the entire project in Android Studio
  • Language: Swift version: 5
  • Minimum SDK Version: 12.x

Getting started

  • Download and install the latest version of Xcode
  • Clone the project
git clone https://github.com/ApplETS/Notre-Dame.git
  • Navigate inside the directory to reach the Podfile
cd Notre-Dame/ios/ETSMobile
  • Install the Cocoapods declared inside the Podfile by running the command:
pod install
  • A .xcworkspace file will be generated. You must use this file to open the project.

Build the project

Run the following command after each modification into the shared module:

gradlew packForXCode

Then you can build the application in XCode

🤖 / 🍎 Kotlin Multiplatform Project

The projet is migrating towards Kotlin Multiplatform.

The project uses Ktlint Gradle, a wrapper over ktlint. It's a linter and a formatter for Kotlin code. In order to ensure that the code is well formatted, the CI runs the following command:

$ ./gradlew ktlintCheck

🤔 Question or issue?

Check out the FAQ (in French), open an issue or send an email to [email protected].

⚖️ License

This projet is licensed under the Apache License V2.0. See the LICENSE file for more info.

notre-dame-v3's People

Contributors

antoinelamy avatar apomalyn avatar filipearker avatar flix477 avatar huerd avatar machobandido08 avatar mykaelll87 avatar sonphil avatar zaclimon avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

notre-dame-v3's Issues

Horaire : Vide après un changement de configuration

Describe the bug
Après un changement de configuration (ex. : changement d'orientation de l'écran), l'horaire n'affiche plus les séances.

To Reproduce
Steps to reproduce the behavior:

  1. Aller dans « Horaire »
  2. Provoquer un changement de configuration (ex. : changer l'orientation de l'écran)

Expected behavior
Les séances devraient encore être affichées.

Screenshots
Avant le changement de configuration :

Après le changement de configuration :

Smartphone (please complete the following information):

  • OS: Android
  • Version 8.1

Schedule on dashboard is not in ascending chronological order. Par exemple, j'ai deux cours dans ma journée : un de 9@12, un de 13@17. Sur le dashboard, la section "Schedule" affiche le cours de 13@17 en tête de liste et le cours de 9@12 en bas de la liste. Si c'est tel que conçu, fine, mais est-ce que c'est user friendly? J'arrête pas de me tromper, car je ne prends pas le temps de regarder les heures et je regarde seulement l'ordre de cours.

What happened:

Schedule on dashboard is not in ascending chronological order.
Par exemple, j'ai deux cours dans ma journée : un de 9@12, un de 13@17.
Sur le dashboard, la section "Schedule" affiche le cours de 13@17 en tête de liste et le cours de 9@12 en bas de la liste.
Si c'est tel que conçu, fine, mais est-ce que c'est user friendly? J'arrête pas de me tromper, car je ne prends pas le temps de regarder les heures et je regarde seulement l'ordre de cours.

Version: 3.0.0-beta (30876)

Operating system: Android 9

Model: Google Pixel

Memory: 72% (2.65 GB used out of 3.68 GB)

Capacity: 95% (23.1 GB used out of 24.3 GB)

Locale: Canada English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1556804879380.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/15

Reported via Buglife

Être inscrit à un cours sans bloc horaire cause une erreur dans l'onglet dashboard et schedule

What happened:

Être inscrit à un cours sans bloc horaire cause une erreur dans l'onglet dashboard et schedule

Version: 3.0.0-beta (30960)

Operating system: Android 9

Model: Google Pixel 3

Memory: 77% (2.66 GB used out of 3.46 GB)

Capacity: 45% (23 GB used out of 51.6 GB)

Locale: Canada English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1559339490624.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/20

Reported via Buglife

Color code for classes

It would be nice if all the classes where color coded like in the previous version. For example, PHY335 could be green, COM110 could be yellow, etc...

This feature would be especially useful with the schedule feature of the application.

Réduire la largeur du contenu sur les grands écrans

Is your feature request related to a problem? Please describe.
En tant qu'une utilisateur, j'aimerais que la largeur du contenu soit limitée afin de pouvoir voir tout le contenu plus rapidement.

Describe the solution you'd like
Sur un grand écran, il faudrait imposer une largeur maximale au contenu sous la barre d'action. Sans cette contrainte, le contenu peut apparaître aux extrémités ce qui demande plus d'effort à l'utilisateur pour voir tout le contenu.

Par exemple, la barre de navigation affiche les items au centre sans prendre la largeur au complet ce qui permet une visualisation plus rapide des items.
image

Il me reste un examen jeudi, sur l'autre version j'arrive à la voir mais pas sur la beta PS Dashboard est maintenant écrit au complet lorsqu'il est sélectionné depuis la dernière mise à jour!

What happened:

Il me reste un examen jeudi, sur l'autre version j'arrive à la voir mais pas sur la beta
PS Dashboard est maintenant écrit au complet lorsqu'il est sélectionné depuis la dernière mise à jour! 

Version: 3.0.0-beta (30747)

Operating system: Android 7.0

Model: samsung SM-G903W

Memory: 82% (1.48 GB used out of 1.82 GB)

Capacity: 84% (9.28 GB used out of 11 GB)

Locale: Canada French

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1555362646512.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/11

Reported via Buglife

Samsung Galaxy S5 Neo Samsung Ex:8.1 Quand le dashboard est sélectionné une partie du nom est coupé mais lorsqu'il n'est pas sélectionné il ne l'est pas... c'est pas grand chose mais ça me gossait! Bonne job par contre fait du bien!

What happened:

Samsung Galaxy S5 Neo
Samsung Ex:8.1
Quand le dashboard est sélectionné une partie du nom est coupé mais lorsqu'il n'est pas sélectionné il ne l'est pas... c'est pas grand chose mais ça me gossait! Bonne job par contre fait du bien!

Version: 3.0.0-beta (30733)

Operating system: Android 7.0

Model: samsung SM-G903W

Memory: 82% (1.49 GB used out of 1.82 GB)

Capacity: 83% (9.17 GB used out of 11 GB)

Locale: Canada English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1554703458172.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/9

Reported via Buglife

Horaire : Chargement indéfini en mode hors-ligne

Describe the bug
L'horaire se charge indéfiniment.

To Reproduce
Steps to reproduce the behavior:

  1. Désactiver la connexion Internet
  2. Aller dans Horaire

Expected behavior
Les données en cache sont présentées et la barre de chargement est masquée après un certain temps.

Screenshots
image

Smartphone (please complete the following information):

  • OS: Android
  • Version: 8.1

la derniere journée de la session ne s'affiche pas dans l'horaire. (demain)

What happened:

la derniere journée de la session ne s'affiche pas dans l'horaire. (demain)

Version: 3.0.0-beta (30747)

Operating system: Android 9

Model: samsung SM-N960W

Memory: 67% (3.63 GB used out of 5.45 GB)

Capacity: 20% (22 GB used out of 111 GB)

Locale: Canada English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1555551317118.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/13

Reported via Buglife

GitHub : Afficher les contributeurs

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais connaître les personnes ayant contribué au développement de l'application.

Describe the solution you'd like
L'API de GitHub permet de retrouver les contributeurs et, donc, le développement d'un nouveau écran. Ce dernier présenterait les contributeurs (avatar et nom d'utilisateur) sous la forme d'une liste. Un clic sur un contributeur mènerait vers le profil GitHub du contributeur ou sur un autre écran qui présenterait ses détails.

Describe alternatives you've considered
Actuellement, l'item « Contributeurs » dans la section « Plus » mène vers une page web.

Additional context
Ex. : https://api.github.com/repos/ApplETS/Notre-Dame/contributors?anon=1
Réponse :

[
  {
    "login": "Sonphil",
    "id": 22182973,
    "node_id": "MDQ6VXNlcjIyMTgyOTcz",
    "avatar_url": "https://avatars2.githubusercontent.com/u/22182973?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/Sonphil",
    "html_url": "https://github.com/Sonphil",
    "followers_url": "https://api.github.com/users/Sonphil/followers",
    "following_url": "https://api.github.com/users/Sonphil/following{/other_user}",
    "gists_url": "https://api.github.com/users/Sonphil/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/Sonphil/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/Sonphil/subscriptions",
    "organizations_url": "https://api.github.com/users/Sonphil/orgs",
    "repos_url": "https://api.github.com/users/Sonphil/repos",
    "events_url": "https://api.github.com/users/Sonphil/events{/privacy}",
    "received_events_url": "https://api.github.com/users/Sonphil/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 623
  },
  {
    "login": "kovy42",
    "id": 25484259,
    "node_id": "MDQ6VXNlcjI1NDg0MjU5",
    "avatar_url": "https://avatars2.githubusercontent.com/u/25484259?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/kovy42",
    "html_url": "https://github.com/kovy42",
    "followers_url": "https://api.github.com/users/kovy42/followers",
    "following_url": "https://api.github.com/users/kovy42/following{/other_user}",
    "gists_url": "https://api.github.com/users/kovy42/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/kovy42/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/kovy42/subscriptions",
    "organizations_url": "https://api.github.com/users/kovy42/orgs",
    "repos_url": "https://api.github.com/users/kovy42/repos",
    "events_url": "https://api.github.com/users/kovy42/events{/privacy}",
    "received_events_url": "https://api.github.com/users/kovy42/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 42
  },
  {
    "login": "zaclimon",
    "id": 1891861,
    "node_id": "MDQ6VXNlcjE4OTE4NjE=",
    "avatar_url": "https://avatars0.githubusercontent.com/u/1891861?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/zaclimon",
    "html_url": "https://github.com/zaclimon",
    "followers_url": "https://api.github.com/users/zaclimon/followers",
    "following_url": "https://api.github.com/users/zaclimon/following{/other_user}",
    "gists_url": "https://api.github.com/users/zaclimon/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/zaclimon/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/zaclimon/subscriptions",
    "organizations_url": "https://api.github.com/users/zaclimon/orgs",
    "repos_url": "https://api.github.com/users/zaclimon/repos",
    "events_url": "https://api.github.com/users/zaclimon/events{/privacy}",
    "received_events_url": "https://api.github.com/users/zaclimon/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 32
  },
  {
    "login": "mykaelll87",
    "id": 31320170,
    "node_id": "MDQ6VXNlcjMxMzIwMTcw",
    "avatar_url": "https://avatars1.githubusercontent.com/u/31320170?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/mykaelll87",
    "html_url": "https://github.com/mykaelll87",
    "followers_url": "https://api.github.com/users/mykaelll87/followers",
    "following_url": "https://api.github.com/users/mykaelll87/following{/other_user}",
    "gists_url": "https://api.github.com/users/mykaelll87/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/mykaelll87/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/mykaelll87/subscriptions",
    "organizations_url": "https://api.github.com/users/mykaelll87/orgs",
    "repos_url": "https://api.github.com/users/mykaelll87/repos",
    "events_url": "https://api.github.com/users/mykaelll87/events{/privacy}",
    "received_events_url": "https://api.github.com/users/mykaelll87/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 17
  },
  {
    "login": "howardphi",
    "id": 2333486,
    "node_id": "MDQ6VXNlcjIzMzM0ODY=",
    "avatar_url": "https://avatars1.githubusercontent.com/u/2333486?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/howardphi",
    "html_url": "https://github.com/howardphi",
    "followers_url": "https://api.github.com/users/howardphi/followers",
    "following_url": "https://api.github.com/users/howardphi/following{/other_user}",
    "gists_url": "https://api.github.com/users/howardphi/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/howardphi/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/howardphi/subscriptions",
    "organizations_url": "https://api.github.com/users/howardphi/orgs",
    "repos_url": "https://api.github.com/users/howardphi/repos",
    "events_url": "https://api.github.com/users/howardphi/events{/privacy}",
    "received_events_url": "https://api.github.com/users/howardphi/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 16
  },
  {
    "login": "flix477",
    "id": 6579510,
    "node_id": "MDQ6VXNlcjY1Nzk1MTA=",
    "avatar_url": "https://avatars0.githubusercontent.com/u/6579510?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/flix477",
    "html_url": "https://github.com/flix477",
    "followers_url": "https://api.github.com/users/flix477/followers",
    "following_url": "https://api.github.com/users/flix477/following{/other_user}",
    "gists_url": "https://api.github.com/users/flix477/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/flix477/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/flix477/subscriptions",
    "organizations_url": "https://api.github.com/users/flix477/orgs",
    "repos_url": "https://api.github.com/users/flix477/repos",
    "events_url": "https://api.github.com/users/flix477/events{/privacy}",
    "received_events_url": "https://api.github.com/users/flix477/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 11
  },
  {
    "login": "antoinelamy",
    "id": 291573,
    "node_id": "MDQ6VXNlcjI5MTU3Mw==",
    "avatar_url": "https://avatars0.githubusercontent.com/u/291573?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/antoinelamy",
    "html_url": "https://github.com/antoinelamy",
    "followers_url": "https://api.github.com/users/antoinelamy/followers",
    "following_url": "https://api.github.com/users/antoinelamy/following{/other_user}",
    "gists_url": "https://api.github.com/users/antoinelamy/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/antoinelamy/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/antoinelamy/subscriptions",
    "organizations_url": "https://api.github.com/users/antoinelamy/orgs",
    "repos_url": "https://api.github.com/users/antoinelamy/repos",
    "events_url": "https://api.github.com/users/antoinelamy/events{/privacy}",
    "received_events_url": "https://api.github.com/users/antoinelamy/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 9
  },
  {
    "email": "[email protected]",
    "name": "Xavier",
    "type": "Anonymous",
    "contributions": 2
  },
  {
    "login": "filipearker",
    "id": 25646135,
    "node_id": "MDQ6VXNlcjI1NjQ2MTM1",
    "avatar_url": "https://avatars3.githubusercontent.com/u/25646135?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/filipearker",
    "html_url": "https://github.com/filipearker",
    "followers_url": "https://api.github.com/users/filipearker/followers",
    "following_url": "https://api.github.com/users/filipearker/following{/other_user}",
    "gists_url": "https://api.github.com/users/filipearker/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/filipearker/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/filipearker/subscriptions",
    "organizations_url": "https://api.github.com/users/filipearker/orgs",
    "repos_url": "https://api.github.com/users/filipearker/repos",
    "events_url": "https://api.github.com/users/filipearker/events{/privacy}",
    "received_events_url": "https://api.github.com/users/filipearker/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 1
  },
  {
    "login": "MachoBandido08",
    "id": 44484236,
    "node_id": "MDQ6VXNlcjQ0NDg0MjM2",
    "avatar_url": "https://avatars2.githubusercontent.com/u/44484236?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/MachoBandido08",
    "html_url": "https://github.com/MachoBandido08",
    "followers_url": "https://api.github.com/users/MachoBandido08/followers",
    "following_url": "https://api.github.com/users/MachoBandido08/following{/other_user}",
    "gists_url": "https://api.github.com/users/MachoBandido08/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/MachoBandido08/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/MachoBandido08/subscriptions",
    "organizations_url": "https://api.github.com/users/MachoBandido08/orgs",
    "repos_url": "https://api.github.com/users/MachoBandido08/repos",
    "events_url": "https://api.github.com/users/MachoBandido08/events{/privacy}",
    "received_events_url": "https://api.github.com/users/MachoBandido08/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 1
  },
  {
    "email": "[email protected]",
    "name": "Thanh-Son-Philippe Lam",
    "type": "Anonymous",
    "contributions": 1
  },
  {
    "login": "apomalyn",
    "id": 22211097,
    "node_id": "MDQ6VXNlcjIyMjExMDk3",
    "avatar_url": "https://avatars2.githubusercontent.com/u/22211097?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/apomalyn",
    "html_url": "https://github.com/apomalyn",
    "followers_url": "https://api.github.com/users/apomalyn/followers",
    "following_url": "https://api.github.com/users/apomalyn/following{/other_user}",
    "gists_url": "https://api.github.com/users/apomalyn/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/apomalyn/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/apomalyn/subscriptions",
    "organizations_url": "https://api.github.com/users/apomalyn/orgs",
    "repos_url": "https://api.github.com/users/apomalyn/repos",
    "events_url": "https://api.github.com/users/apomalyn/events{/privacy}",
    "received_events_url": "https://api.github.com/users/apomalyn/received_events",
    "type": "User",
    "site_admin": false,
    "contributions": 1
  }
]

For more information, checkout GitHub documentation: https://developer.github.com/v3/repos/#list-contributors

ETS View

A faire
Développer et implémenter la partie étudiant en respectant les codes d'iOS mais aussi le visuel de l'application Android.

To-do list

  • Cards
  • MonETS
  • Implémenter la page de sécurité (issue ici)
  • Heuristique
  • Bibliothèque
  • Nouvelles
  • Bottin
  • Moodle

Visuel
À venir

Moodle : Consulter les devoirs

Is your feature request related to a problem? Please describe.
En tant qu'étudiant, j'aimerais pouvoir consulter les devoirs qui me sont assignés sur Moodle.

Describe the solution you'd like
La deuxième version d'ÉTSMobile offrait la possibilité de consulter les devoirs (note, date de remise, etc.).

Additional context
L'API de Moodle permet de retrouver les devoirs.
Par ailleurs, certaines notifications de MonÉTS (envoyées à l'app) concernent les devoirs publiés sur Moodle. Il serait intéressant de faire en sorte qu'une notification de ce type puisse mener vers la vue de détails du devoir concerné.

Tableau de bord : Mode d'édition

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir activer un mode d'édition avant de procéder à la modification de mon tableau de bord.

Actuellement, l'application ne propose pas de mode d'édition. L'utilisateur peut simplement balayer une carte afin de supprimer. Il peut également tenir et déplacer une carte afin réordonner celle-ci. Par conséquent, il est possible pour celui-ci de balayer une carte par erreur ou encore, au défilement, de tenir une carte et la déplacer par erreur.

Par ailleurs, il subsiste un certain manque d'affordance, car rien n'indique qu'il est possible de faire ces actions.

Finalement, la bouton dans le coin supérieur droit permet de restaurer toutes les cartes. Par contre, dans le futur, si plus de cartes sont développées, l'utilisateur devra supprimer et réordonner manuellement beaucoup de cartes ce qui peut être très fastidieux pour lui.

Describe the solution you'd like
Il faudrait remplacer le bouton de restauration par un bouton d'édition qui permettrait d'activer le mode d'édition. Lors de l'activation, l'application devra présenter une liste des noms des cartes et permettre les actions suivantes :

Réordonner

Chaque rangée de la liste doit présenter l'icône drag_handle à son extrémité droite.

Exemple du site de Material Design :

L'utilisateur peut déplacer les noms des cartes afin de changer l'ordre d'apparition des cartes.

Ajouter

  • Présenter un Floating Action Button au bas
    Exemple du site Material Design :
    ezgif-1-04c155921268
  • À l'appui du bouton, effectuer une transition vers la liste des noms des cartes manquantes. Chaque nom de carte doit être accompagnée d'une case à cocher.
  • À l'appui d'un bouton de confirmation, ajouter les noms sélectionnés (cochés) dans la liste et retourner à celle-ci.

Supprimer

  • Dans un overflow menu, afficher un item permettant de supprimer des cartes.
  • Lorsque l'utilisateur appuie sur l'item, afficher un bouton de confirmation de suppression (symbole de poubelle) ainsi que des cases à cocher à côté de chaque nom de carte.
  • À la suite de l'activation du bouton d'activation, retirer les noms sélectionnés (cochés) de la liste

Additional context
Exemple d'application utilisant ce type de flux (RC Info) :
ezgif-1-04c155921268

Moodle : Téléchargement de documents de cours

Is your feature request related to a problem? Please describe.
En tant qu'étudiant, j'aimerais pouvoir télécharger les documents publiés par les enseignants afin de pouvoir les consulter plus tard.

Describe the solution you'd like
La deuxième version d'ÉTSMobile offrait la possibilité de télécharger les documents.

Additional context
L'API de Moodle était utilisé pour obtenir les cours ainsi que les documents à télécharger.

Student View

A faire
Développer et implémenter la partie étudiant en respectant les codes d'iOS mais aussi le visuel de l'application Android.

To-do list

  • Grades
  • Profile

Visuel
À venir

Notes : Affichage adaptée aux grands écrans

Is your feature request related to a problem? Please describe.
L'affichage des détails ne s'adapte pas à la taille de l'écran.

Describe the solution you'd like
Sur un grand écran, la section des sommaires devrait être affichée à coté de la note et de la moyenne.

En ce qui concerne les évaluations, celles-ci seraient affichées sous la forme d'une grille sur un grand écran et une liste sur un petit écran.

Voici un exemple avec Google Actualités :
ezgif-4-2754f4c927de

Login View

A faire
Développer et implémenter la page de login en respectant les codes d'iOS mais aussi le visuel de l'application Android.

Visuel
À venir

Réception des notifications dans l'app Android

L'implémentation des notifications de la deuxième version d'ÉTSMobile a été extraite et modifiée afin de produire la librairie suivante : https://github.com/ApplETS/ETSMobile-Notifications-Android
L'implémentation de la nouvelle version d'ÉTSMobile pourrait être divisée en plusieurs étapes. Voici les tâches de la première étape :

  • Implémenter la connexion vers l'API de MonÉTS dans le module shared
    Ceci est nécessaire afin de récupérer le domaine de l'utilisateur (ex. « ENS »). Actuellement, l'implémentation de la connexion de l'application Android utilise l'API de Signets. Celle-ci pourrait donc être retirée afin d'éviter de la duplication. Par ailleurs, l'API de MonÉTS retourne d'autre éléments tels que le jeton et le cookie qui seront nécessaires pour de futurs appels. Ces éléments devront, donc, également être sauvegardés.

  • Lire et comprendre le document suivant : https://github.com/ApplETS/Notre-Dame/wiki/Push-Notifications-(EN)

  • Créer une nouvelle plateforme d'application sur SNS

  • Intégrer la librairie
    Note : Il sera demandé de redéfinir une méthode pour persister les nouvelles notifications, mais il n'est pas nécessaire de fournir une implémentation pour l'instant.

  • Fournir un PendingIntent permettant d'ouvrir l'application au clic

À la fin de cette première étape, l'utilisateur sera en mesure de recevoir des notifications et ouvrir l'application en cliquant sur une de celles-ci.

Control Language setting + ability to see a calendar in schedule

Hey guys first I would like to start by saying the app look amazing and you guys did a great job !!!
I currently have my phone setting in English but I would like to have the ability to change the language only for this app and change it in French instead.

  • I can't find a calendar like the one we had in the previous version.

mon compte se déconnecte constamment. il faudrait que mes informations soient enregistrées/connecter automatiquement lors de l'ouverture de l'application.

What happened:

mon compte se déconnecte constamment. il faudrait que mes informations soient enregistrées/connecter automatiquement lors de l'ouverture de l'application.

Version: 3.0.0-beta (30952)

Operating system: Android 7.0

Model: samsung SM-G925W8

Memory: 79% (2.07 GB used out of 2.62 GB)

Capacity: 82% (20.8 GB used out of 25.4 GB)

Locale: Canada French

Network:

WiFi: Disconnected

Logs: View

Attachments:

screenshot_1558977405801.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/19

Reported via Buglife

La moyenne de la classe est mauvaise, sue signets la moyenne est 5/7. C'est bizzare une moyenne plus grande que 100% dans ce cas-ci.

What happened:

La moyenne de la classe est mauvaise, sue signets la moyenne est 5/7. C'est bizzare une moyenne plus grande que 100% dans ce cas-ci. 

Version: 3.0.0-beta (30952)

Operating system: Android 9

Model: ONEPLUS A5010

Memory: 80% (6.04 GB used out of 7.54 GB)

Capacity: 45% (50.2 GB used out of 111 GB)

Locale: United States English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1558975064251.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/18

Reported via Buglife

Horaire : Ajouter des vues

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir afficher mon horaire selon une vue par jour, semaine ou mois afin de prendre connaissance de mes séances de cours ainsi que d'autres événements.

Describe the solution you'd like
L'utilisateur pourrait alterner entre les différentes vues. De plus, sa préférence serait sauvegardée par l'application.

Describe alternatives you've considered

Additional context
Une librairie propose les trois vues : https://github.com/alamkanak/Android-Week-View
Cependant, elle n'est plus maintenue.

Une vue par mois est proposée par la librairie suivante : https://github.com/prolificinteractive/material-calendarview

More View

A faire
Développer et implémenter la page "More" en respectant les codes d'iOS mais aussi le visuel de l'application Android.

To-do list

  • About
  • Report bugs
  • Settings
  • Contributeurs
  • Liste des Open Source Librairie

Visuel
À venir

Raccourcis

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir utiliser un raccourci afin d'accéder à une section qui m'intéresse le plus rapidement possible.

Describe the solution you'd like
Il faudrait ajouter des raccourcis vers l'horaire et les notes, car ce sont les sections les plus importantes.

Additional context
https://developer.android.com/guide/topics/ui/shortcuts

Horaire : Sélection de sources

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir connaître mon horaire de cours, les événements ÉTS, etc.

Describe the solution you'd like
Actuellement, l'application Android n'affiche que les séances de cours. J'aimerais que celle-ci affiche également d'autres sources que j'aurais sélectionnées.

Additional context
Le portail de MonÉTS affiche les événements provenant des sources sélectionnées par l'utilisateur.

image

Il serait possible pour l'application d'afficher la même information que le site web. De plus, les sélections effectuées dans l'application pourrait être reflétées sur le site web.

image

Sécurité : Barre de navigation apparaît dans l'écran de détails d'une procédure après un changement de configuration

Describe the bug
Après un changement de configuration (ex. : changement d'orientation), la barre de navigation réapparaît et semble cacher le bouton d'ppel d'urgence.

To Reproduce
Steps to reproduce the behavior:

  1. Aller dans ÉTS
  2. Aller dans Sécurité
  3. Cliquer sur une des procédures d'urgence (ex. : Appel à la bombe)
  4. Changer l'orientation de l'écran

Expected behavior
La barre de navigation devrait démarrer cachée et le bouton d'appel d'urgence devrait être visible.

Screenshots
image

Smartphone (please complete the following information):

  • OS: Android
  • Version 8.1

Mode employé

Is your feature request related to a problem? Please describe.
En tant qu'employé, j'aimerais pouvoir utiliser l'application pour consulter diverses informations telles que les nouvelles et les événements.

Describe the solution you'd like
Un mode employé serait proposé. Celui-ci masquerait l'item Étudiant.

Describe alternatives you've considered

Additional context

Bottin

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais rechercher les informations de contact d'un employé parce que j'aimerais le contacter.

Describe the solution you'd like
Une fonctionnalité de bottin serait incorporée dans l'application.

Describe alternatives you've considered
Actuellement, sur Android, le bouton du bottin mène vers la page du bottin sur le site de l'ÉTS.

Additional context
L'API de MonÉTS permet de rechercher les informations de contact d'un employé.
image

Aucune authentification ne semble être requise.

Exemple : GET https://portail.etsmtl.ca/api/bottin?texteRecherche=Philippe
Réponse :

[
    {
        "Numéro": 7159,
        "Nom": "Benoit",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie de la construction",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": null,
        "Téléphonebureau": "7407",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-1576",
        "PageWeb": null,
        "NomPrenoms": "Benoit, Philippe "
    },
    {
        "Numéro": 1791,
        "Nom": "Bocher",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie mécanique",
        "Titre1": "Professeur",
        "Télécopiebureau": "514 396-8530",
        "Téléphonebureau": "8645*",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-1808",
        "PageWeb": "",
        "NomPrenoms": "Bocher, Philippe "
    },
    {
        "Numéro": 4948,
        "Nom": "Choquette",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Service des enseignements généraux",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": null,
        "Téléphonebureau": "7182",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "B-2626",
        "PageWeb": null,
        "NomPrenoms": "Choquette, Philippe "
    },
    {
        "Numéro": 5541,
        "Nom": "Gatien",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie de la construction",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": null,
        "Téléphonebureau": "7407",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": null,
        "PageWeb": null,
        "NomPrenoms": "Gatien, Philippe "
    },
    {
        "Numéro": 7019,
        "Nom": "Gatien",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Service des enseignements généraux",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": null,
        "Téléphonebureau": "7752",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "B-2346",
        "PageWeb": null,
        "NomPrenoms": "Gatien, Philippe "
    },
    {
        "Numéro": 6712,
        "Nom": "Gélinas",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie électrique",
        "Titre1": "Commis magasinier",
        "Télécopiebureau": null,
        "Téléphonebureau": "7931",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-2506",
        "PageWeb": null,
        "NomPrenoms": "Gélinas, Philippe "
    },
    {
        "Numéro": 6205,
        "Nom": "Hamelin",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie des systèmes",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": null,
        "Téléphonebureau": "7085",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-3736",
        "PageWeb": null,
        "NomPrenoms": "Hamelin, Philippe "
    },
    {
        "Numéro": 6133,
        "Nom": "Lacombe",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Service des finances",
        "Titre1": "Agent d'approvisionnement et de gestion administrative",
        "Télécopiebureau": "514 396-8821",
        "Téléphonebureau": "8822*",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "B-1308",
        "PageWeb": null,
        "NomPrenoms": "Lacombe, Philippe "
    },
    {
        "Numéro": 6713,
        "Nom": "Lavallée",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie électrique",
        "Titre1": "Commis magasinier",
        "Télécopiebureau": null,
        "Téléphonebureau": "7931",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-2506",
        "PageWeb": null,
        "NomPrenoms": "Lavallée, Philippe "
    },
    {
        "Numéro": 6610,
        "Nom": "Matabiau",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Systèmes d'information",
        "Titre1": "Technicien en informatique",
        "Télécopiebureau": null,
        "Téléphonebureau": "7313",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "B-1624",
        "PageWeb": null,
        "NomPrenoms": "Matabiau, Philippe "
    },
    {
        "Numéro": 7187,
        "Nom": "Pernot",
        "Prénom": "Jean-Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie des systèmes",
        "Titre1": "Professeur",
        "Télécopiebureau": null,
        "Téléphonebureau": "7158",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-3649",
        "PageWeb": null,
        "NomPrenoms": "Pernot, Jean-Philippe "
    },
    {
        "Numéro": 5789,
        "Nom": "Roy",
        "Prénom": "Jean-philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Département de génie de la construction",
        "Titre1": "Chargé de cours",
        "Télécopiebureau": "514 396-8584",
        "Téléphonebureau": "7407",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "A-1576",
        "PageWeb": null,
        "NomPrenoms": "Roy, Jean-philippe "
    },
    {
        "Numéro": 3438,
        "Nom": "Terrier",
        "Prénom": "Philippe",
        "Deuxièmeprénom": null,
        "Suffixe": null,
        "Service": "Service des enseignements généraux",
        "Titre1": "Maître d'enseignement",
        "Télécopiebureau": null,
        "Téléphonebureau": "7430",
        "Adressedemessagerie": "[email protected]",
        "Emplacement": "B-2322",
        "PageWeb": null,
        "NomPrenoms": "Terrier, Philippe "
    }
]

Nouvelles

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir consulter les nouvelles de l'ÉTS.

Describe the solution you'd like
Le bouton Nouvelles devrait mener vers un écran qui affiche les nouvelles.

Describe alternatives you've considered
Actuellement, le bouton Nouvelles mène vers le site web suivant : https://www.etsmtl.ca/nouvelles/

Additional context
L'écran de nouvelles pourrait afficher le contenu des fils RSS (https://www.etsmtl.ca/rss).
Nouvelles (FR) : https://institutionnel-staging.etsmtl.ca/Nouvelles/rss
Nouvelles de la bibliotèque (FR) : https://www.etsmtl.ca/fils-rss?rss=NouvellesBiblioRSS

Sécurité : Carte trop grande en mode paysage

Describe the bug
En mode paysage, la carte est trop grande et empêche le défilement de la page.

To Reproduce
Steps to reproduce the behavior:

  1. Aller dans ÉTS
  2. Aller dans Sécurité
  3. Mettre l'appareil en mode paysage

Expected behavior
La carte devrait être plus petite et ne devrait pas empêcher le défilement.

Screenshots
image

Smartphone (please complete the following information):

  • OS: Android 8.1
  • Version: 8.1

Additional context
Il serait possible d'ajouter un layout avec l'attribut land afin d'ajuster la taille et la disposition des éléments en mode paysage.

Changer les libellés de « Registered courses » et de « Accumulated courses »

Voici un problème rapporté par A***** C. (a*****.***@gmail.com) :

Salut,
Jai essayé un peu votre beta et j'aurais une petite suggestion:
Dans la page du profil de l'étudiant, les champs "Registered courses" et "Accumulated courses" devraient selon moi plutôt être "Registered credits" et "Accumulated credits". Sinon c'est confondu avec le champ "Completed courses" qui lui fait vraiment référence aux cours complétés plutôt qu'aux crédits des cours.

C'est tout! Sinon l'appli semble vraiment bien, lâchez pas!

Buglife : Améliorer l'accès

Actuellement, afin de rapporter un problème, l'utilisateur peut cliquer sur Rapporter un bogue. Cependant, la capture d'écran rattaché ne montre que le menu Plus.

Afin de rapporter un problème à partir d'un autre écran, l'utilisateur doit agiter son appareil ce qui n'est pas intuitif.

Horaire : La carte de l'horaire est vide en mode hors-ligne

Describe the bug
Sur le tableau de bord, la carte de l'horaire est vide en mode hors-ligne.

To Reproduce
Steps to reproduce the behavior:

  1. Désactiver la connexion Internet
  2. Aller à Accueil

Expected behavior
La carte présente les séances d'aujourd'hui.

Screenshots
image

Smartphone (please complete the following information):

  • OS: Android
  • Version: 8.1

Barre de progression de la session

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir comparer le nombre de jours écoulés et le nombre de jours total de la session afin de connaître l'avancement de la session.

image

Describe the solution you'd like
La deuxième version d'ÉTSMobile affichait, sur une barre de progression, le nombre de jours écoulés sur le nombre de jours total de la session.

Intégration de ÉTSmap

Is your feature request related to a problem? Please describe.
Il est peu agréable de devoir ouvrir ÉTSmap et d'avoir à retranscrire le numéro de local d'un cours.

Describe the solution you'd like
Il serait intéressant d'intégrer l'application ÉTSmap. On pourrait par exemple cliquer sur le numéro de local dans l'horaire et voir l'itinéraire s'afficher. Ceci serait particulièrement intéressant considérant que l'ÉTS s'agrandit année après année.

Describe alternatives you've considered
Un lien direct vers l'application actuelle qui transfert le numéro de local automatiquement.

Additional context
(Add any other context or screenshots about the feature request here.)

in my courses, it says my classes have like 2% average when they have 2/2.4 average. that bug doesnt appear on my own grade though, only on the class's. i wish I could show you a screenshot but this bug report section doesnt allow me to attach a screenshot.

What happened:

in my courses, it says my classes have like 2% average when they have 2/2.4 average. that bug doesnt appear on my own grade though, only on the class's. i wish I could show you a screenshot but this bug report section doesnt allow me to attach a screenshot.

Version: 3.0.0-beta (30964)

Operating system: Android 9

Model: Xiaomi POCOPHONE F1

Memory: 70% (3.84 GB used out of 5.5 GB)

Capacity: 19% (21.3 GB used out of 111 GB)

Locale: United States English

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1559453255359.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/21

Reported via Buglife

Intitulé de début de semaine ne correspondent pas avec les horaires affichés

What happened:

Intitulé de début de semaine ne correspondent pas avec les horaires affichés

Version: 3.0.0-beta (30733)

Operating system: Android 8.1.0

Model: HMD Global TA-1053

Memory: 67% (1.2 GB used out of 1.78 GB)

Capacity: 91% (7.98 GB used out of 8.78 GB)

Locale: France French

Network:

WiFi: Connected

Logs: View

Attachments:

screenshot_1554897015158.png

URL: http://buglife.com/apps/etsmobile-beta-6fc235f7-1944-4ba8-bb15-6d69813d2e7a/reports/10

Reported via Buglife

Dashboard View

A faire
Développer et implémenter la page de dashboard en respectant les codes d'iOS mais aussi le visuel de l'application Android.

To-do list

  • Cards
  • Schedule card
  •  Grades card

Visuel
À venir

Sécurité : Numéros de local des postes de sécurité

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais connaître les numéros de local des postes de sécurité afin de les situer plus facilement.

Describe the solution you'd like
Indiquer le numéro de local lors d'un clic et pas simplement « Poste de sécurité »

Additional context
image

App Widget

Is your feature request related to a problem? Please describe.
En tant qu'utilisateur, j'aimerais pouvoir consulter mon horaire à partir d'un AppWidget afin d'éviter d'avoir à ouvrir l'application pour le faire.

Describe the solution you'd like
La deuxième version d'ÉTSMobile proposait un AppWidget qui affichait l'horaire du jour. Le jour était changé automatiquement. Cependant, l'utilisateur pouvait cliquer sur les flèches pour changer de jour. Par ailleurs, lors de l'initialisation du AppWidget, l'utilisateur pouvait configurer l'opacité du fond, la couleur de fond et la couleur de police.
ezgif-4-0d17221bd6f3

Additional context
Voici de la documentation pour l'implémentation et le design :

Schedule View

A faire
Développer et implémenter la page de l'horaire en respectant les codes d'iOS mais aussi le visuel de l'application Android.

Visuel
À venir

Réduire le nombre de messages d'erreur de connexion Internet

Is your feature request related to a problem? Please describe.
Actuellement, lorsque l'appareil est déconnecté, un message d'erreur apparaît à chaque chargement de contenu.

Describe the solution you'd like
Les message d'erreurs liées à l’absence de connexion ne seraient plus affichées. Un seul message serait plutôt affiché lors de la perte de connexion et un autre message lors du rétablissement de la connexion.

Additional context
Afin de surveiller le statut de la connexion, il faut enregistrer un BroadcastReceiver. Pour obtenir plus d'informations, veuillez consulter le lien suivant : https://developer.android.com/reference/android/content/BroadcastReceiver.html
Par ailleurs, certaines librairies comme merlin permet de simplifier l'implémentation.

Security view

A faire
Développer et implémenter la page de sécurité en respectant les codes d'iOS mais aussi le visuel de l'application Android.

To-do list

  • Implémenter la carte avec les positions des postes de sécurité
  • Intégrer les procédures (documentations procédures à venir)

Visuel
À venir

Week number (Feature Request)

Est-ce que ce serait possible d'ajouter le numéro de la semaine en dessous de la date du dimanche? Ça m'aiderait à suivre l'avancement de la session

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.