trener icon indicating copy to clipboard operation
trener copied to clipboard

A simple programming challenge for implementing a train station app

Trener Project Challenge

This was a project originally made for Software Construction undergraduate course (2012) at https://www.uvm.cl[Universidad de Viña del Mar].

Merval Metro System

http://www.merval.cl[Merval (Metro Valparaíso)] is a train/metro system that travels between https://en.wikipedia.org/wiki/Valpara%C3%ADso[Valparaíso] to https://en.wikipedia.org/wiki/Limache[Limache].

Requirements

The software must provide the following features.

Must: Return the next train

Given the current hour, day, destination and origin the software must return the nearest train that will travel from origin to destination.

Must: Return the total travel cost

Given the hour, day, origin, destination and user category the software must return the total travel cost.

Should: Optional Requirements

  • Return the total travel time.
  • Show a list of near trains.
  • Show the prices for the other user categories.
  • Alert the user when a train is near the station.
  • Enable the user to set a default origin, destination.
  • Other quality of life improvements.

Example

image:https://user-images.githubusercontent.com/292738/81207266-4f381600-8f9b-11ea-9253-cf7cc7ea4273.png[Tr5nr in iOS]

Documentation

Detailed documentation is available (in Spanish) at docs directory. An example implementation was made using XCode for iPhone devices, available at example.

Database

Some csv files and a sqlite database are provided with all the needed data to implement this software, available at data. For React projects you can use https://github.com/agershun/alasql[AlaSQL]. Data is available as trener.json or trener.js.

Challenge

Implement this software in the stack that you are most proficient. Maybe a website with React or an app with React Native.

++++ Made with by Ninjas.cl. ++++