IoW Boundary Tool
#TODO Update This Project description
The app is built using Docker. On Intel Macs, Docker can be used natively or from within a Linux environment, which can be virtualized using Vagrant, VirtualBox, and Ansible:
- Vagrant 2.2+
- VirtualBox 6.0+
- Ansible 2.9+
On Apple Silicon Macs, and on Linux hosts, all you need is Docker.
Install the application and all required dependencies. For Vagrant-based development, use:
For Docker-based development, use:
Municipal data can be downloaded with a script:
A pre-commit hook that runs the format script before any commit will be
installed but can always be ignored with
git commit --no-verify.
Rebuild Docker images and run application.
vagrant up vagrant ssh ./scripts/update ./scripts/server
resetdb), three test users are created:
|Webpack Dev Server|| |
|Gunicorn for Django app|| |
For Vagrant-based development environments, run
setup on your host, and all
other scripts inside the Vagrant VM. For Docker-based development environments,
all scripts should be run from the host.
| ||Build project for CI|
| ||Free disk space by cleaning up dangling Docker images|
| ||Run interactive shell inside application container|
| ||Lint source code|
| ||Run Docker Compose services|
| ||Provision Vagrant VM and run |
| ||Run unit tests|
| ||Build Docker images|
| ||Restore development database to defaults (with test data)|
Adding NPM Packages
To add a new NPM package to the project:
- Manually add the package to the project's
package.jsonfile, ensuring that you pin it to a specific version.
./scripts/updatein the VM.
- Commit the changes to the following files to git:
- We usually pin packages to a specific version to minimize build errors.
- For packages in the regular/non-dev dependencies section of
package.json, manually add the package name to the