Skip to content

coronasafe/journal

Repository files navigation

Coronasafe Journal

A web application to aid users in generating their route maps.

Build with Rails and React ❤️

Requirements

Ruby 2.7 We recommend a managing tool like rbenv to install Ruby. After installing `rbenv`, you can run `rbenv install` from this repository root to install compatible ruby version.
Foreman Foreman is a task runner used in the Ruby ecosystem. After installing Ruby you can install it with `gem install foreman`
PostgreSQL We use PostgreSQL for the database. Checkout
config/database.yml.postgresql
for default keys in use. If you are on Mac, you can install Postgres with `brew install postgres`
NodeJS We recommend using a version manager such as NVM. After install NVM, you can use any Node version higher than 12 to run the application.
nvm install 12

Setup

./bin/setup

Dev server

foreman start -f Procfile.dev

Running Tests

API endpoints have test coverage.

bundle exec rake test will run the test suite.

Containerization

Build image

  1. Clone the repo.
  2. Setup config/master.key.
  3. docker-compose build.

Run

  1. Setup env variables. (list in config/docker-compose.yml)
  2. docker-compose run web rake db:migrate.
  3. docker-compose up.
  4. React app will be compiled at public/packs.

Video: https://share.getcloudapp.com/Blu50Kl4

API Documentation

https://github.com/coronasafe/journal/blob/develop/doc/api.md

Quick demo of how to use the basic APIs

  1. User Login
  2. Visits
  3. Admin

Instructions for deployment

  1. Run rake db:seed.
  2. Setup environment variables ADMIN_LOGIN && ADMIN_PASSWORD.
  3. Schedule CleanupOldDataJob.perform_now to be run once every day, probably midnight.
  4. Setup the OTP service AppKey as an environment variable SMS_API_KEY
  5. Setup environment variable RAILS_SERVE_STATIC_FILES = true

Contributing

Checkout the issues page. When you find one to your skill liking and skill level, please leave us a comment that you are taking it up.

If you are new to open source, checkout Open Source Guide

You can contact us through issues or find us on Slack.

License

This project is MIT licensed.