Skip to content

A React Native implementation of an intuitive public transport application in Montevideo city.

Notifications You must be signed in to change notification settings

leopiney/light-stm-rn

Repository files navigation

Light STM

This project was bootstrapped with Create React Native App.

Below you'll find information about performing common tasks. The most recent version of this guide is available here.

Ideas

  • Set favorite lines/stops: Most people use 2 or 3 lines every day, they don't need to feel overwhelmed with all the other lines around them.
  • A dashboard to show all favorite stops.
    • Show lines predictions
    • Show buses positions if available
  • Can see detailed/fullscreen information for each stop
    • Can delete stop-lines from this screen
    • Track the average speed of buses? Sometimes the second bus is faster than the first one.
    • Having enough tracking information of the buses of a certain line, predict where the buses really are based on its last reported geo-position. Eg: The system could learn to predict the real position in different days of the week, it's not the same the speed of a bus on a Sunday's afternoon than the speed of the same line at Monday 6 PM.

STM MVD "lent" data

  1. Download the STM MVD APK file.
  2. Unzip the preloaded database inside:
unzip -p <path-to-apk> assets/stm.zip > stm.zip
unzip stm.zip
  1. Now you have the database stm.sqlite3 :party-parrot:

CUCTSA API

Service reference: http://mobileapps.movistar.com.uy/ibus/IBus.svc?wsdl

Montevideo STM API

Bus stop lines

Request

GET /transporteRest/variantes/{parada-id}

Response

{
  descripcion: string,
  destinos: Array<{
    destino-codigo: destino-nombre
  }>,
  variantes: Array<{
    linea-codigo: Array<destino-codigo>
  }>,
  lineas: Array<{
    linea-codigo: linea-nombre
  }>
}

Realtime - nextETA on a specific set of target locations

Request

POST /stmonlineRest/nextETA

{
  parada: parada-id,
  variante: Array<destino-codigo>
}

Response

{
  type: "FeatureCollection",
  features: Array<{
    type: "Feature",
    properties: {
      codigoBus: number,
      codigoEmpresa: number,
      variante: destino-codigo,
      eta: number,
      dist: number,
      pos: number,
    },
    geometry: {
      type: "Point",
      coordinates: Array<number>(2)
    }
  }>
}

About

A React Native implementation of an intuitive public transport application in Montevideo city.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published