Skip to content

lankyfrenchman/dcaf_case_management

 
 

Repository files navigation

DCAF Case Manager

CircleCI

A deployed demo version of what's in the master branch is at: http://casemanagerdemo.herokuapp.com/

Project description

This project is a case management system for the DC Abortion Fund, an all-volunteer, 501(c)(3) non-profit organization that gives grants to people in DC, Maryland, and Virginia who cannot afford the full cost of abortion care. Currently, a team of around 75 case managers are taking about 3,500 calls a year and entering them all into shared Excel sheets. We're replacing that with a nice, clean, usable and scalable rails application! This will let DCAF continue to operate at a fast pace, and prevent volunteers from getting frustrated with shared Excel sheets.

Get started with the how-and-why of the project by checking out DCAF, checking out DCAF Case Manager Lisa's explanation of DCAF's business logic, looking at the design team's InVision prototype, and reading the #dcaf_case_management channel on Slack.

The three co-leads on this project are @colinxfleming (rails and technical lead), @mebates (design and UI lead), and @adinneen (project manager and UX lead). We also have a large presence from DCAF actively consulting on this project, led by @lwaldsc and @nerdygirl537. Feel free to hit any of us up with questions about the project, we're nice!

Contributing to this Project

Our structure

We run two week sprints where we try to complete 2-3 small features. Generally, we meet at Code for DC once to begin the sprint, and spend the off-week completing what we didn't finish the previous week.

When we begin a sprint, the project manager identifies the features to complete from the list of things to do before hitting Minimum Viable Product. The project leads create a Project Milestone and create Github issues for the feature itself. When we meet, we divide up the issues in the sprint, to not duplicate work.

Pull Requests Please!

This project runs on Github forks and pull requests, so we can be sure to make changes incrementally and keep everything clean. For an introduction to Github, check out this guide on github.com. Contribution instructions are as follows:

  • Visit the main project page and fork from the master branch by pressing the fork button near the top right.
  • Do any work in your local environment and commit it to your fork in github.
  • Once you have finished your changes and have confirmed they're all working, make a pull request by pressing the Pull Request button.
  • At least one other person (probably @colinxfleming) will review and comment on code changes, and work with you to resolve issues, and merge the pull request when it's ready.

We've tried to structure the project in such a way that minimal specialized knowledge is required to contribute; we use the default Rails stack wherever possible, with the exception of MongoDB. So hopefully you can hop right in!

How We Categorize Our To Do List / Issues

As noted above, this project maintains a list of issues in Github that make up our To-Do List. We categorize things as follows:

Our major categories of software development related issues are as follows:

  • Beginner Friendly (Issues which require minimal familiarity with our codebase to complete, reserved for people making their first contribution to this project)
  • Frontend (Rails view work, CSS/JS work)
  • Backend (Rails controller and model work)
  • Minitest (Feature and unit test work)
  • Bug (Something deployed that isn't working as intended!)
  • UX/Design (Design todos)

We also keep track of our administrative issues and discussion in Github under the following issue labels:

  • Admin (Readme stuff, project organizing matters, etc)
  • Question (Issues that require a little more discussion before they're completed)
  • Backlog (Low priority stuff that can wait until after the MVP)

(TK: Formal Contributing Guidelines)

Setting Stuff Up

First things first: Make a copy of your own to wrench on! Go to https://github.com/colinxfleming/dcaf_case_management and hit the fork button up in the top right.

For the rest of the setup, you have three options: Cloud9, Docker, or installing everything locally. We recommend Cloud9 if you're new to Rails or don't want to waste a lot of time installing dependencies, or Docker if you're comfortable with its ecosystem. The directions below get you to a point where you can run the app with a test-seeded database.

Cloud9

If you don't currently have Rails installed (or are on Windows), Cloud9 makes things WAY easier by letting you skip installation of Rails and MongoDB:

  • Sign into https://c9.io/ and create a new workspace
  • Clone from [email protected]:{your_github_username}/dcaf_case_management.git and select the Rails option
  • Once created, run bundle install from the terminal
  • Open another terminal tab, and run mongod to start MongoDB
  • Pop back to the previous tab and run rake db:seed to populate your database with test data
  • Hit the Run Project button up top. (If the button is unresponsive, you may need select Run -> Run With -> Rails Default from the dropdown.)
  • Check out the URL it's running on! You're all set!

Docker

We've dockerized this app, to manage the dependencies and save us all the headahce. If you've got Docker installed already, you can be up and running with three commands:

  • docker-compose build # to install the dependencies
  • docker-compose run web rake db:seed # to populate the database
  • docker-compose up

If the server won't start, it may not have cleanly shut down. Run rm tmp/pids/server.pid to remove the leftover server process and run docker-compose up again.

Local environment

If you prefer a local environment, do the following:

  • Install Ruby, Rails and MongoDB (An easy rails installer is here; MongoDB setup instructions are below)
  • Run the command git clone [email protected]:{YOUR GITHUB USERNAME}/dcaf_case_management.git && cd dcaf_case_management to pull down
  • Run the command bundle install to install dependences

If you don't have MongoDB installed, also do:

  • Install MongoDB locally (brew install mongodb, for example, or the linux instructions)
  • Create a folder in the root directory for the MongoDB database. sudo mkdir -p /data/db
  • Allow for MongoDB read/write permissions sudo chmod 777 /data/db
  • Open another terminal tab and run mongod to start up the database

After that:

  • Run rake db:seed to populate your database with test data
  • Run the command rails server to start the rails server
  • All set! Navigate your browser to http://localhost:3000

For designers

The design team has created a working InVision prototype for iteration, here. We need help furthering the wireframes in InVision beyond the "Submit Pledge" button, as well as designing a usability testing plan for the app.

Current UX and wireframe assets are available here:

Project Wall of Appreciation

Like all volunteer projects, we'd be dead in the water if it weren't for the hard work of our valuable team. Championship contributors to this project (so far!) are:

  • @ajohnson051 (lots of hard work on controllers and views)
  • @Kevin-Wei (constructed data model)
  • @charleshuang80 (crucial work on forms)
  • @drownedout (constructed data model, excellent rails guide)

License

Made available under an MIT license. See LICENSE.txt for more info.

About

Rails-based case management system for the DC Abortion Fund

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 51.8%
  • HTML 32.8%
  • CSS 14.3%
  • Other 1.1%