Giter Club home page Giter Club logo

septatrains's Introduction

septaTrains

CircleCI codecov

This application is a transit tracker focused on SEPTA regional rail trains. It's built with Salesforce Lightning and Salesforce DX, and is intended as a demonstration and learning project for Lightning and for SFDX development lifecycle and toolchain work. It uses Leaflet for mapping with OpenStreetMap data.

For discussion of the toolchain being applied here, including SFDX, Visual Studio Code, CircleCI, Codecov.io, and PMD, see ktema.org.

SEPTA APIs

This application uses three SEPTA APIs:

It also sources station location data from SEPTA's GTFS feed (stored statically).

SEPTA APIs refer to stations using several different names. In this package, they are referred to as the "display name", the "API name", and the "GTFS name". Stations also have a numeric location ID and in some cases a short name returned by the Regional Rail Schedules API.

The API name is mostly acceptable for user-facing purposes, but in some cases uses out-of-date names or terse abbreviations. In many cases, the API name is identical to the display name. The display name and the GTFS name are mostly identical (and are close together than the GTFS and API names) but differ in a number of cases. Mappings between the display name and API name are officially established by SEPTA. There is no official mapping between API names and location IDs or GTFS names known to me.

The Arrivals and Departures API requires the station API name or the location ID. The latter is a recent addition, and permits some future refactoring of how septaTrains handles name storage.

The TrainView API and the Regional Rail Schedules API return schedules in terms of API names. However, the Regional Rail Schedules API sometimes returns non-standard short station names, such as "30th St" and "Norristown" (which are neither the API nor display names for those stations). There is no offical list of these short names or a mapping known to me.

The System Locations (JSON) API, which is not used in the current version of this project due to its 50-record return limitation, returns display names and location IDs.

The SEPTA GTFS feed includes location IDs and GTFS names. This project uses data transformed by hand from the GTFS feed, via SEPTA's GitHub to match the display names.

septatrains's People

Contributors

davidmreed avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.