11 Commits

Author SHA1 Message Date
Jonathan Miller 29e87cb572 Add 7 admin models — Donors, Donations, Campaigns, Grants, Volunteers, Events, Memberships
All use Joomla 6 BaseDatabaseModel with $this->getDatabase()
2026-06-15 00:49:53 -05:00
Jonathan Miller 33f4da29f9 Add Volunteers/Grants API controllers, EventCalendar and GrantPortal site views
- 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
2026-06-15 00:35:03 -05:00
Jonathan Miller d257afa23e feat: events/volunteers/memberships/grants API controller
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).
2026-06-13 08:57:23 -05:00
Jonathan Miller 38dabdce76 chore: CI workflow, language files, CSS, JS infrastructure 2026-06-13 08:37:25 -05:00
Jonathan Miller c9c5ff7254 feat: events, volunteers, memberships views + grant/membership/event helpers
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.
2026-06-13 08:14:30 -05:00
Jonathan Miller 9f304902f9 feat: public donate page, campaign page with thermometer, volunteer signup
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.
2026-06-13 08:01:55 -05:00
Jonathan Miller 7a033da7ed feat: wire ACL permission checks into API controller
NpoDonationsController: requireAuth() checks on listDonations and
createDonation (npo.donations permission). Matches access.xml actions.
2026-06-13 07:33:08 -05:00
Jonathan Miller f97c86bc71 chore: comprehensive config.xml settings + access.xml permissions 2026-06-13 07:20:07 -05:00
Jonathan Miller 2b6d52eeb3 feat: webservices plugin, task scheduler, router, config, access
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.
2026-06-13 07:10:16 -05:00
Jonathan Miller 675fff8ca6 feat: donors list, campaigns with thermometers, grants pipeline, donations API
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.
2026-06-13 06:53:08 -05:00
Jonathan Miller 72c6d9a0e6 feat: initial scaffold — MokoSuiteNPO nonprofit management
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
2026-06-12 00:41:21 -05:00