Mental Test

Build Status

Coverage Status

Dependency Status

Scrutinizer Code Quality


Inline docs


Disclaimer. These statements have not been validated by the FDA. This skill is not intended to diagnose or treat any condition.

An Alexa skill for validated Mental Health Self-Assessments, written in Ruby using the Sinatra and Ralyxa frameworks.

The application supports importing Surveys and Instruments from and REDCap.

Installation instructions for developers

Ruby Version

2.4.4 or higher

To install dependencies -

1) Install Postgres 9.4 or higher. This skill uses Postgres jsonb columns to store indexed unstructured data. 2) Use bundler - bundle install - to install all other gems from the Gemfile. 3) bundle exec rake db:setup - To generate test and development databases and seed the databases with test data 4) Supports Travis online Continuous Integration if you have linked Travis CI and Github accounts. (see./travis.yml for configuration) 5) Supports CodeClimate online Code Quality and Coverage if you have linked CodeClimate account. (see ./codeclimate.yml for configuration) 6) Supports Coveralls online Code Coverage if you have linked account. (see ./simplecov and ./coveralls.yml for configuration) 7) Supports Gemnasium online Dependency Checker if you have linked Gemnasium account. 8) Supports Scrutinizer online Code Quality checks if you have linked Scrutinizer account (see ./scrutinizer.yml for configuration) 9) Supports Inch online Documentation Quality checks if you have linked Inch account (see ./inch.yml for configuration)

To run the test suite -

1) bundle exec rake spec

To generate the skill documentation -

1) rake rdoc


See the Contribution Guidelines

This project is intended to be a space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Please install Overcommit (gem install overcommit) before committing any code.

Overcommit Git hooks exist to check check-in comments and to verify code against:

1) Reek (check for code smells - see ./config.reek for configuration) 2) Bundle-audit (check for security vulnerabilities) 3) Rubocop (lint code - see ./rubocop.yml for configuration) 4) Fasterer (performance checks - see ./fasterer.yml for configuration)

See ./overcommit.yml for Overcommit configuration


The project may be deployed to Heroku. Full details of this deployment are beyond the scope of this README. The ./Procfile, ./heroku.yml and ./app.json configuration files exist to support the 3 different kinds of Heroku deployment (Heroku16, Container and API).