Skip to main content

Module dependency graph

GreekManage exposes 9 license-toggleable modules to org admins. Each module is implemented by one or more Django apps in the backend. This page maps that relationship and shows what depends on what.

Modules ↔ apps

Always-on apps (not module-gated)

Some apps are core platform infrastructure and can't be turned off:

These provide:

AppProvides
accountsUser model, profile, password, data export, account deletion
authenticationSAML, OAuth, LinkedIn, encrypted credential storage
commonPermissions, middleware, audit log, base model classes
organizationsOrg, region, chapter, membership, admin tiers
membersMember profiles, degrees, work history, skills, recognitions
notificationsIn-app + email, preferences, digests
platformPlatform admin, module licensing, email config
feedbackUser feedback inbox

Inter-app dependencies

Some apps depend on others — disabling a module that another app needs causes graceful degradation, not crashes.

Notable deps

  • AI Services indexes content from documents, forums, members, compliance. Without those modules enabled, the chatbot's retrieval scope shrinks but it still works for what's indexed.
  • Learning can link to compliance requirements (e.g., "passing this course satisfies hazing-prevention compliance"). If Compliance is off, learning still works but the auto-mark-complete on compliance won't fire.
  • Notifications is always on but each module emits its own event types. Disabling a module mutes its event types.
  • Common wires audit logging into write-heavy apps via middleware — every module benefits.

Effects of disabling a module

This is enforced consistently:

  • Frontend: <ModuleGuard module="community"> wraps gated routes
  • Backend: @module_required("community") decorator on viewsets (or middleware-level check)
  • Celery: tasks check OrganizationModule.is_enabled(...) before doing work

Module enablement table

ModuleAppsDefault?Pricing tier (typical)
operationscompliance, elections, finances, retentionOff (recommended on)Standard
communityforums, events, photos, activityOff (recommended on)Standard
documentsdocumentsOffStandard
learninglearningOffAdd-on
foundationfoundationOffAdd-on
alumnialumniOffStandard
messagingmessagingOffStandard
ai_servicesai_servicesOffAdd-on (per-query metered)
data_exportbackupsOffAdd-on (large orgs)

Defaults are "off" on org creation — platform admins enable based on the customer's contract.

Where to look in code

NeedFile
Module listapps/organizations/models.pyOrganizationModule.MODULE_CHOICES
Per-org licensingapps/organizations/models.pyOrganizationModule(org=, module=, is_enabled=)
Module guard (frontend)frontend/src/components/auth/module-guard.tsx
Module decorator (backend)apps/common/decorators.py@module_required