Ce projet a un but très simple ! Permettre à chaque abonné TGV Max de rentabiliser un maximum son abonnement.
En effet, les places TGV Max sont très réduites dans les trains, et en obtenir une est parfois compliqué. Il faut être très réactif, regarder régulièrement sur son téléphone si de nouvelles places sont disponibles, changer parfois plusieurs fois de billet de train, afin d’avoir un horaire qui nous convient véritablement.
Bref, avoir un abonnement TGV Max peut parfois engendrer un certain stress, une certaine frustration ou difficulté à avoir un billet qui nous convient.
Vous pourrez ainsi avoir votre billet de train en toute tranquillité, et n’avoir plus aucun stress sur vos épaules. De plus en période de fortes demandes (comme à Noël par exemple), ou en cas de grève, vous bénéficierez d’une réactivité éclair, et pourrez donc profiter du peu de places mises en vente !
L’application web VMAX a pour but de faire face à ce problème. En effet, cette application permettrait aux utilisateurs de recevoir une alerte quand une place TGV Max est disponible dans un trajet qui les intéresse.
Ainsi plus de soucis à se faire, plus de stress à avoir, ou de temps à perdre, il suffit de rentrer ses préférences et vous serez alors notifier en cas de nouvelle place disponible.
Pas d’inquiétude, vous n’aurez pas à remplir un nombre interminable de questions. Il vous suffira d’indiquer la gare de départ, la gare d’arrivée, le jour de votre départ, et l’heure si vous le souhaitez.
L'usage de la fonctionnalité IFTTT permettra elle d'envoyer un mail ou une notification en cas de disponibilité de place TGV MAX pour une demande précise de l'utilisateur.
Pour développer ce projet, nous allons devoir utiliser plusieurs technologies. On va mixer à la fois le concept d’API, et l’IFTTT.
En effet, l'utilisation d'API va être indispensable pour par exemple collecter les données de la SNCF et pouvoir les utiliser.
Il va tout d'abord falloir mettre en place et instaurer un serveur qui va héberger l’application client et l’API, servant à envoyer les requêtes à l’API SNCF et à relier cette fonctionnalité aux autres applets disponibles via IFTTT. Nous devons ainsi trouver un hébergeur pour mettre le site en ligne.
Pour en savoir plus sur l'utilité d'un serveur
Il existe une multitude de technologies disponibles pour créer une API, comme par exemple : Node.js, ou encore PHP. Le développeur est libre de choisir l’API qu’il souhaite.
Cependant, peu importe la technologie choisie, il va falloir ensuite créer un routeur. Le routeur va servir à définir tous les points d’accès aux différentes fonctionnalités à travers des URL.
Ainsi par exemple, l’URL tgv-max.com/api/destinations pourra servir de point d’accès au frontend pour récupérer toutes les destinations disponibles. Il serait possible de les faire visualiser à l’utilisateur depuis l’application web.
Pour les destinations, on peut s’appuyer sur les données fournies par la SNCF, comme sur ce lien
En fin de compte, on pourra grâce aux paramètres facultatifs avoir une URL : /search?destination=Lyon pour rechercher tous les trains en destination de Lyon, /search?origin=Paris pour chercher tous les trains à départ de Paris
Enfin, le plus important, on pourra avoir : /search?destination=A&origin=B pour rechercher tous les trains d’un point A à un point B.
Ces paramètres servent à expliquer au serveur ce qu’il doit chercher sur l’API SNCF
Nous pouvons par exemple nous inspirer de ces routes suivante
Pour avoir les API de la SNCF
Maintenant il faut mettre en place l’architecture de l’API communiquant avec SNCF et IFTTT.
Une fois le nom de domaine et le serveur hébergé, on peut enfin mettre ce que l’on veut en ligne. Ainsi le but va être d’y mettre en ligne surtout deux choses :
- premièrement, nous devons créer et mettre en ligne l’API que va utiliser notre application.
- nous devons également distribuer l’application web aux visiteurs internet.
On distingue deux types d’API. Les API backend, qui sont le cerveau de l’application, et les API frontend qui ne servent que de visuel et d’interface pour les fonctionnalités backend.
Ainsi, il faut tout d’abord commencer par les API backend.
Pour en savoir plus sur les API backend et frontend
Plus généralement, on pourra créer toutes les routes suivantes :
• /destinations pour les destinations disponibles.
• /origins pour les villes de départs
• /search avec des paramètres facultatifs, pour permettre à l’utilisateur de chercher les trains en direction de Lyon par exemple.
Le paramètre est une information que l’utilisateur peut donner en même temps d’accéder à une URL. Il se présente généralement sous la forme key=value. Pour plus d’informations on pourra par exemple consulter ce site
Il va maintenant falloir créer les requêtes avec les paramètres dynamiques (paramétrage du point de départ, d’arrivée, ou encore du jour de départ par exemple).
Les routes sont désormais créées. Ainsi il faut maintenant pouvoir mettre en place une intelligence qui va solliciter les routes en question lorsqu’elles sont appelées.
Pour l’instant notre serveur sert juste à recevoir les informations renseignées par l’utilisateur qui renseigne les villes qu’il veut chercher. On se trouve ainsi confronter à un nouveau défi.
En effet, il va maintenant falloir faire en sorte que lorsque notre application fait une requête a l’API sur /search?destination=...&origin=... le serveur fasse lui une requête sur l’API SNCF. Pour cela on pourrait utiliser la fonctionnalité IFTTT.
Une fois la réponse d’SNCF reçue, il faut la sauvegarder en une base de données, comme MongoDB. Il faut également pouvoir se rappeler quel utilisateur a enregistré quelle destination.
Voici par exemple une vraie requête faite à l’API SNCF sur ce lien
Il faudrait maintenant mettre en place l’architecture de client. Il faut créer une application web (client) avec lequel l’utilisateur va pouvoir interagir.
Il existe beaucoup de technologies pour l’interaction avec le visuel des sites, la base de toutes étant Javascript.
A cette étape, l’important est de pouvoir désormais relier le client aux fonctionnalités développées de l’API communiquant avec SNCF, à travers des formulaires.
Il faudrait si possible un formulaire pour créer son compte et gérer les sauvegardes et autres données. Cette application va servir d’intermédiaire entre l’utilisateur et les fonctionnalités situées sur l’API que seul l’application sait utiliser.
Voici un exemple de formulaire sur ce lien
Enfin, dans cette dernière étape, il faut relier l’application existante (tant backend que frontend) avec l’API IFTTT pour intégrer le déclenchement des mails, des alertes, des notifications.
En effet, une fois que tout fonctionne, c’est à dire que l’application web peut demander à l’API de communiquer avec SNCF et que l’utilisateur peut enregistrer ses préférences, il faut connecter l’API du serveur à celle d’IFTTT que l'on peut trouver sur ce lien
Ainsi il faut relier les recherches du serveur, qui va tourner en boucle pour interroger SNCF avec IFTTT pour déclencher tous les applets possibles qui existent, comme la demande d’envoi d’un mail.