A new digital procurement platform for the NSW Government.
This is a Ruby on Rails application which contains functionality for external and internal users.
- Ruby – currently 2.5.0 (as defined in
- Bundler – install with
gem install bundler
- Yarn – for assets. On a Mac, install with
brew install yarn
- PostgreSQL – On a Mac, use Postgres.app)
- ChromeDriver and Chrome – for running feature tests. On a Mac, install with
brew cask install chromedriver
- MailCatcher (optional) – for receiving emails in development. Install with
gem install mailcatcher
- ClamAV - used for virus scanning of uploaded documents
Setting up the application
If you are running the application for the first time, run
install Ruby dependencies and initialize the database.
The application configuration in the development environment, including database
names, is defined in
.env.development, and loaded automatically in dev.
Running the application
The app will launch by default at
http://localhost:5000. (If you configure
Foreman differently, the port may change.)
Running the test suite
This will run:
- the RSpec test suite (in
- an RCov coverage report, which will be saved to
Sending emails in development
To receive emails in development, use MailCatcher. It runs an SMTP server which catches emails and displays it in a web interface.
Install MailCatcher with
gem install mailcatcher, then run
your console to start the server. Don't commit it to the Gemfile, as it causes
Deployment to production
There is some configuration for Elastic Beanstalk in
We have been using CircleCI to run automated tests and deployment
to testing environments. You will find configurations in
We have two testing environments calls testing and staging. As you can find in circleci config file, commiting to master and staging branches will start a deploy to these environments.
How the application works
Documentation explaining the application architecture is available in the
docs directory of this repo.
Copyright & Licence
Copyright NSW Department of Finance, Services and Innovation.
Licensed under the MIT License.