-
-
Notifications
You must be signed in to change notification settings - Fork 516
Open
Description
Feature: Dedicated Church Information Configuration Page (First-Run UX)
Problem Statement
Currently, when a new ChurchCRM installation is completed, church-level information (name, address, logo, etc.) is mixed into the generic Edit General Settings page alongside technical system configuration. This creates a confusing first-run experience for administrators.
Solution
Create a dedicated admin-only page at /admin/church-info that:
- Organizes church metadata using a tabbed interface
- Separates church info from system/technical settings
- Enforces critical field completion during first run
- Improves user experience with clear, focused forms
Implementation Overview
Page Structure: /admin/church-info
Tabs:
- Basic Information (name, website, logo)
- Location (address, city, state, zip, country)
- Contact (phone, email)
- Map & Coordinates (latitude, longitude, timezone)
- Display Options (custom header, letterhead)
Architecture
- Routes: Add to
/admin/routes/system.php - Controller: New
ChurchInfoControllerfor GET/POST/AJAX - View:
src/admin/views/church-info.phpwith Bootstrap tabs - Middleware: New
ChurchInfoRequiredMiddlewarefor first-run enforcement - Database: Uses existing
system_configentries (no schema changes)
First-Run Enforcement
- Middleware checks if
sChurchNameis empty - Redirects non-exempt routes to
/admin/church-info - Dashboard displays warning if incomplete
- Exempt routes:
/admin/church-info,/logout, API auth endpoints
Configuration Fields
All existing SystemConfig entries (no new fields):
- sChurchName, sChurchAddress, sChurchCity, sChurchState
- sChurchZip, sChurchCountry, sChurchPhone, sChurchEmail
- iChurchLatitude, iChurchLongitude, sTimeZone
- sChurchWebSite, custom header, letterhead paths
Documentation
- Update
docs.churchcrm.iofirst-run guide with screenshots - Add new "Church Info" page to docs
- Update wiki if applicable
Testing Requirements
- Auth: Only admins can access
- Form save (POST + AJAX)
- Validation: Church name required
- Middleware: No redirect loops, proper exemptions
- Dashboard: Status reflects saved state
- Finance dashboard: Existing checks still work
Success Criteria
✅ Page displays organized church config tabs
✅ Form saves successfully (both POST and AJAX)
✅ First-run redirect enforces completion
✅ Dashboard warnings display correctly
✅ Documentation updated
✅ Tests pass
✅ Backward compatible with existing SystemSettings
Timeline
- Dev (routes/controller/view/middleware): 2-3 days
- Testing (unit + Cypress): 1 day
- Docs: 1 day
- Review & refinement: 1-2 days
Total: 5-7 development days
Reactions are currently unavailable