This is a web application designed to help managers plan how teams will spend their time, particularly in situations where there is an aim to split the team's resources between several independently-prioritised "buckets" of work in a certain ratio.
The front end was built using Angular and Angular Material. The API server in the backend
directory was written in Go.
The whole application was designed to run on Google AppEngine, using Google Cloud Datastore for persistence, though the front-end could be deployed with a back-end that used an entirely different persistence mechanism or runtime platform.
This is not an officially supported Google product.
The easiest way to work on the front end is to use the Angular CLI (ng serve
, ng test
etc), after an npm install
to install the dependencies.
In development mode, the CLI will proxy API requests to a backend running on localhost:8080
. To run the backend server locally, install the Go toolchain (1.11 or later), run go build
in the backend
directory, and run the resulting peoplemath
binary.
The simplest way to run it is with peoplemath --inmemstore
, which will use a simple in-memory implementation of the API. This has no external dependencies, but data written will not survive a restart of the API server.
To persist the API data and exercise the Cloud Datastore persistence layer, the Cloud Datastore emulator can be used: install and start the emulator, then set the environment variables according to the instructions, set the GOOGLE_CLOUD_PROJECT
environment variable, and run peoplemath
with no arguments.
To deploy the app to Google AppEngine:
- Create a Google Cloud project as described in the quickstart guide
- Run
gcloud config set project [YOUR_PROJECT_ID]
- Run
build_appengine.sh
or equivalent commands to build the front-end and generate theappengine_dist
directory cd appengine_dist
andgcloud app deploy