MirrorGate is a WallBoard application meant to give teams fast feedback in all the different areas related to software development.

license GitHub issues GitHub stars GitHub forks Docker Stars Docker Pulls

Why that name?

MirrorGate is meant to display relevant information on how your software looks like from every perspective, from the planning to the user’s feedback. So it's the mirror where teams can see their work reflected, helping them to perform self-criticism and continuous improvement. It aims to improve software quality and time-to-market by making the team aware of how the software it is developing and its process looks like.

That said, to be honest, it all comes from this dialog from The Never Ending Story:


Right now MirrorGate offers different dashboard types and views:

Detail dashboard

Offers information on:


We expect to be adding much more information in the near future so stay tuned.

Aggregate dashboard

It also offers a view where you can display several product dashboards in a single view with a more summed up information.


Smart components

Some components get all available space to display more detailed information. For instance:




Additionally, MirrorGate offers a backoffice application where dashboards can be configured.


Supported browsers

In MirrorGate we use some edge HTML and CSS features, thus only latest Chrome and Firefox versions are supported at the moment (i.e. IE and Safari are not currently supported).

Collecting feedback

MirrorGate ecosystem includes a markets-collector to be able to fetch feedback directly from the iOS and Android App Stores. Eventhough, it also offers an endpoint that might be invoked to directly send feedback on an specific product (directly from the front via form post or ajax request or from server side).


MirrorGate server is provided as a docker image, so to run it simply execute the following commands in a terminal:

#Spinup mongo db
docker run --name mongo mongo > /dev/null &

#Run mirrorgate without security
docker run --env "SPRING_DATA_MONGODB_URI=mongodb://mongo:27017/dashboard" --env "SPRING_PROFILES_ACTIVE=embedded" --link="mongo" -p8080:8080 bbvaae/mirrorgate

Navigate to mirrorgate console in your local server, create a new dashboard and set the "Build Jobs" field to MirrorGateTest. Save it and navigate into the dashboard by cllicking the "eye" icon.

While keeping the dashboard opened run the following command:

curl -0 -v http://localhost:8080/api/builds \
-H "Expect:" \
-H 'Content-Type: application/json; charset=utf-8' \
-d @- << EOF
    "number" : "$(date +%s)",
    "buildStatus" : "Failure",
    "buildUrl": "#$(date +%s)",
    "timestamp": $(date +%s)000,
    "projectName" : "MirrorGateTest",
    "repoName" : "MyRepo",
    "branch" : "master"

You will now see the build status in the opened dashboard.

You now have an environment ready to receive information from the several collectors available.

To execute a simple local environment with Jira and Jenkins capabilities, please check the mirrorgate-sample-deployment project.


In order to operate, MirrorGate requires several components:


MirrorGate currently doesn't provide any authentication mechanism so if you want to secure it you will have to deploy it behind a reverse proxy.

It provides 3 different authorization depending on the value of the X-Forwarded-User header provided by the reverse proxy:

If you wan to completely disable the security in MirrorGate you can execute it with the env variable SPRING_PROFILES_ACTIVE=embedded.

For Developers

Build Dependencies

You need the following dependencies installed in order to build the project:

Project Structure

Contains folders for each of the modules:

Check each of these folders for instructions on how to build, deploy and run each module.

How to execute

To execute MirrorGate locally:

  1. Ensure you have all the build dependencies installed.
  2. Clone this repository.
  3. Execute scripts/buildAndRun.sh.
  4. Wait some time until the message Tomcat started on port(s): 8080 appears.
  5. Open http://localhost:8080/mirrorgate/backoffice/index.html to access the WallBoards' backoffice.
  6. You should be able to navigate through the mock dashboards.
  7. Attempt to run some of the collectors (e.g. Jira) to be able to populate some information inside the database.


Please read the contributing guide.


This project is inspired by CapitalOne's Hygieia.