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_ENVRAILS_ENVREDIS_URLSECRET_KEY_BASESIDEKIQ_WEB_PASSWORDSIDEKIQ_WEB_USERNAME
Optionally:
HOSTNAMERAILS_FORCE_SSLRAILS_LOG_TO_STDOUTRAILS_MAX_THREADSRAILS_SERVE_STATIC_FILESWEB_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