Skip to main content

Technical documentation for the Get Information about Schools service.

News Announcements And Notifications

This page explains news, announcement and frontend notification tables.

Scope

This model covers:

  • legacy news stories and targeted user groups;
  • legacy announcement templates and publication logs;
  • frontend news articles;
  • frontend notification templates and banners.

How To Read This Model

  • Legacy news stories combine content, approval and audience targeting.
  • Announcement templates are used to create publish or remove attempts.
  • Frontend notification tables use a content-store style key shape.
  • Announcement publication identifiers are integration references, not physical foreign keys.

Application-Derived Insights

  • News and announcements are communication models, not provider facts.
  • Legacy and frontend news models are separate shapes and should not be merged without confirming the source of truth.
  • Announcement templates mix content, audience targeting, trigger/action classification and publication behaviour.
  • Future design should separate message template, target audience, publication event and delivery state.

Legacy News

erDiagram NewsStory { numeric id PK nvarchar title nvarchar summary nvarchar text bit approved datetime effectiveDate datetime createdAt datetime updatedAt nvarchar createdBy_username FK nvarchar signOffUser_username FK nvarchar signedOffBy_username FK } NewsStoryUserGroup { numeric NewsStory_id PK nvarchar groups_code PK } UserGroup { nvarchar code PK nvarchar name nvarchar role } SystemUser { nvarchar username PK nvarchar UserGroupCode FK } NewsStory ||--o{ NewsStoryUserGroup : targeted_groups UserGroup ||--o{ NewsStoryUserGroup : audience_group SystemUser ||--o{ NewsStory : created_by SystemUser ||--o{ NewsStory : sign_off_user SystemUser ||--o{ NewsStory : signed_off_by

NewsStory

Business-friendly pattern:

For this legacy news story,
what content should be shown,
from what effective date,
and which user groups should see it after approval?

NewsStoryUserGroup

Business-friendly pattern:

For this news story,
which user groups should see it?

Legacy Announcements

erDiagram AnnouncementTemplate { numeric id PK nvarchar announcementType nvarchar applicationId varchar announcementTitle varchar announcementSummary int expirationAfterDays bit enabled bit canBeSentManually numeric organisationId nvarchar announcementAction_code FK } AnnouncementTemplateUserGroup { numeric AnnouncementTemplate_id PK nvarchar groups_code PK } AnnouncementCollection { numeric id PK nvarchar announcementType numeric template_id FK numeric saOrgId numeric urn numeric uid bit publish bit published bit remove bit removed datetime ts datetime datePublished datetime dateRemoved } AnnouncementCollectionValues { numeric announcementId PK nvarchar fieldKey PK nvarchar fieldVal } EduBaseTrigger { nvarchar code PK nvarchar name } UserGroup { nvarchar code PK nvarchar name nvarchar saUserGroupCode } EduBaseTrigger ||--o{ AnnouncementTemplate : action AnnouncementTemplate ||--o{ AnnouncementTemplateUserGroup : selected_groups UserGroup ||--o{ AnnouncementTemplateUserGroup : audience_group AnnouncementTemplate ||--o{ AnnouncementCollection : creates_publish_log AnnouncementCollection ||--o{ AnnouncementCollectionValues : template_values

AnnouncementTemplate

Business-friendly pattern:

For this announcement template,
what message should be prepared,
which trigger or action describes it,
which groups are targeted,
and can it be sent manually?

AnnouncementCollection

Business-friendly pattern:

For this generated announcement,
was it queued to publish or remove,
and what publication outcome was recorded?

Frontend News And Notifications

erDiagram FrontEndNewsArticles { varchar PartitionKey PK varchar RowKey PK datetime2 Timestamp varchar Title datetime2 ArticleDate bit ShowDate varchar Content tinyint Version } FrontEndNotificationTemplates { varchar PartitionKey PK varchar RowKey PK datetime2 Timestamp varchar Content } FrontEndNotificationBanners { varchar PartitionKey PK varchar RowKey PK datetime2 Timestamp tinyint Importance varchar Content datetime2 Start datetime2 End tinyint Version } FrontEndNotificationTemplates ||..o{ FrontEndNotificationBanners : optional_template_source

FrontEndNewsArticles

Business-friendly pattern:

For this frontend news article,
what article content, date and version should be displayed?

FrontEndNotificationBanners

Business-friendly pattern:

For this frontend notification banner,
what content should be shown,
what importance does it have,
and when should it start and end?

Reading This Diagram

Use this model to separate legacy portal communications from frontend content. News, announcements and banners are all communications, but they have different lifecycle and audience rules.