Phase 9 · Requirement Document
IntelliBroadcast
A small multi-tenant .NET communication product that shares IntelliCampus identity and tenant data.
1. Objective
Use Codex to build a second ASP.NET Core product, deploy it independently to an Azure VM, and demonstrate Microsoft Entra ID SSO across separate OutSystems and .NET applications.
2. Users
- Student or employee: reads relevant announcements for their university.
- Communication Admin: creates, schedules, publishes, edits, and archives announcements for their university.
3. Functional scope
- Show active announcements filtered by TenantId and audience.
- Highlight important announcements.
- Manage draft, scheduled, published, expired, and archived announcements.
- Expose a read-only latest-announcements API for IntelliCampus.
- Open IntelliBroadcast from IntelliCampus without a second login.
4. Pages
- Announcements Feed
- Manage Announcements
- Create/Edit Announcement
5. Phase 9 Backoffice enhancement
- Configure Microsoft Entra ID as the shared identity provider.
- When Backoffice creates an IntelliCampus user, provision or invite the user in Entra ID and save the Entra Object ID in UserExtended.
- Map the authenticated Entra tenant and object IDs to the correct application tenant and user.
6. Acceptance criteria
- Users signing into IntelliCampus can open IntelliBroadcast without entering credentials again.
- Users see only their tenant's announcements.
- Only Communication Admins can access management pages.
- Expired or unpublished announcements do not appear in the feed or API.
- IntelliCampus can show the latest announcements through the secured API.
7. Out of scope
- Email, SMS, push notifications, and emergency dispatch.
- Read receipts and analytics.
- Attachments and rich-text editing.
- Public anonymous announcements.