All apps
Complete inventory of GreekManage's 23 Django apps. Each links to a deeper page where one exists.
| App | Purpose | Models |
|---|---|---|
accounts | User identity, password, email verification, GDPR data export | 4 |
activity | Real-time chapter / org feed + announcements | 2 |
ai_services | LLM integrations, embeddings, AI reports, onboarding flows | 8 |
alumni | Alumni mentorship, career postings, privacy settings | 4 |
authentication | SSO (SAML), OAuth (Google / Microsoft / Okta), LinkedIn integration, encrypted credential storage | 5 |
backups | Automated DB + org export backups to S3 / MinIO | 2 |
common | Shared models (TimeStampedModel, AuditLog), permissions, middleware, base utilities | 2 |
compliance | National requirements, chapter submissions, multi-tier review, alerts, KPI dashboards | 9 |
documents | Governing docs (constitutions, bylaws, policies) with versioning + visibility controls | 2 |
elections | Election setup, voting, result tabulation, audit logging, runoff support | 6 |
events | Chapter event management, RSVP tracking, mandatory event compliance | 2 |
feedback | User feedback collection, admin triage inbox | 1 |
finances | Dues management, invoicing, multi-gateway payment processing, ledger, refunds | 10 |
forums | Engage forums (private chapter discussions), posts, comments, attachments, moderation | 5 |
foundation | Tax-exempt fundraising, campaigns, public donate, donor CRM, receipts | 7 |
learning | LMS — courses, lessons, quizzes, assessments, certificates, auto-assignment rules | 12 |
members | Member profiles, work history, skills, certifications, recognitions, family tree | 8 |
messaging | Direct + group chat, message reactions, read receipts, threads | 7 |
notifications | In-app + email notifications, per-event preferences, daily / weekly digests | 4 |
organizations | Multi-tenant core: Organization → Region → Chapter → Membership; admin tiers | 9 |
photos | Album + photo management with tagging + chapter / org-wide visibility | 3 |
platform | Platform admin tier, module licensing, platform email config | 3 |
retention | Member retention analytics, snapshots, alerts, retention surveys | 6 |
Total: 23 apps, ~157 models.
Patterns by app cluster
Core platform (always-on)
accounts, authentication, common, organizations, members, notifications, platform, feedback
These are foundational. Every other app builds on them. Toggling any off would break the platform.
Operations cluster (license: operations module)
compliance, elections, finances, retention
Workflow-heavy domains for chapter operations and headquarters oversight.
Community cluster (license: community module)
forums, events, photos, activity
Engagement and social surfaces.
Programs cluster (per-module licenses)
documents, learning, foundation, alumni, messaging
Each has its own license toggle. Most chapters enable some but not all.
Intelligence (license: ai_services module)
ai_services
LLM, embeddings, RAG, AI reports.
Platform ops
backups, feedback
Cross-tenant infrastructure.
Conventions every app follows
Each app under backend/apps/<name>/:
<name>/
├── __init__.py
├── apps.py # AppConfig
├── models.py # Models
├── serializers.py # DRF serializers
├── views.py # ViewSets / views
├── urls.py # URL patterns
├── permissions.py # App-specific permissions (if any)
├── signals.py # Django signals (if any)
├── tasks.py # Celery tasks (if any)
├── admin.py # Django admin
├── migrations/
└── tests/
├── factories.py
└── test_*.py
Some apps add:
services.py— business logic separated from viewsselectors.py— read-side query helpers (uncommon)providers/— external integration abstractions (e.g.,ai_services/providers/)consumers.py— Channels WebSocket consumers (e.g.,ai_services/,elections/)
How to read a per-app page
Each per-app page covers:
- What it does — the business problem
- Models — schema + invariants
- Views / endpoints — major URL patterns
- Permissions — gating
- Background tasks — Celery jobs
- External integrations — third-party services
- Signals — cross-app side effects
- Notable patterns — quirks worth knowing
Apps without a dedicated page are simple enough that the table above covers them. Open an issue or a PR if you'd like one written.