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.
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.
Note: remove boot2docker or other Docker implementations if any were previously installed
env.example
file to .env
cp env.example .env
Note: On Mac, make sure to append
:docker-compose.mac.yml
toCOMPOSE_FILE
to take advantage of cached volumes
docker-compose up
docker-compose up
Starts fresh containers -d
starts it in daemon modedocker-compose down
Stops and removes containers(all data too)docker-compose stop
Stops running containers but persists datadocker-compose start
Starts containers with persisted datadocker system prune
Cleans up unused containers, networks, and images -a
removes all
Note: it is recommended to run the clean up commands weekly
docker ps
Lists all running containersdocker-compose run rails bash
Starts a bash session on rails, bringing up only dependent services.docker exec -it ID_FROM_DOCKER_PS bash
. Connects another bash session to a running container.docker attach ID_FROM_DOCKER_PS
Attach is useful for pry debugging in a running container
Note: To detach use
ctrl-p + ctrl-q
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
docker-compose exec rails bundle exec rake db:migrate
docker-compose exec rails bundle exec rails c
The pattern is docker-compose exec (container_name) rails or rake command. This pattern works for non-Rails commands also.
docker-compose exec rails bash
will open the terminal on the containerSystem 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
First, we would like to thank you for having an interest in helping with this project! There are several things you can do:
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.
Make changes to fix the relevant issue, making your commit messages conform to our commit message guidelines listed below. If you need step by step help please see how to contribute step by step
Please write tests and make sure that you have full coverage for all lines for your code.
After running rspec, the coverage will be updated and can be viewed.
To check the coverage of your tests, open coverage/index.html in a browser. You may need to drag the file from your editor to a new browser tab.
After you have made changes and have passing specs with full coverage, please submit a pull request to merge your created branch with master.
Please make the first line short and descriptive.
Please insert a blank line between the subject and any additional message content.
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
It will show red files stating there are files modified not staged for commit.
If you would like to see the changes made to the files type:
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
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.
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.
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.
This software is licensed under the MIT license.