Skip to content

G2-Pair1 (Module 20): Notification & Announcement Module v2 — final submission#231

Open
KasuAbhishekReddy wants to merge 1 commit into
FusionIIIT:announcements-v2from
KasuAbhishekReddy:announcements-v2
Open

G2-Pair1 (Module 20): Notification & Announcement Module v2 — final submission#231
KasuAbhishekReddy wants to merge 1 commit into
FusionIIIT:announcements-v2from
KasuAbhishekReddy:announcements-v2

Conversation

@KasuAbhishekReddy
Copy link
Copy Markdown

Module ID: 20
Module Name: Notification & Announcement Module
Pair: G2-Pair1 (AI-assisted development)
Roll Numbers: 23BCS131, 23BCS054, 23BCS005

Final submission for IT3C03.

New module at src/Modules/Notification/

  • NotificationModule.jsx — single-page hub with 5 tabs (Inbox, Preferences, Send, Announcements, Event Types)
  • api.js — Axios wrappers for all 52 backend endpoints
  • components/NotificationBell.jsx — global navbar bell with 5s poll (UC-NT-04, BR-NT-02)
  • components/NotificationItem.jsx — single notification row with read/archive
  • components/NotificationList.jsx — list wrapper with empty state
  • components/PreferenceToggle.jsx — per-module opt-in/out switch (BR-NT-06)
  • components/UnreadBadge.jsx — unread badge count

New routes at src/routes/notificationRoutes/index.jsx

URL constants for all 52 NAM API endpoints.

Minimal wiring deltas (only NAM-specific lines touched)

  • src/components/header.jsx — renders <NotificationBell /> globally (BR-NT-02)
  • src/redux/userslice.jsxstate.user.isStaff for BR-NT-03 UI gating
  • src/helper/validateauth.jsx — populates user state on login
  • src/main.jsx — module/route registration
  • src/Modules/Dashboard/dashboardNotifications.jsx — NAM dashboard tab
  • src/routes/dashboardRoutes/index.jsx — dashboard route registration
  • src/routes/globalRoutes/index.jsx — defines host constant
  • vite.config.js — proxy /api to backend at port 8000

Roles defined in this module

  • NAM Admin (Authorized Sender) — broadcast button + Send/Event Types tabs visible only when state.user.isStaff
  • External Fusion Module (System Actor) — backend-side concept, surfaced through API responses
  • Recipient (Student / Faculty / Staff) — sees notifications in navbar bell + Inbox tab; can mark read, archive, toggle per-module preferences

Use Cases / Business Rules implemented (frontend touchpoints)

  • UCs: UC-NT-03 (Broadcast modal in dashboard), UC-NT-04 (Global Notification Tray + Inbox)
  • BRs (UI-side): BR-NT-02 (single NotificationBell in global header), BR-NT-03 (UI gating by state.user.isStaff), BR-NT-06 (per-module Preferences toggle UI), BR-NT-09 (Archive button in inbox)

No other modules touched.

Notification & Announcement Module frontend (final submission for IT3C03).
Roll numbers: 23BCS131, 23BCS054, 23BCS005

New module at src/Modules/Notification/:
- NotificationModule.jsx — single-page hub with 5 tabs (Inbox, Preferences, Send, Announcements, Event Types)
- api.js — Axios wrappers for all 52 backend endpoints
- components/NotificationBell.jsx — global navbar bell with 5s poll (UC-NT-04, BR-NT-02)
- components/NotificationItem.jsx — single notification row with read/archive
- components/NotificationList.jsx — list wrapper with empty state
- components/PreferenceToggle.jsx — per-module opt-in/out switch (BR-NT-06)
- components/UnreadBadge.jsx — badge count indicator

New routes at src/routes/notificationRoutes/index.jsx (URL constants for NAM API).

Minimal wiring deltas (only NAM-specific lines):
- src/components/header.jsx — renders <NotificationBell /> globally (BR-NT-02)
- src/redux/userslice.jsx — state.user.isStaff for BR-NT-03 UI gating
- src/helper/validateauth.jsx — populates user state on login
- src/main.jsx — module/route registration
- src/Modules/Dashboard/dashboardNotifications.jsx — NAM dashboard tab
- src/routes/dashboardRoutes/index.jsx — dashboard route registration
- src/routes/globalRoutes/index.jsx — defines `host` constant
- vite.config.js — proxy /api to backend

Roles defined in this module:
- NAM Admin (Authorized Sender)
- External Fusion Module (System Actor)
- Recipient (Student / Faculty / Staff)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant