Backend modules, realtime, and notifications
The Academia backend is not one generic API surface. The frontend depends on several business modules, and some of the most important product behavior now comes from realtime updates, push delivery, and workflow-triggered notification services.
Why this page matters
The main environment and API guide lists endpoint families, but contributors still need a clearer mental model of which backend areas exist and why the frontend feels event-driven in several flows.
Fastest route through this guide
- Read Main backend service families to understand the module map.
- Read Workflow-driven notification model to see how product events reach users.
- Read Realtime channels to understand chat and live-update behavior.
- Continue to Announcements, notifications, and communication if you want the product-facing interpretation.
Main backend service families
The current product already points to several core module families:
authadmininvitationstenantprojectanalyticscontactnotificationdepartmentmilestonestudent-profilegroup-leader-requestproject-groupchatevaluationpublic
These names matter because they mirror the real business areas the frontend calls or depends on.
How contributors should use this module map
The cleanest reading is:
- use
auth,tenant, andpublicwhen the feature is about entry, identity, or public forms - use
project,milestone,evaluation, andanalyticswhen the feature is about academic workflow - use
notificationandchatwhen the feature is about delivery of events or direct communication - use
department,invitations, andadminwhen the feature is about governance and rollout control
Workflow-driven notification model
The backend already emits workflow-sensitive notifications for real academic state changes.
Current documented examples include:
- proposal submission notifications
- proposal approval and rejection notifications
- group-review notifications
- milestone progress or approval notifications
- evaluator reminder and late-stage follow-up behavior
This matters because the frontend is not polling blindly for every change. Several UI updates depend on backend event delivery or notification records.
Push-oriented delivery
The current notification family also already includes push-oriented support.
Known examples include:
GET /notifications/push/vapid-public-key- push subscription endpoints under
/notifications/push
This is the backend layer that lets the product move beyond in-tab awareness when the deployment model supports push delivery.
Realtime channels
The frontend already derives a socket origin from NEXT_PUBLIC_API_BASE_URL for live integrations.
Current documented examples include:
- notifications socket integration
- chat socket integration
These channels authenticate with:
accessTokentenantDomain
That keeps socket traffic aligned with the same tenant-aware trust model used by the REST client.
Why chat and notification modules matter together
Chat and notifications are related but different.
- notifications deliver workflow events and attention signals
- chat supports direct conversation or contextual collaboration
The frontend needs both because a milestone approval, a proposal rejection, and a direct advisor-student conversation are not the same product event.
Practical contributor guidance
When documenting or integrating a feature:
- identify which backend module family owns the business rule
- decide whether the feature needs REST only, realtime, or both
- keep tenant context consistent across Axios and socket connections
- document workflow events as part of the feature contract, not as optional UI decoration
Common mistakes to avoid in the docs
- Do not describe the backend as one flat API. Module boundaries matter for understanding behavior.
- Do not document notifications as frontend-only toasts. They come from backend workflow services.
- Do not forget push and socket behavior when explaining event-heavy features.
- Do not separate realtime auth from normal tenant-aware auth. They share the same trust context.
Best page after this one
| If you want to do next... | Go here | Why |
|---|---|---|
| See the client-side integration rules | Environment and API client | It explains how the frontend connects to these backend areas. |
| See the product-facing meaning of notifications and messages | Announcements, notifications, and communication | It turns these technical layers into workflow language. |
| See host and tenant isolation behavior | Multi-tenancy | It covers the tenant-aware constraints that apply across these modules. |