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.csserve-system/org.tpcc.ServeSystem/Model/ServeOpportunityNotificationContentTemplate/ServeOpportunityNotificationContentTemplateService.csserve-system/org.tpcc.ServeSystem/Workflow/Actions/CancelServeSignUp.csserve-system/org.tpcc.ServeSystem/Lava/ServeFilters.csserve-system/org.tpcc.ServeSystem/Startup.cs