This is a Rails 7 app.
This README describes the purpose of this repository and how to set up a development environment. Other sources of documentation are as follows:
- UI and API designs are in
doc/
- A playbook for failure scenarios and what to do can be found in
doc/playbook.md
- The authorisation policy for this app can also be found in
doc/
- this details the types of users and the permissions they have.
This project requires:
- Ruby 3.1.3, preferably managed using rbenv
- Google Chrome for headless Capybara testing
- PostgreSQL must be installed and accepting connections
- SQLite must be installed with development libraries to connect to the dictionary database
- Redis must be installed and accepting connections
On a Mac, you can obtain all of the above packages using Homebrew.
If you need help setting up a Ruby development environment, check out this Rails OS X Setup Guide.
See our contribution guide for full instructions on getting set up and contributing to the project!
If you know what you're doing already, bin/setup
should get you set up, and
you can run bin/ci-run
to make sure you've got locally passing tests.
This application allows users to search for signs that are already published in the NZSL Dictionary. This reduces the risk that a contribution duplicates already-published work.
The dictionary data is consumed from a SQLite database that is downloaded from a Github release. From time to time, the dictionary data is updated, and exported by nzsl-dictionary-scripts.
Unless there has been a major change to published data, you don't need to update the dictionary SQLite file often. When the application is started, the most recent copy is also downloaded if the database file is missing or older than 1 month.
If you know there has been an update, and want the latest copy immediately, you
can run bundle exec rake dictionary:update
to download it.
Ensure the following environment variables are set in the deployment environment
to configure the environment. Other, application-specific configuration keys can
be found in example.env
.
RACK_ENV
RAILS_ENV
REDIS_URL
SECRET_KEY_BASE
SIDEKIQ_WEB_PASSWORD
SIDEKIQ_WEB_USERNAME
Optionally:
HOSTNAME
RAILS_FORCE_SSL
RAILS_LOG_TO_STDOUT
RAILS_MAX_THREADS
RAILS_SERVE_STATIC_FILES
WEB_CONCURRENCY
We support the latest 2 versions (stable releases) of major browsers for desktop and mobile. At the time of writing this is:
Browser | Desktop | iOS | Android |
---|---|---|---|
Chrome | 76, 75 | 76, 75 | 76, 75 |
Edge | 17, 16 | N/A | 15, 14 |
Firefox | 69, 68 | 18, 17 | 68, 67 |
Safari | 13, 12 | 12, 11 | N/A |
You can check the versions covered by our browserslist
configuration
here