Files
alla-tms/plans/sprint-6-phase-3.md
2026-07-16 09:53:14 +07:00

127 lines
1.9 KiB
Markdown

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:
1. HRD can:
- Create
- Edit
- Publish
- Pin
- Archive
2. Employee can:
- View published announcements
3. Announcement fields:
- title
- content
- attachment
- status
- isPinned
- startDate
- endDate
- createdBy
4. Status:
- DRAFT
- PUBLISHED
- ARCHIVED
5. Add search.
6. Add filter.
7. Add pagination.
8. Add responsive support.
9. 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:
1. Summary
2. Files Changed
3. Database Changes
4. Routes Added
5. Notification Integration
6. Audit Events Added
7. Permission Rules
8. Responsive Notes
9. Thai Localization Notes
10. Manual Test Checklist
11. Known Limitations
12. Next Phase Recommendation
Return:
- Complete code changes
- Review file
- Migration commands if required