This is the repository for the TransitMatters Data Dashboard. Client code is written in JavaScript with React, and the backend is written in Python with Chalice.
- node 16.x required, works with anything >=16.x and <17. (verify with
node -v
) - Python 3.9 with recent poetry (verify with python --version; poetry --version;
poetry self update
to update poetry)
- Add
MBTA_V2_API_KEY
to your shell environment:$ export MBTA_V2_API_KEY='KEY'
in ~/.bashrc or ~/.zshrc
- Add your AWS credentials (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) to your shell environment, OR add them to a .boto config file with awscli command
$ aws configure
. - In the root directory, run
$ npm install
to install all frontend and backend dependencies - Run
$ npm start
to start both the JavaScript development server and the Python backend at the same time. - Navigate to http://localhost:3000 (or the url provided after running
npm start
)
- Configure AWS CLI 1.x or 2.x with your AWS access key ID and secret under the profile name
transitmatters
. - Configure shell environment variables for AWS ACM domain certificates.
TM_FRONTEND_CERT_ARN
TM_FRONTEND_CERT_ARN_BETA
TM_BACKEND_CERT_ARN
TM_BACKEND_CERT_ARN_BETA
- (You may also need to set
AWS_DEFAULT_REGION
in your shell tous-east-1
. Maybe not! We're not sure.)
- Execute
$ ./deploy.sh
(for beta) or$ ./deploy.sh -p
(for production). If deploying from a CI platform (such as GitHub Actions) you may also want to include the-c
flag.
Additional notes:
- If you're running this locally, your local MBTA-performance API key (which might be your own) will get uploaded to AWS!
- If you're on a platform with a non-GNU
sed
, deploy.sh might fail. On macOS, this is fixed by$ brew install gnu-sed
and adding it to your PATH. - If you get an unexplained error, check the CloudFormation stack status in AWS Console. Good luck!
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
See server/rapid/gen_latest_rapid_data.sh
and server/bus/gen_latest_bus_data.sh
for instructions.
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.