Skip to Content
Living documentation — last reviewed 2026-05-28
FeaturesAnnouncementsAnnouncements — Code Map

Announcements — Code Map

API

FileRole
apps/api/src/announcements/announcements.module.tsDI wiring; imports MessagesModule for the gateway + push module + event tracking
apps/api/src/announcements/announcements.controller.tsEndpoints: create, list, detail, mark read, unread count
apps/api/src/announcements/announcements.service.tscreateAnnouncement, fanOutAnnouncementPush, listAnnouncements, getAnnouncementDetail, markRead, getUnreadCountForClerk
apps/api/src/announcements/announcements.service.driver.ts + .unit.spec.tsTests
apps/api/src/announcements/dto/announcements.dto.tsDTOs

DB

FileRole
libs/db/src/lib/schema/announcements.tsannouncements, announcement_reads

Web

FileRole
apps/web/src/components/announcements/create-announcement-dialog.tsx (+ spec + driver)Staff composer
apps/web/src/components/announcements/announcement-bell-panel.tsxBell + dropdown
apps/web/src/components/announcements/announcement-card.tsx (+ spec + driver)List item
apps/web/src/components/announcements/announcement-detail.tsxDetail w/ read receipts
apps/web/src/components/announcements/announcement-list.tsxPaginated list
apps/web/src/components/announcements/announcements-tab.tsxTab embedding

Cross-feature

  • apps/api/src/messages/messages.gateway.ts .broadcastAnnouncement(orgId, payload) — emits announcement:new to org:{orgId} room.
  • apps/api/src/push-notifications/push-notifications.service.ts .notifyUsers(ids, payload) with category announcement.
  • apps/api/src/event-tracking/event-tracking.service.ts .track('announcement_published', ...).