Traffic Portal
Introduction
Traffic Portal is an AngularJS client served from a Node.js web server designed to consume the Traffic Ops API. Traffic Portal is the official replacement for the legacy Traffic Ops UI.
Software Requirements
To work on Traffic Portal you need a *nix (MacOS and Linux are most commonly used) environment that has the following installed:
Access to a working instance of Traffic Ops
Install Global NPM Packages
Grunt CLI can be installed using NPM.
npm -g install grunt-cli
Install Compass
Compass can be installed using gem
manually, or by using bundle
Tip
Bundle will automatically install the correct version of the gems.
brew install ruby
/apt-get install ruby
/yum install ruby
gem update --system
At this point, you can either manually install the gems or use bundler
For manually:
gem install sass compass
For automatically:
gem install bundle && bundle install
Note
Bundle requires ruby versions > 2.3.0, so if you’re using a version of ruby < 2.3.0 then this will not work.
Make sure that
compass
andsass
are part of yourPATH
environment variable.- If not, you can see where gem installs
compass
andsass
by running: gem environment
- If not, you can see where gem installs
- In there, you can see where ruby is installing all the gems. Add that path to your
PATH
environment variable. For example, it is
/usr/local/lib/ruby/gems/2.7.0/gems/compass-1.0.3/bin/
for this test setup.
- In there, you can see where ruby is installing all the gems. Add that path to your
- Once you have installed
compass
successfully, make sure you can reach it by typing: compass version
This should give a valid output. For example, for the test setup, the output is:
- Once you have installed
Compass 1.0.3 (Polaris)
Copyright (c) 2008-2020 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass
Traffic Portal Project Tree Overview
traffic_control/traffic_portal/app/src - contains HTML, JavaScript and SCSS source files.
Installing The Traffic Portal Developer Environment
Clone the Traffic Control Repository
Navigate to the
traffic_portal
subdirectory of your cloned repository.Run
npm install
to install application dependencies intotraffic_portal/node_modules
. Only needs to be done the first time unlesstraffic_portal/package.json
changes.Make sure that compass is installed and functioning correctly by running
compass version
. If compass is not available, then it can be installed following the instructions under Install Compass.- Modify
traffic_portal/conf/configDev.js
: Valid SSL certificates and keys are needed for Traffic Portal to run. Generate these (e.g. using this SuperUser answer) and update
ssl
.Modify
api.base_url
to point to your Traffic Ops API endpoint.
- Modify
Run
grunt
to package the application intotraffic_portal/app/dist
, start a local HTTPS server (Express), and start a file watcher.Navigate to http(s)://localhost:[port|sslPort defined in
traffic_portal/conf/configDev.js
]
Note
The Traffic Portal consumes the Traffic Ops API. Modify traffic_portal/conf/configDev.js to specify the location of Traffic Ops.