// the find
seven1m/onebody
private member portal for churches, built with Ruby on Rails
OneBody is a Rails and MySQL app for church membership: a member directory, family and group records, email lists, a small document store, and children's check-in with barcode labels. It is for churches that want to self-host instead of paying for a hosted church management system. The author has stopped maintaining it, and the README says not to rely on it for a live church.
The domain model is worth reading even if you never deploy it. People, families, groups, memberships, and relationships are separate models, and sharing and privacy rules sit in their own concerns (person/sharing.rb, membership_sharing_updater.rb). Check-in is a real feature rather than an afterthought, with models for times, labels, and folders plus a barcode input and print path, which is the part most small-church tools skip. The CSV import is split into preview and execution jobs, so a large file gets validated before it touches live records. The repo also has CI config, RSpec, and RuboCop, which is more test scaffolding than most projects of this size carry.
The last push was January 2021 and the README says the project is unmaintained, so the Gemfile.lock pins are years behind. Any security fix means backporting it yourself. The front end mixes CoffeeScript, Sprockets, a JSX pack with Babel, and AdminLTE, so a small feature can touch three asset pipelines. Deployment assumes a Capistrano or Pkgr setup on a MySQL server, and a volunteer IT person without Rails experience will have a hard time running it. The app stores children's check-in records, family addresses, and parental consent data, which makes the self-hoster responsible for the privacy and compliance side. The AGPL also means anyone who modifies it and runs it as a network service must publish their changes.