Agile Team Tool
A web app enabling teams to track and analyze progress on their journey of maturing as an Agile team. You can visit the tool here.
Overview
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Getting Started
In order to run this project on your local machine, you have a couple of options. You can either run Node.js, MongoDB and Redis on your machine, or you can use Docker to run everything for you.
If you use the Docker instructions below, then you only have to have [Node.js] and [npm] installed.
Make sure to execute npm install
first for module dependencies
Node.js
This project uses Node.js version 6.x. We recommend installing Node.js via nvm. With nvm, you can install the correct version of Node.js using nvm use node
, which installs the latest version.
Redis
Redis is used for session management.
MongoDB
Data are stored in JSON-like documents using MongoDB.
ReactJS
Application UI is built using the ReactJS framework.
IBM v18 Northstar
Along with the custom styling used to implement the current UI, most of the default styling is based on IBM's v18 Northstar framework. jQuery is also packaged as part of the framework.
Highcharts
Highcharts is used to graph metrics relevant to the tool.
Environment Variables
Variable | Description |
---|---|
authType | ldap-login or saml |
ldapAuthURL | LDAP authentication API end point when authType: ldap-login |
saml | SAML configuration used for authentication with w3 SSO when authType: saml . |
redisDb | Redis related setup for session management |
sentry | Sentry related setup for tracking possible applicaiton exceptions. |
mongoURL | Connection setup for MongoDB. |
bluepagesURL | Bluepages API end point used by job that validates team member profiles |
facesURL | Faces API endpoint. |
SMTP related configuration. | |
ibmNPSKey | Net Promoter Score (NPS) related configuration. |
environment | development or production |
googleAnalyticsKey | API key for Google analytics. |
Starting the Development Server
The most simple setup, using default environment variable values:
npm install
npm start
A bit of a better setup might be something like the following, where you can change environment variables:
npm install
logColors=true redisHost=172.17.0.2 redisPort=6379 NODE_ENV=production nodemon ./bin/www
Using Docker in your local environment
In order to run the application and the associated MongoDB and Redis processes in Docker containers in your local environment, do the following. Please note that the mongodb
container doesn't start quickly enough to bring all the containers up at the same time, and causes the app
to fail. So you'll need to do them in two batches, with mongodb
and redis
first.
npm install
docker-compose up mongodb redis
docker-compose up app
In order to load the MongoDB with existing data, do the following with a file that was dumped from a running database.
docker cp <path_to_file>/agiletool_stage.tar.gz agileteamtoolnodejs_mongodb_1:/tmp
docker exec -it agileteamtoolnodejs_mongodb_1 bash
Then the following from the bash shell:
cd /tmp
tar -xzf agiletool_stage.tar.gz
mongorestore -h localhost:27017 --db agiletool_stage agiletool_stage
Testing Locally
gulp test
Deployment
Jobs
There are 3 jobs running on separate deployments using the same base code. These are to:
- Rollup squad iteration data to their parents. Currently scheduled to run every 3 minutes.
- Mark iteration as
Complete
if it is past end date. Currently scheduled to run daily. - Mark member information if they no longer exist in Bluepages. Currently scheduled to run weekly.
- Replicate DB to another instance for reporting purposes. Intended for users who need to access and extract data. Currently scheduled to run daily.