Developed by TransitMatters Labs
Shows new MBTA Orange, Red, and Green Line trains as they come into service.
Dependencies:
node 20.x
(withnpm 10.x
)python 3.12
poetry
- Ensure
poetry
is using the correct Python version by runningpoetry env use <your python3.12 binary>
- Ensure
Run:
$ npm install
$ npm start
- visit http://localhost:5000/
To use an API key, put it in server/secrets.py
or as an environment variable MBTA_V3_API_KEY
To lint frontend and backend code, run $ npm run lint
in the root directory
To lint just frontend code, run $ npm run lint-frontend
To lint just backend code, run $ npm run lint-backend
Additional requirements:
- nginx
Nginx serves as a reverse-proxy for the app running on localhost:5001. The Flask app is run under gunicorn and controlled by systemd, which will restart after failure or reboot automatically.
- Make sure AWS CLI is set up and working — i.e.
aws cloudformation describe-stacks | wc -l
should work - Make sure these environment variables are set up in your shell (ask a Labs member for values if needed):
TM_NTT_CERT_ARN
(for production)TM_LABS_WILDCARD_CERT_ARN
(for beta)
- A key named
transitmatters-ntt
needs to be available in your AWS account and copied to~/.ssh/transitmatters-ntt.pem
. - You will also need to create an
ec2-secrets.py
file in thedevops/
directory. - Run
cd devops && ./deploy.sh
(add-p
for production) to deploy. - You're all set! Visit:
- https://ntt-beta.labs.transitmatters.org for beta
- https://traintracker.transitmatters.org for production
This project generally fits the "Flask app" mold. Contact us if you need help: labs@transitmatters.org
If you've found this app helpful or interesting, please consider donating to TransitMatters to help support our mission to provide data-driven advocacy for a more reliable, sustainable, and equitable transit system in Metropolitan Boston.