Inspiration

Recharger la carte OPUS est devenu beaucoup plus convivial depuis l'introduction de la borne de recharge à la maison. Mais nous croyons qu'il y a toujours place à l'amélioration. Comme la carte OPUS utilise un technologie NFC, elle est déjà compatible avec la plupart des cellulaires! C'est-à-dire qu'il serait possible de créer une application mobile permettant de voir le nombre de billets restants et d'abonnements actifs, obtenir des rappels automatiques pour renouveller ses abonnements et même acheter des billets directement dans une application mobile!

Ce que notre projet fait

Lorsqu'une carte OPUS lui est présenté, STMobile lit les informations qui s'y trouvent. L'application liste ensuite le numéro de carte, sa date d'expiration, le nombre de billets présents sur la carte ainsi que les abonnements et leurs dates d'expirations respectives.

Comment nous l'avons construit

Nous avons commencé par faire un travail d'ingénierie inverse préliminaire pour obtenir des informations sur la carte. Une fois cela fait, nous avons fait une application préliminaire en Kotlin pour Android. À travers l'API NFC, nous avons ensuite pu collecter beaucoup plus d'information sur la carte et nous aider de programmation pour accélérer notre recherche. Une fois les secrets de la carte révélés, nous avons continué en débutant l'implémentation d'une interface graphique conviviale pour obtenir les données de la carte simplement.

Défis

Une bonne part du travail a été la compréhension du fonctionnement de la carte. En effet, même si la carte OPUS est inspirée par le standard Calypso, elle dévie parfois du standard, ce qui est encore plus complexe lorsqu'on sait à quel point celui-ci est vague. Il nous a donc fallu fouiller à tâton pour trouver les commandes exactes à envoyer à la carte ainsi que le format des données, ce qui a notamment voulu dire attendre plusieurs heures pour dresser un inventaire exhaustif des données sur la carte. De plus, aucun de nous n'avaient la moindre expérience avec Kotlin. À notre grande surprise, il était très éloigné du Java, avec lequel nous étions plus familiers, ce qui a rendu beaucoup plus ardu que prévu la conception de l'application mobile. Nous étions souvent embourbés dans des problèmes qui semblaient pourtant très simple à régler à cause du manque d'expérience avec l'environnement.

Ce dont nous sommes fier

Nous sommes très fier d'avoir pu se rendre aussi loin dans le développement de l'application sachant que nous n'avions littéralement aucune expérience dans aucune des technologies utilisées, que ce soit Kotlin, Android ou NFC. Nous sommes aussi extrêmement fier d'avoir pu relever le défi de trouver comment lire une bonne partie des informations contenues sur la carte, et ce, avec une documentation floue, incomplète, et parfois même ignorée par l'implémentation.

Plans pour le futur de STMobile

Notre projet, bien que nous en soyons très fier, est loin de ne plus pouvoir être amélioré. Pour l'instant, il ne peut que lire certaines des informations contenues sur la carte. Il serait très intéressant de retrouver l'ensemble des données stockées. Ensuite, à terme, avec la collaboration de la STM, pouvoir intégrer un système de recharge directement dans l'application mobile serait le réel objectif de l'application et le vrai point tournant dans le monde du transport en commun.

Built With

Share this project:

Updates