Version 2.0.0 — See CHANGELOG.md.
Open-source (MIT) membership management for AMA-affiliated RC flying clubs. One installation serves one club (single database, single config.php). Officers get a shared dashboard, role-based logins, and club branding (logo, favicon, colors) that carries through the app and help docs.
- Members — Searchable roster, CSV import/export, photos, emergency contacts; Sender.net email preference status on the contact tab when configured
- New member wizard — Guided five-step signup: contact → compliance → membership → record first payment → print & mail
- Renewals & dues — Record cash/check payments in the staff ledger; prorated, late, and complimentary renewals
- Online applications — Public form at
/apply.php(AMA verify, Stripe, email opt-in, club-record prefill); staff review queue in Applications (docs/applications.html) - Member self-service — Passwordless
/membershipmagic-link profile for contact, AMA, TRUST attestation, uploads, and email prefs (docs/members.html) - AMA & TRUST compliance — Track AMA numbers and expirations (live lookup) plus TRUST attestation; FAA registration columns remain in the database only
- Badge designer & printing — Multiple CR80 templates, Fabric.js canvas editor, live member preview, undo/redo, personalized print at renewal
- Reports — Membership, retention, revenue, compliance, and more — on screen, CSV, branded PDF, or email
- Incident log — Optional dated safety/field incident records
- Administration — Users & roles (administrator, membership manager, club staff, report viewer), club configuration, complimentary invites, audit log
End-user help lives in docs/ (also linked from the app as Help & Documentation).
- New to the project? → START_HERE.md — database, config, first login
- Local development on a Mac? → LOCAL_DEV.md
- Deploying to a server? → DEPLOY.md — checklist, cPanel data move, Nginx notes. Apache:
uploads/.htaccessblocks PHP in uploads; Nginx needs an equivalent rule in the server config. - Online applications →
/apply.phpon your domain; configure Stripe and signing secret under Administration → Installation (docs/applications.html) - Architecture and plan → PLAN.md
- How the app is built → TECHNICAL.md — file layout,
includes/, entry points, scripts
PHP 8.2+, MySQL/MariaDB, Bootstrap 5 (vendored under assets/vendor/). No application framework. Composer: dompdf (PDF export), PHPMailer (email), stripe/stripe-php (online apply payments), PHPUnit (dev tests — composer test).
MIT. See LICENSE. Third-party licenses in THIRD_PARTY_LICENSES.md.