fosterful / scheduler

Scheduling app
http://app.fosterful.org
MIT License
25 stars 15 forks source link

Maintainability Test Coverage Gitter Chat Link



Scheduler

Overview

Who are we?

Fosterful, a nonprofit organization, is a community of qualified volunteers partnering with child welfare offices to provide a nurturing environment for children entering foster care.

Fosterful’ 5-year vision is to establish and sustain sites throughout Washington and Idaho where children entering care transition with minimal trauma into their foster care placement.

What does the scheduler do?

It is a Ruby/Rails based app that allows the coordination of scheduling between various workers and volunteers supporting children entering the foster care system. Specifically, it is designed to alert volunteers when there is need of a kind person to sit with children during a scary time, often on short notice. For more information about the organization, please visit Fosterful.


Table of Contents

Development Environment Setup

  1. Download Docker CE for Mac

    Note: remove boot2docker or other Docker implementations if any were previously installed

  2. Copy the env.example file to .env cp env.example .env

Note: On Mac, make sure to append :docker-compose.mac.yml to COMPOSE_FILE to take advantage of cached volumes

  1. Run docker-compose up
  2. Open a browser to localhost:3000 to verify that the app is up.

Helpful Docker Commands

Rails Commands in a Docker World

Now that the app is running in Docker we will run all Rails and Rake commands in the container.

Here are a few examples:

Note: this is expecting the containers are up

The pattern is docker-compose exec (container_name) rails or rake command. This pattern works for non-Rails commands also.

System Tests

System tests open the browser and make assertions against the content of the page or verify expected behavior. These tests can be run in headless mode (the default), which means that they are executed in a virtual browser. If you would like them to be run in an actual, viewable browser, you will need to disable headless mode by setting the HEADLESS environment variable to 'false' and ensure you have the ChromeDriver WebDriver downloaded and installed on your host machine.

E.g. HEADLESS=false bundle exec rspec spec/system/mytest_spec.rb

If you are running in non-headless mode, you'll need to be sure you have the ChromeDriver running and able to accept connections from the IP the server is running on. This can be done by running ChromeDriver in a separate tab/console via:

./chromedriver --whitelisted-ips


Contributing to the Effort

First, we would like to thank you for having an interest in helping with this project! There are several things you can do:

Contribution Guide

Fork this repository, clone your forked repo, and then setup your environment. Then make a branch, with a descriptive name, for the specific issue that you want to tackle.

Commit message guidelines

  1. Please make the first line short and descriptive.

  2. Please insert a blank line between the subject and any additional message content.

How to Contribute Step by Step

Fork the Repository

Clone Project to Local Machine

git clone <pasted-in-link-from-your-clipboard>

Create a Branch

git checkout -b <add-your-new-branch-name>

Make Necessary Changes

git status
git diff

Add Your Files to Git

`git add <new-or-modified-file-name>`

Commit Changes to Git

git commit <"Well thought out commit message, specifying exactly what changes were made.">

Push Changes to GitHub

git push origin <branch-name>

Submit Changes for Review

Reporting Issues

If you encounter a bug or odd behavior that appears unintentional, please open an issue ticket and clearly describe the problem, reproducing it exactly if possible.

Contacting the maintainers

For all other questions and concerns related to this project, please open an issue with a short but clear description. Responses will be as quick as possible, so Thank You in advance for your patience.


Technologies Used


Support and Contact details

Interested in finding out more about what we do, or how you can support our mission? Please visit https://fosterful.org.

If after reading about us, you still have questions, you can contact us directly via email.


License

license

This software is licensed under the MIT license.