/nzsl-online

New Zealand Sign Language Dictionary

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

NZSL

New Zealand Sign Language Dictionary

Aotearoa's official sign language

New Zealand Sign Language (NZSL) is an official language of Aotearoa New Zealand. Like Te Reo Māori, it is important to foster understanding and use of the language in order to be an inclusive society. Victoria University of Wellington's Deaf Studies Research Unit (DSRU) produced the first paper based dictionary of NZSL 1997. An updated online dictionary website launched in 2011. The online dictionary contains over 5000 signs with equivalents in both English and Te Reo Māori with image and video references showing how a sign is produced and example videos showing how the sign is used in context. The online dictionary can be searched by the English or Te Reo Māori word, or by sign features, such as hand shape and location.

Website and Apps

In 2013 Ackama took over responsibility for the website and both the iOS and Android apps, which were originally built by an independent developer. As well as maintenance and open sourcing, both the website and the apps required considerable updating and redesign. We worked closely with the language experts at DSRU and with other developers including Dave Moskovitz, the creator of the ‘Freelex’ database that provides the back-end for the website, and Greg Hewgill, the developer of the original mobile app. Although much of this work was funded through grants obtained by the DSRU from the NZSL Fund and other sources, Ackama has also sponsored and funded time on the project and Ackama staff have also volunteered their own investment time to contribute to the project.

Together with the DSRU, Ackama went on a journey from using open source technology for reasons of price and flexibility to building an entirely open source ecosystem whereby the website, apps, data and scripts are all open source technical components which work together to provide the NZSL dictionary. The community has access to all of these components and can improve upon them or add new features. By open sourcing the NZSL dictionary we encourage the wider community to be involved in making NZSL more accessible. We are also enabling international reuse of the codebase for other countries to have a technical head start in creating their own online sign language dictionary.

In May 2018 the NZSL Android app got up to the number 6 ranking in the worldwide category “Top Free in Books and Reference” apps on Google Play.

New Zealand Sign Language Dictionary consists of 3 major units

  • Ruby on Rails Website (this repo)
  • Mobile apps (transfer of ownership currently in motion)
  • Freelex, an open source project for maintaining the signs lexicon data.

Build Status Code Climate Test Coverage Issue Count

Browser support

As of May 2020 this app supports:

  • IE10+
  • Last two versions of evergreen browsers

IE 10 support is currently important for some sections of our user-base.

Getting Started

Please read the accompanying CONTRIBUTING.md (in progress) before you follow the setup steps.

Fork the base repo ODNZSL repo, so you have a copy then clone your fork.

$ git clone <your fork>
$ cp env-example .env
$ bundle install
$ yarn install
$ bundle exec rails server

A suggestion is to create a local staging branch that acts as your local main. Then branch from your staging/main branch when resolving issues or adding features.

  • Create your feature branch. For example Bugfix/Back-to-search-results
  • Make changes
  • Commit your changes
  • Push to your remote branch. For example git push origin <your feature branch>
  • Ensure all changes to existing functionality and additions of new functionality have tests
  • Create a new pull request to the ODNZSL Staging branch.
  • If you are not sure on any of the steps please do not hesitate to ask.
  • The PR process requires that 2 reviewers must approve before the PR progresses.
  • Waffle is used for project management. Contributors sign in with your github username.

Running the tests

# Ruby specs
$ bundle exec rspec

# ruby static analysis
brakeman --run-all-checks --exit-on-warn --format plain .

# Javascript linter
yarn run eslint

# SCSS linter
yarn run sass-lint

# Ruby dependency security vulnerability check
bundle exec bundle-audit check --update

# Ruby linter
bundle exec rubocop --display-cop-names

# ... or run all lints and specs sequentially
$ ./bin/run-ci-checks

Design and brand guidelines

  • The design should follow brand guidelines (Link TBA)
  • The design must follow accessibility guidelines
  • Must follow the sign off process
  • Choose a story from the backlog
  • Get any other information you might need from the product owner
  • Create your design
  • Present to product owner and iterate depending on feedback
  • Once the product owner is happy with the design and signs off on it, then it can go to the development team.
  • The Ackama team uses Sketch app to create their designs. We recommend using Sketch when working on this project. Sketch

Brand guidelines

Functionality over Form

Because of the visual nature of NZSL, it is important that the videos take centre stage and are not obscured by playback controls or watermarks.

Deployment

NZSL has taken ownership of the project at their ODNZSL repo.

Open source contributors pull requests should be to the ODNZSL Staging branch. The administrators for ODNZSL is currently Eoin Kelly and Brenda Wallace.

Open source contributors should merge the ODNZSL staging branch to your local staging branch so that your repo is up-to-date.

The deployment process explained to open source contributors

Deployment is managed only by Brenda and Elspeth - the site administrators mentioned above.

For site administrators

To deploy to production: merge ODNZSL staging to ODNZSL main.

Environments:

Current servers (2017-12-15)

Environment URL Git Branch Status
ODNZSL Staging http://nzsl-staging.herokuapp.com/ staging staging
ODNZSL Production http://nzsl.herokuapp.com/ main live

Built with

LICENSE

This project is licensed under the GNU License - see the GNU General Public License for details.

Running in production mode locally

# Step 1: precompile assets
$ DEVISE_SECRET_KEY=blah RAILS_FORCE_SSL=false RAILS_ENV=production RAILS_LOG_TO_STDOUT=true RAILS_SERVE_STATIC_FILES=true bundle exec rails assets:precompile

# Step 2: Run server (note you need **all** these flags to run production locally)
$ DEVISE_SECRET_KEY=blah RAILS_FORCE_SSL=false RAILS_ENV=production RAILS_LOG_TO_STDOUT=true RAILS_SERVE_STATIC_FILES=true bundle exec rails server

# Step 3: Delete pre-compiled assets before you go back to normal development
$ DEVISE_SECRET_KEY=blah RAILS_FORCE_SSL=false RAILS_ENV=production RAILS_LOG_TO_STDOUT=true RAILS_SERVE_STATIC_FILES=true bundle exec rails assets:clobber