After several people expressed interest in using Commuter Dash themselves, I decided to completely rewrite it in Angular to enable others to use it.
The rewrite involved developing an API service with PHP which aggregates, caches and serves the data in a JSON format. (See DashServer v1.) An Angular service on Dash consumes this API by regularly sending a post request containing a small JSON object which includes an API key and a command argument. As data is updated by the service, the values on the front-end are updated by the data binding.
The front-end functionality of Dash v2 is virtually identical to that of Commuter Dash, except for the added ability to customize and configure the application. The configuration options include:
- API Key: Used to authenticate to DashServer v1 which returns a customized data feed for that user.
- Temperature Units: Users can select between Celsius and Fahrenheit for temperature units.
- 24 Hour Clock: Users can change the display of the clock from 12 hour to 24 hours.
- Show Seconds: Users can opt to display seconds on the clock.
Other minor changes include:
- Smoother scrolling animations.
- The "time until departure" section now displays the units of time.
- The "time until departure" section now shows seconds when departures are going to occur in less than a minute.
- Display of the transit stop number.
- Dynamic display of the vehicle types that service a given stop.
- Wheelchair accessibility information for a given stop.
- Weather forecast now shows 6 days instead of 4.
- Text that indicates when the data was last updated from the API service.
- Current temperature also displays humidex and windchill values if they are available.