DTS Dev Docs

Serve System

Rock RMS volunteer scheduling and sign-up plugin

The Serve System plugin extends Rock RMS with structured volunteer opportunity management, role-based scheduling, self-service sign-up, targeted communications, and coordinator workflows.

Codebase source: serve-system/

Core capabilities

  • Serve Opportunities: define opportunities, roles, campuses, and attributes.
  • Scheduling: generate and manage instances and shifts with custom timing.
  • Volunteer experience: self-service sign-up and confirmation communication.
  • Coordinator operations: targeted notification emails and connection integration.
  • Rock integration: WebForms legacy blocks and Obsidian block surfaces.

Quick start (development)

dotnet tool install --global SparkDevNetwork.Rock.DevTool
rock-dev-tool env update
cd serve-system
dotnet restore
dotnet build

High-level architecture

ServeOpportunity
|- Roles (ServeOpportunityRole)
|  |- optional Connection Opportunity / DataView filters
|- Notification Recipients
|- Notification Content Templates
|- Instances (ServeOpportunityInstance)
   |- Shifts (ServeOpportunityInstanceShift)
      |- Sign-Ups (ServeOpportunityInstanceSignUp)

Primary implementation namespaces live under org.tpcc.ServeSystem/Model, org.tpcc.ServeSystem/Blocks, and org.tpcc.ServeSystem/Workflow/Actions.

Primary blocks

Block Plugin path Purpose
Serve Opportunity List ~/Plugins/org_tpcc/ServeSystem/ServeOpportunityList.ascx List and route into opportunity management.
Serve Opportunity Detail ~/Plugins/org_tpcc/ServeSystem/ServeOpportunityDetail.ascx Edit opportunity metadata, roles, recipients, and templates.
Serve Opportunity Instance List/Detail ~/Plugins/org_tpcc/ServeSystem/ServeOpportunityInstance*.ascx Create and maintain event/service instances.
Serve Opportunity Instance Sign-Up List/Detail ~/Plugins/org_tpcc/ServeSystem/ServeOpportunityInstanceSignUp*.ascx View and manage registrations and cancellation state.
Role Schedule Configurator ~/Plugins/org_tpcc/ServeSystem/RoleScheduleConfigurator.ascx Configure role-level scheduling behavior.
Serve Sign-Up ~/Plugins/org_tpcc/ServeSystem/SignUp/ServeSignUp.ascx Public volunteer sign-up entry point.

Key source files

  • serve-system/org.tpcc.ServeSystem/Model/ServeOpportunityInstanceSignUp/ServeOpportunityInstanceSignUpService.cs
  • serve-system/org.tpcc.ServeSystem/Model/ServeOpportunityNotificationContentTemplate/ServeOpportunityNotificationContentTemplateService.cs
  • serve-system/org.tpcc.ServeSystem/Workflow/Actions/CancelServeSignUp.cs
  • serve-system/org.tpcc.ServeSystem/Lava/ServeFilters.cs
  • serve-system/org.tpcc.ServeSystem/Startup.cs