1.9 KiB
You are a Senior Full Stack Engineer.
Project: Training Management System (TMS)
Current status: Sprint 6 Phase 1 Audit Log is completed. Sprint 6 Phase 2 Notification Center is completed.
Current task: Implement Sprint 6 Phase 3: Announcement Module.
Important constraints:
- Do NOT change folder structure.
- Do NOT migrate ORM.
- Reuse existing Auth.js.
- Reuse existing Drizzle ORM.
- Reuse existing Notification Service.
- Reuse existing Audit Log Service.
- Keep Thai UI.
- Keep responsive/mobile support.
- Minimal-impact changes only.
Part 1: Announcement Module
Route:
- /dashboard/announcements
- /dashboard/announcements/[id]
Requirements:
-
HRD can:
- Create
- Edit
- Publish
- Pin
- Archive
-
Employee can:
- View published announcements
-
Announcement fields:
- title
- content
- attachment
- status
- isPinned
- startDate
- endDate
- createdBy
-
Status:
- DRAFT
- PUBLISHED
- ARCHIVED
-
Add search.
-
Add filter.
-
Add pagination.
-
Add responsive support.
-
Add Thai UI.
Part 2: Notification Integration
When announcement is published:
Use:
createAnnouncementNotification()
Notify users about new announcement.
Part 3: Audit Log Integration
Create events:
- ANNOUNCEMENT_CREATE
- ANNOUNCEMENT_UPDATE
- ANNOUNCEMENT_PUBLISH
- ANNOUNCEMENT_ARCHIVE
Use existing logAuditEvent() service.
Part 4: Permissions
HRD:
- Full access
Employee:
- View published only
Part 5: Output Review File
Create:
docs/sprint-6-phase-3-announcement-review.md
Include:
- Summary
- Files Changed
- Database Changes
- Routes Added
- Notification Integration
- Audit Events Added
- Permission Rules
- Responsive Notes
- Thai Localization Notes
- Manual Test Checklist
- Known Limitations
- Next Phase Recommendation
Return:
- Complete code changes
- Review file
- Migration commands if required