feat: Full nonprofit platform build — 16 commits #12

Merged
jmiller merged 17 commits from dev into main 2026-06-18 14:54:57 +00:00
Owner

Summary

  • 7 helpers, 5 API controllers, 6 site views, 7 admin models, 12 tables
  • Donor management with lifetime giving, levels, recognition
  • Fund accounting (restricted/unrestricted) for GAAP compliance
  • Campaign thermometer with real-time progress tracking
  • Volunteer registration, hours logging, skills matching
  • Grant tracking with deadlines and reporting
  • MemberPortal (giving history, tax receipts, event registrations)
  • EventCalendar with capacity management and registration
  • Online donation page with fund/campaign selection

Test plan

  • Verify all 12 NPO tables created
  • Test public donation flow end-to-end
  • Test volunteer signup and hours logging
  • Verify member portal displays giving history
  • Test campaign progress calculation
## Summary - 7 helpers, 5 API controllers, 6 site views, 7 admin models, 12 tables - Donor management with lifetime giving, levels, recognition - Fund accounting (restricted/unrestricted) for GAAP compliance - Campaign thermometer with real-time progress tracking - Volunteer registration, hours logging, skills matching - Grant tracking with deadlines and reporting - MemberPortal (giving history, tax receipts, event registrations) - EventCalendar with capacity management and registration - Online donation page with fund/campaign selection ## Test plan - [ ] Verify all 12 NPO tables created - [ ] Test public donation flow end-to-end - [ ] Test volunteer signup and hours logging - [ ] Verify member portal displays giving history - [ ] Test campaign progress calculation
jmiller added 16 commits 2026-06-18 13:34:11 +00:00
Layer 2 add-on for MokoSuite CRM. Full nonprofit operations:

Schema (12 tables):
- Donors (extends CRM contacts with giving levels + lifetime stats)
- Donations (cash/check/card/ACH/stock/crypto/in-kind/pledge/matching)
- Pledges (installment tracking with fulfilment status)
- Funds (unrestricted/temporarily/permanently restricted/endowment)
- Campaigns (fundraising drives with goals and thermometers)
- Grants (prospect > writing > submitted > awarded > reporting lifecycle)
- Volunteers (skills, availability, background checks)
- Volunteer Hours (activity logging with approval)
- Memberships (levels, dues, auto-renew)
- Tax Receipts (IRS-compliant acknowledgment letters)
- Events (galas, auctions, community events with registration)
- Event Registrations (tickets, dietary, table assignment)

Helpers (4):
- DonorHelper: profiles, giving history, level auto-calculation, lapsed detection
- CampaignHelper: active campaigns, thermometer data, fundraising summary
- VolunteerHelper: registration, hours logging, skills matching, reporting
- TaxReceiptHelper: IRS-compliant receipt generation, year-end batch

Infrastructure:
- Joomla 6 architecture (PHP 8.3+, DI container, typed properties)
- Admin dashboard with fundraising thermometers + grant deadlines
- 6 webservice routes (donors, donations, campaigns, grants, volunteers, events)
- Package manifest with DLID update server
- GPL-3.0 license
NpoDonationsController API: donations CRUD, campaigns list, thermometer
data, donor list, fundraising summary.
Admin views: Donors list with lifetime giving + level badges, Campaigns
with progress bars + donor counts, Grants pipeline with deadline tracking.
NpoAutomation task plugin: year-end tax receipts, lapsed donor detection,
grant deadline reminders, pledge follow-up emails.
MokoSuiteNpoApi webservices: 6 CRUD routes (donors, donations, campaigns,
grants, volunteers, events). Router, config.xml, access.xml, updates.xml.
NpoDonationsController: requireAuth() checks on listDonations and
createDonation (npo.donations permission). Matches access.xml actions.
Donate: online donation form with quick-amount buttons, fund/campaign
selection, tribute (in honor/memory), auto tax receipt generation,
contact auto-creation. Campaign page: public thermometer + recent
donors + donate button. Volunteer signup: skills checkboxes, day
availability, auto contact creation + volunteer registration.
GrantHelper: pipeline summary, deadline tracking, report due dates.
MembershipHelper: active members, expiring, revenue summary, renewal.
EventHelper: upcoming events, registration, check-in, capacity tracking.
Admin views: Events list, Volunteers with hours stats, Memberships
with annual dues summary. All with templates.
NpoEventsController: event listing + registration + check-in, volunteer
hours logging, membership summary, grant pipeline with reports due.
Permission checks on admin-only endpoints (npo.grants, core.manage).
- NpoVolunteersController: list, register, log hours, stats
- NpoGrantsController: grants CRUD, campaigns with progress tracking
- EventCalendar: public monthly view with registration counts
- GrantPortal: public grant listing with summary stats
All use Joomla 6 BaseDatabaseModel with $this->getDatabase()
Updated .gitmodules URL and path for the MokoSuite → MokoSuiteClient rename.
jmiller added 1 commit 2026-06-18 14:52:15 +00:00
jmiller merged commit 5d7fdc530d into main 2026-06-18 14:54:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
Priority -
Type -
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteNPO#12