Casa
Volunteer management system for nonprofit CASA, which serves foster youth in counties across America.
Install / Use
/learn @rubyforgood/CasaREADME
CASA Project and Organization Overview
A CASA (Court Appointed Special Advocate) is a role where a volunteer advocates on behalf of a youth in their county's foster care system. CASA is also the namesake role of the national organization, CASA, which exists to cultivate and supervise volunteers carrying out this work – with county level chapters (operating relatively independently of each other) across the country.
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->Table of Contents
<!-- END doctoc generated TOC please keep comment here to allow auto update -->Welcome contributors!
We are very happy to have you! CASA and Ruby for Good are committed to welcoming new contributors of all skill levels.
Find issues to work on here on the issue board. Issues on the project's TODO column are another way to browse issues. Check to see that no one is assigned to the issue. Then comment on it to claim the issue. Commenting on an issue doesn't automatically get the issue assigned so double check the comments on an issue to see that no one is requesting assignment.
Pull requests which are not for an issue but which improve the codebase are also welcome! Feel free to make GitHub issues for bugs and improvements. A maintainer will be keeping an eye on issues and PRs every day or three.
Communication and Collaboration
We highly recommend that you join us in slack in the #casa channel so you can get fast help for any questions you may have.
Check out our google calendar to see when office hours and stakeholder meetings are.
You can also open an issue or comment on an issue on GitHub and a maintainer will reply to you.
About this project
CASA is a national organization with many regional chapters. We currently work with Prince George's County CASA in Maryland, Montgomery CASA Maryland, and Howard County Maryland
This system provides value by:
- providing volunteers with a portal for logging activity
- allow supervisors to oversee volunteer activity
- generate reports on volunteer activity for admins to use in grant proposals
Read about the product sense that guides our approach to this work.
How CASA works:
- A foster youth is represented as a CASA case.
- The CASA case is assigned to a volunteer.
- The volunteer records their efforts spent on the CASA case as case contacts.
- Supervisors oversee CASA volunteers by monitoring, tracking, and advising them on CASA case activities.
- At PG CASA, the minimum volunteer commitment is one year (this varies by CASA chapter, in San Francisco the minimum commitment is ~ two years). A volunteer's lifecycle is very long, so there's a lot of activity for chapters to organize.
Project Considerations
- PG CASA is operating under a very tight budget. Right now, they manually input volunteer data into a volunteer management software built specifically for CASA, but upgrading their account for multiple user licenses to allow volunteers to self-log activity data is beyond their budget. Hence why we are building as lightweight a solution as possible that can sustain itself with Ruby for Good's support.
- While the scope of this platform's use is currently for PG County CASA and Montgomery county CASA, we are building with a mind toward multitenancy so this platform could prospectively be used by other CASA chapters across the country.
More information:
The complete role description of a CASA volunteer in Prince George's County.
Developing! ✨🛠✨
How to Contribute
See our contributing guide 💖 ✨
Installation
Getting Started (Codespaces - EXPERIMENTAL) 🛠️
- Follow the link above or follow instructions to create a new Codespace.; You can use the web editor, or even better open the Codespace in VSCode
- Wait for the container to start. This will take a few (10-15) minutes since Ruby needs to be installed, the database needs to be created, and the
bin/setupscript needs to run - Run
bin/devand visit the URL that pops in VSCode up to see the CASA page - Login as a sample user with these default credentials (which also work for QA):
Local Setup Instructions
Downloading the Project (on a Mac or Linux machine)
git clone https://github.com/rubyforgood/casa.gitclone the repo to your local machine.- You can ask a maintainer for permission to make a branch on this repo.
- You can also create a fork on GitHub and make a pull request from the fork.
Ruby
- Install a ruby version manager: rvm or rbenv
- when you cd into the project directory, let your version manager install the ruby version in
.ruby-version. Right now that's Ruby 3.3.10 gem install bundler
node.js
- (Recommended) Install nvm, which is a node version manager.
- If you use asdf, the node version from
.tool-versionswill be used, but may be out of sync with the codename version in.nvmrc. To use the version from.nvmrc, see one of these options: legacy file codename support or installing via custom script.
- If you use asdf, the node version from
- Install a current LTS version of Node. Running
nvm installfrom this directory will read the.nvmrcfile to install the correct version.
PostgreSQL ("postgres")
- Make sure that postgres is installed.
- If you're on Ubuntu/WSL, use
sudo apt-get install libpq-devso the gem can install. Use the Postgres repo for Ubuntu or WSL to get the server and client tools. - If you're on Fedora/Cent Os use
sudo dnf install libpq-devel. If you prefer choose package of libpq-devel via rpm - If you're on Windows, use the official installer and accept all defaults. Alternatively, a Chocolatey package is available with
choco install postgresql.
Chrome Browser
- The Spec tests uses Chrome Browser and Chromedriver for some of the tests. A current version of chromedriver will be installed when
bundle installis run. TO install Chrome, see Chrome Install.
Another option is to install the Chromium browser for your operating system so the browser-based Ruby feature/integration tests can run. Installing chromium-browser is enough, including for many WSL (Windows subsystem for Linux) distributions.
If you are using Ubuntu on WSL and receive the following message when trying to run the
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
339.1kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
sonoscli
339.1kControl Sonos speakers (discover/status/play/volume/group).
