Skip to content
No description, website, or topics provided.
Ruby HTML CSS JavaScript Shell Makefile Dockerfile
Branch: master
Clone or download
CZagrobelny Merge pull request #265 from bkuhlmann/toc
Added README Table of Contents
Latest commit f17021d Sep 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci make circleci use ruby 2.6.2 Mar 19, 2019
app move phone number search filter onto the second line Sep 19, 2019
bin Delete update Dec 8, 2018
config renamed database.yml Sep 1, 2019
db remove volunteer_type Sep 10, 2019
docs Add pr template Feb 4, 2019
lib display five weeks of activities for accompaniment leaders Mar 23, 2019
log initial app setup Apr 8, 2017
spec clarify distinction between activities and accompaniments on admin views Sep 18, 2019
vendor add languages and chosen for multiselect Jun 12, 2017
.bashrc add gem install bundler as a pre dependency and add a .bashrc file to… Jun 5, 2018
.env.example restore .env.example Sep 3, 2019
.gitignore Merge pull request #119 from enyuhsu/master Aug 16, 2018
.rubocop.yml upgrade ruby, rails, gems Feb 23, 2019
.ruby-version bump ruby version in .ruby-version and add note May 21, 2019 add code_of_conduct with NSC language Jul 28, 2018 updated documentation, added test command, and docker db config Aug 25, 2018
Dockerfile update ruby version in dockerfile Aug 18, 2019
Gemfile Added Tocer gem Sep 19, 2019
LICENSE Create LICENSE Sep 23, 2017
Makefile updated documentation, added test command, and docker db config Aug 25, 2018 Merge pull request #265 from bkuhlmann/toc Sep 22, 2019
Rakefile Added Tocer Rake support Sep 19, 2019 initial app setup Apr 8, 2017
docker-compose.yml updated documentation, added test command, and docker db config Aug 25, 2018 WIP dockerfile docker-compose and makefile Aug 3, 2018

New Sanctuary Coalition

Table of Contents

What are we building?

The New Sanctuary Coalition is a network of congregations, organizations, and individuals standing publicly in solidarity with families and communities resisting detention and deportation. This internal database software facilitates NSC's core programs and allows them to operate at increasing scale.

NSC's programs include:

  • Accompaniment Program: pairs undocumented people with a group of trained volunteers to accompany them to their immigration hearings and check-ins with ICE.
  • Pro-se Clinic: a weekly clinic where undocumented people work with trained volunteers and lawyers to prepare documents (asylum applications, juvenile visas, etc.) to fight their immigration case.
  • Anti-Detention Program: works with detained immigrants across the US and their families to fight for their release.

More information:

Getting setup

System Dependencies

  • ruby (see Gemfile for version)
  • postgres

Environment Variables


For local development, create a .env file in the root directory of the application and put the environment variable in there. There is a .env.example file.

Using Docker to Run the Application (optional)

Docker is a way for you to run this application on your machine without changing any of your local settings or installing anything new (besides Docker itself).

More instructions here.

Ruby Dependencies

gem install bundler
bundle install

Database installation

This app uses a Postgresql database. Instructions diverge based on your operating system.

1. Mac OS


2. All non-Mac OS

I recommend running Postgres in a docker container. To run Postgres on docker, you can do the following:

docker pull postgres:9.6
docker run --name new_sanctuary -p "" -e POSTGRES_PASSWORD=password -d postgres:9.6

NOTE: If you are using psql instead of, create your user this way:

$ createuser postgres --createdb
$ psql
psql (10.2)
Type "help" for help.

yourname=# ALTER USER postgres WITH PASSWORD 'password';

Database setup

To run initial migrations and seed the DB:

cp config/database.yml.sample config/database.yml
rake db:setup

To switch from using docker back to using the rails server locally, run:

cp config/database.yml.sample config/database.yml

Running the test suite


CircleCI is set up for the app, and will run the full test suite when you push to github. There are still some flappy specs, unfortunately :/, if the specs pass locally, but not on CircleCI, feel free to leave a note when you create your PR.

Running the App Locally

rails server

User Roles

Regional Admin (has access to all communities within their regions)

  • Can do everything that a Community Admin can do for the communities in their regions
  • Can view, create, edit communities in their regions

Login as a Regional Admin with:

Community Admin Role (has access to everything scoped to their Community)

  • Can view friends, create new friend records, edit friend records, and delete friend records
  • Can view users, invite users, edit users, and delete users
  • Can create activities for a friend (and can edit them)
  • Can create, edit, and remove asylum application drafts for a friend
  • Can share friend records with specific users (In the 'Asylum' tab when editing a friend, the 'Volunteers with Access' field)
  • Can view, create, edit sanctuaries
  • Can view create, edit lawyers

IF the Community is 'primary' (ie. primary = true), additionally:

  • Can view create, edit locations
  • Can view create, edit judges
  • Can generate reports
  • Can create, edit, delete NSC events (ie. trainings and workshops) and can take attendance of volunteers and friends attending the event
  • Can view an index of upcoming and past Activities and Accompaniments

Login as an Admin of a Primary Community with:

Login as an Admin of a Non-Primary Community with:

Community Volunteer Role (has limited access to their community)

  • Can receive an invitation (emailed) and follow the link to create a volunteer account
  • Can view friend records that have been shared with them
  • Can add other users to friend records that have been shared with them
  • Can create, edit, and remove asylum application drafts

IF the Community is 'primary' (ie. primary = true), additionally:

  • Can view limited details about friend activities (ie. accompaniments) this week and next week
  • Can RSVP to attend a friend activity (ie. accompaniment) and can edit their RSVP

Login as an Volunteeer for a Primary Community with:

Login as an Volunteeer for a Non-Primary Community with:

Community Accompaniment Leader Role (only applicable to Primary communities)

  • Can do everything a volunteer can do
  • Can view contact information about friends and volunteers involved in accompaniments
  • Can create report for accompaniments they attend

Login as an Accompaniment Leader with:

Remote Clinic Lawyer Role

  • Can be assigned Friends from a non-primary Community
  • Can view assigned Friends and drafts of their application
  • Can add reviews to drafts of applications and can approve drafts of applications

Login as a Remote Clinic Lawyer with:

How are we building it?

Test Coverage!

Aiming to cover the functionality we build with:

  • model tests
  • feature tests to cover the main pathways through the app
  • controller specs (ONLY for authorization)

Staging App

We have a staging app here with seed data: The data is refeshed occassionally, but activities/accompaniments are likely to be out of date.

Performance Monitoring

We are using Skylight for performance monitoring. View performance data on Skylight


When making changes to the README of this project, make sure to run the following:

rake toc

This will ensure the Table of Contents for this project is properly updated.


  1. Add a comment on your chosen Github issue to let other contributors know that you have 'claimed' it.
  2. Fork the repo and download a clone of the forked repo:
  3. Create a feature branch off master.
  4. Complete feature with tests!
  5. Check CircleCI to make sure tests are passing.
  6. Make a pull request and tag CZagrobelny to review.
  7. CZagrobelny will QA and leave feedback (usually within a few days of when the PR is opened) and merge into master upon approval of the pull request.

It can be really helpful to get notifications when new issues are opened! Here is how you subscribe to notifications: how to get notifications

Code of Conduct




We have an amazing group of contributors and organizations working to build out the software!

You can’t perform that action at this time.