G2-Pair1 (Module 20): Notification & Announcement Module v2 — final submission#1902
Open
KasuAbhishekReddy wants to merge 2 commits into
Open
G2-Pair1 (Module 20): Notification & Announcement Module v2 — final submission#1902KasuAbhishekReddy wants to merge 2 commits into
KasuAbhishekReddy wants to merge 2 commits into
Conversation
Notification & Announcement Module backend (final submission for IT3C03). Roll numbers: 23BCS131, 23BCS054, 23BCS005 New module at applications/notifications_extension/: - services.py — business logic + custom exceptions (chokepoint for BR-NT-01..09) - selectors.py — DB read queries only (no writes) - models.py — TextChoices + 4 models (NotificationPreference, NotificationEventType, Announcement with approval_id UUID, ArchivedNotification) - api/views.py — 52 thin DRF endpoints - api/serializers.py — field-level validation only - api/urls.py — URL routing (each route registered with + without trailing slash) - api/exception_handler.py — global JSON error envelope - migrations/0001..0009 — full schema including approval_id (BR-NT-08) - tests/test_module.py + test_use_cases.py + test_business_rules.py + test_workflows.py - tests/specs/ + tests/reports/ — 39 spec-driven tests + 62 unit/integration, all passing - Designated_Roles.md — role permission matrix New SDK at notification_client/: - client.py — public API for other Fusion modules to send notifications Removed legacy stubs: - notifications_extension/tests.py — replaced by tests/ folder - notifications_extension/urls.py — replaced by api/urls.py - notifications_extension/views.py — replaced by api/views.py Roles defined in this module: - NAM Admin (Authorized Sender) — institute admins; full CRUD on event types, broadcasts, triggers - External Fusion Module (System Actor) — other Fusion apps emit via notification_client SDK - Recipient (Student / Faculty / Staff) — sees notifications in navbar bell + dashboard tray No other modules touched.
The previous commit accidentally left the api/ folder files as the legacy stubs because they existed on the announcements-v2 base branch. This commit replaces them with the team's full implementation: - api/serializers.py — DRF serializers with field-level validation (full version) - api/urls.py — URL routing for all 52 endpoints (each with + without trailing slash) - api/views.py — 52 thin DRF endpoints implementing UC-NT-01..04 and BR-NT-01..09
Collaborator
|
Congratulations for making your first Pull Request at Fusion!! 🎉 Someone from our team will review it soon. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 applications/notifications_extension/
_sendchokepoint enforcing BR-NT-01..09approval_idUUID for BR-NT-08, ArchivedNotification)approval_idUUIDtest_module.py+test_use_cases.py+test_business_rules.py+test_workflows.py+ conftest + runner + specs/ (yaml) + reports/ (csv). 39 spec-driven tests + 62 unit/integration, all passing.New SDK at notification_client/
Removed legacy stubs
notifications_extension/tests.py→ replaced bytests/foldernotifications_extension/urls.py→ replaced byapi/urls.pynotifications_extension/views.py→ replaced byapi/views.pyRoles defined in this module
notification_clientSDKUse Cases / Business Rules / Workflows implemented
No other modules touched.