diff --git a/RE_Developer_Checklist.md b/RE_Developer_Checklist.md
new file mode 100644
index 0000000..fdccb3d
--- /dev/null
+++ b/RE_Developer_Checklist.md
@@ -0,0 +1,265 @@
+# RE Workflow - Developer Action Checklist
+## Week-by-Week Task List for Developers
+
+**Current Week:** Week 2
+**Target Launch:** End of December 2025
+
+---
+
+## 🔥 WEEK 2 (THIS WEEK) - Complete Foundation
+
+### Backend Developer Tasks (3 days)
+
+#### Day 1: Database Setup
+- [ ] Install PostgreSQL 16
+- [ ] Create database `re_workflow_db`
+- [ ] Run schema SQL from `RE_Workflow_Complete_Project_Setup.md` (lines 980-1427)
+- [ ] Verify all 15 tables created
+- [ ] Test database connection
+- [ ] ✅ Deliverable: Database ready
+
+#### Day 2: Express & Middleware
+- [ ] Complete `src/app.ts` (Express setup)
+- [ ] Configure helmet, cors, body-parser
+- [ ] Setup Winston logger
+- [ ] Create error handler middleware
+- [ ] Test `/health` endpoint
+- [ ] ✅ Deliverable: Server running
+
+#### Day 3: Sequelize Models
+- [ ] Configure Sequelize connection
+- [ ] Create models:
+ - [ ] User.ts
+ - [ ] WorkflowRequest.ts
+ - [ ] ApprovalLevel.ts
+ - [ ] Participant.ts
+ - [ ] Document.ts
+ - [ ] WorkNote.ts
+ - [ ] Activity.ts
+ - [ ] Notification.ts
+ - [ ] TATTracking.ts
+ - [ ] ConclusionRemark.ts
+- [ ] Define model associations
+- [ ] Test queries
+- [ ] ✅ Deliverable: ORM working
+
+---
+
+### Frontend Developer Tasks (4 days)
+
+#### Day 1: Complete UI Extraction
+- [ ] Finish remaining 20% of Figma components
+- [ ] Fix any styling bugs
+- [ ] Test mobile responsive (320px - 1920px)
+- [ ] Ensure all dummy data displays
+- [ ] ✅ Deliverable: 100% UI extraction
+
+#### Day 2-3: Redux Store Setup (CRITICAL)
+- [ ] Create `src/redux/store.ts`
+- [ ] Create `src/redux/hooks.ts`
+- [ ] Create slices:
+ - [ ] authSlice.ts
+ - [ ] workflowSlice.ts
+ - [ ] approvalSlice.ts
+ - [ ] notificationSlice.ts
+ - [ ] documentSlice.ts
+ - [ ] workNoteSlice.ts
+ - [ ] participantSlice.ts
+ - [ ] uiSlice.ts
+- [ ] Configure Redux DevTools
+- [ ] Setup Redux persist
+- [ ] ✅ Deliverable: Redux working
+
+#### Day 4: Axios API Layer (CRITICAL)
+- [ ] Create `src/services/api.ts` (Axios instance)
+- [ ] Setup request interceptor (add JWT)
+- [ ] Setup response interceptor (handle errors)
+- [ ] Create service files:
+ - [ ] auth.service.ts
+ - [ ] workflow.service.ts
+ - [ ] approval.service.ts
+ - [ ] document.service.ts
+ - [ ] notification.service.ts
+ - [ ] workNote.service.ts
+ - [ ] participant.service.ts
+ - [ ] dashboard.service.ts
+ - [ ] user.service.ts
+- [ ] Create PrivateRoute component
+- [ ] ✅ Deliverable: API layer ready
+
+---
+
+## WEEK 3: SSO Authentication
+
+### Backend (2 days)
+- [ ] Configure SSO Bridge (config/sso.ts)
+- [ ] Implement SSO callback handler
+- [ ] User sync from Active Directory
+- [ ] Generate JWT tokens
+- [ ] Auth middleware
+- [ ] APIs:
+ - [ ] GET /api/v1/auth/login (redirect to SSO)
+ - [ ] GET /api/v1/auth/callback (handle SSO)
+ - [ ] POST /api/v1/auth/logout
+ - [ ] GET /api/v1/auth/me
+ - [ ] GET /api/v1/users/search
+
+### Frontend (1.5 days)
+- [ ] Create SSO callback page
+- [ ] Handle token from SSO
+- [ ] Store JWT in Redux + localStorage
+- [ ] Implement protected routes
+- [ ] Add logout button in header
+- [ ] Fetch and display user profile
+
+---
+
+## WEEK 4-5: Workflow Creation Wizard
+
+### Backend (1 week)
+- [ ] POST /api/v1/workflows (create workflow)
+- [ ] POST /api/v1/workflows/:id/approvals (add level)
+- [ ] POST /api/v1/workflows/:id/participants (add spectator)
+- [ ] POST /api/v1/workflows/:id/documents (upload file)
+- [ ] PATCH /api/v1/workflows/:id/submit (submit workflow)
+- [ ] GET /api/v1/workflows (list with filters)
+- [ ] TAT calculation logic (working days vs calendar days)
+
+### Frontend (1.5 weeks)
+- [ ] Step 1: Template selection → Redux
+- [ ] Step 2: Basic info (title, description, priority) → Redux + validation
+- [ ] Step 3: Approval workflow builder
+ - [ ] Dynamic levels (add/remove)
+ - [ ] User @mention search
+ - [ ] TAT calculation (real-time)
+ - [ ] Approval flow summary
+- [ ] Step 4: Spectators (@mention)
+- [ ] Step 5: Document upload (react-dropzone)
+- [ ] Step 6: Review & submit
+- [ ] Multi-step API submission flow
+
+**Most Time-Consuming:** Step 3 (approval builder) - 2-3 days
+
+---
+
+## WEEK 6-7: Approvals & TAT Tracking
+
+### Backend (1.5 weeks)
+- [ ] PATCH /api/v1/workflows/:id/approvals/:levelId/approve
+- [ ] PATCH /api/v1/workflows/:id/approvals/:levelId/reject
+- [ ] Approval state machine logic
+- [ ] TAT monitoring cron job (runs every 30 min)
+- [ ] Notification system (8 notification types)
+- [ ] Activity logging service
+
+### Frontend (2 weeks)
+- [ ] My Requests page (tabs, search, filter, pagination)
+- [ ] Open/Closed Requests pages
+- [ ] Request Detail page:
+ - [ ] Overview tab
+ - [ ] Workflow tab (approval timeline)
+ - [ ] Documents tab (preview, download)
+ - [ ] Activity tab (timeline)
+- [ ] TAT progress bar (color-coded)
+- [ ] Approve/Reject modals (with validation)
+- [ ] Notification bell with dropdown
+
+**Most Time-Consuming:** Request detail page with all tabs - 3-4 days
+
+---
+
+## WEEK 8: Documents & Work Notes
+
+### Backend (3 days)
+- [ ] Document storage (GCP Cloud Storage)
+- [ ] Document APIs (upload, download, preview)
+- [ ] Work notes APIs
+- [ ] @mention parsing and notifications
+- [ ] Emoji reactions
+
+### Frontend (2 days)
+- [ ] Connect work notes to backend (already has UI + emoji!)
+- [ ] Connect document upload with progress bar
+- [ ] PDF/image preview modal
+- [ ] File download functionality
+
+**Advantage:** Work notes UI already complete!
+
+---
+
+## WEEK 9: Dashboard & AI
+
+### Backend (3 days)
+- [ ] Dashboard statistics APIs
+- [ ] OpenAI/Gemini integration
+- [ ] AI conclusion generation
+- [ ] Workflow closure API
+
+### Frontend (3 days)
+- [ ] Dashboard with charts (Recharts)
+- [ ] Conclusion display & edit
+- [ ] Close workflow functionality
+- [ ] Search & filter components
+
+---
+
+## WEEK 10: Testing & Deployment
+
+### Backend (4 days)
+- [ ] Unit tests (Jest + ts-jest)
+- [ ] Integration tests (Supertest)
+- [ ] Swagger documentation
+- [ ] Performance optimization
+- [ ] Docker + CI/CD
+- [ ] Deploy to GCP
+
+### Frontend (4 days)
+- [ ] Component tests (Vitest)
+- [ ] Integration tests
+- [ ] Loading states everywhere
+- [ ] Error boundaries
+- [ ] Production build
+- [ ] Docker + CI/CD
+- [ ] Deploy to GCP
+
+---
+
+## 🎯 Daily Developer Checklist
+
+### Before Starting Any Task:
+- [ ] Is the prerequisite task complete?
+- [ ] Do I have all required information?
+- [ ] Is the backend API ready (for frontend tasks)?
+
+### While Working:
+- [ ] Following TypeScript strict mode
+- [ ] Adding proper error handling
+- [ ] Adding loading states
+- [ ] Writing clean, commented code
+- [ ] Testing as I build
+
+### Before Marking Complete:
+- [ ] Feature works end-to-end
+- [ ] Handles errors gracefully
+- [ ] Responsive on mobile
+- [ ] Code reviewed
+- [ ] Committed to Git
+
+---
+
+## 📞 Quick Communication
+
+### Blockers:
+- Backend waiting on SSO details? → Continue with non-auth features
+- Frontend waiting on APIs? → Work on UI polish, validations, Redux
+
+### Daily Standup (15 min):
+1. What did I complete yesterday?
+2. What am I working on today?
+3. Any blockers or questions?
+
+---
+
+**Last Updated:** October 23, 2025
+**Next Review:** Weekly (every Friday)
+
diff --git a/RE_Executive_Summary.md b/RE_Executive_Summary.md
new file mode 100644
index 0000000..9b01287
--- /dev/null
+++ b/RE_Executive_Summary.md
@@ -0,0 +1,189 @@
+# RE Workflow Management System - Executive Summary
+## Project Status & Timeline
+
+**Date:** October 23, 2025
+**Project:** RE Workflow Management System (Non-Templatized)
+**Target Launch:** End of December 2025
+
+---
+
+## ✅ What's Complete (10%)
+
+1. **Frontend UI Extraction:** 80% complete from Figma
+ - All pages visually complete
+ - Mobile responsive (320px - 1920px)
+ - **But:** No functionality, just visual components with dummy data
+
+2. **Work Notes Feature:** Partial functionality
+ - UI complete
+ - Emoji selection working
+ - Document selection working
+ - **Needs:** Backend API integration
+
+3. **Backend Repository:** 70% setup
+ - Folder structure created
+ - Dependencies installed
+ - **Needs:** Database setup, API development
+
+---
+
+## ❌ What's NOT Complete (90%)
+
+1. **Database:** 0% (not created yet)
+2. **Redux Store:** 0% (not created)
+3. **API Service Layer:** 0% (not configured)
+4. **Form Validations:** 0%
+5. **API Integration:** 0%
+6. **Business Logic:** 0% (TAT calculations, workflows)
+7. **Authentication:** 0% (SSO not integrated)
+8. **All Backend APIs:** 0%
+
+---
+
+## 🔐 Authentication Approach
+
+### SSO Login (RE SSO Bridge)
+- **No login/signup screens needed** (SSO handles authentication)
+- Users authenticate with company credentials
+- Auto-sync from Active Directory
+- **Frontend work:** Minimal (1.5 days)
+- **Backend work:** SSO integration (2 days)
+
+**Figma Note:** No login/signup screens in Figma (not needed for SSO)
+
+---
+
+## 📅 Revised Timeline (10 Weeks)
+
+| Week | Focus | Backend | Frontend | Milestone |
+|------|-------|---------|----------|-----------|
+| 1 | Setup | 70% done | 80% UI done | In progress |
+| 2 | Foundation | Database + ORM | Redux + API layer | THIS WEEK |
+| 3 | SSO | SSO integration | SSO callback | Auth working |
+| 4-5 | Workflow | Workflow APIs | Wizard integration | Can create workflows |
+| 6-7 | Approvals | Approval APIs + TAT | Request pages + modals | Can approve/reject |
+| 8 | Collaboration | Documents + Work notes | Connect APIs | Collaboration working |
+| 9 | Analytics | Dashboard + AI | Charts + polish | All features done |
+| 10 | Launch | Testing + deployment | Testing + deployment | Production! 🚀 |
+
+---
+
+## 🎯 Core Features
+
+### 1. Workflow Creation (Weeks 4-5)
+- 6-step wizard to create workflow requests
+- Dynamic approval hierarchy (up to 10 levels)
+- @mention user search for approvers/spectators
+- Document upload (drag-drop, max 10MB)
+- TAT calculation (working days vs calendar days)
+
+### 2. Approval Actions (Weeks 6-7)
+- Approve/reject with mandatory comments
+- Multi-level approval flow
+- TAT tracking with color-coded progress bars
+- Automated reminders (80% TAT used)
+- Breach alerts (100% TAT exceeded)
+
+### 3. Collaboration (Week 8)
+- Work notes (chat with @mentions)
+- Emoji reactions
+- Document preview and download
+- Real-time notifications
+
+### 4. Dashboard & Analytics (Week 9)
+- Statistics and charts
+- AI-powered conclusions (using OpenAI/Gemini)
+- Search and filters
+
+---
+
+## ⚠️ Reality Check
+
+### Common Misconception:
+"Frontend is 80% done because UI is extracted from Figma"
+
+### Reality:
+- UI extraction = 20% of total frontend work
+- 80% UI done = 16% of frontend complete
+- Still need: Redux (20%), API integration (30%), validations (20%), testing (10%)
+
+### Impact:
+- Initial estimate: 6-8 weeks
+- Realistic estimate: 10 weeks
+- **Reason:** UI is just visual shell, needs 84% more work for functionality
+
+---
+
+## 🚨 Risks & Dependencies
+
+### High Risk:
+1. **SSO Integration:** Awaiting final confirmation and SSO details
+2. **TAT Calculation:** Complex logic for working days
+3. **Multi-level Approvals:** Complex state machine
+4. **Backend-Frontend Sync:** Frontend blocked without APIs
+
+### Mitigation:
+1. SSO: Can build temporary standard login if delayed (3-4 days)
+2. TAT: Write comprehensive unit tests
+3. Approvals: Thorough testing of all scenarios
+4. Sync: Daily standups, clear API documentation
+
+---
+
+## 💰 Resource Requirements
+
+### Team:
+- 2-3 Backend Developers (Node.js + TypeScript + PostgreSQL)
+- 2-3 Frontend Developers (React + TypeScript + Redux)
+- 1 QA Engineer (Week 9-10)
+- 1 DevOps Engineer (Week 10)
+
+### Infrastructure:
+- PostgreSQL 16 database
+- GCP Cloud Storage (for documents)
+- GCP Cloud Run or VM (for hosting)
+- OpenAI API (for AI conclusions)
+
+---
+
+## 🎯 Success Criteria
+
+**Week 2:** ✅ Foundation complete (database, Redux, API layer)
+**Week 3:** ✅ SSO authentication working
+**Week 5:** ✅ Users can create workflows
+**Week 7:** ✅ Users can approve/reject
+**Week 9:** ✅ All features functional
+**Week 10:** ✅ Production deployment
+
+---
+
+## 📊 Budget & Timeline
+
+**Estimated Timeline:** 10 weeks (50 working days)
+**Target Launch:** End of December 2025
+**Current Progress:** 10% (Week 2 of 10)
+**Confidence Level:** Medium (realistic with current team)
+
+**Key Assumption:** SSO integration details provided by Week 3
+
+---
+
+## 📞 Next Steps
+
+### This Week (Week 2):
+1. **Backend:** Complete database schema setup
+2. **Frontend:** Setup Redux store and API layer
+3. **Both:** Ready for feature development by week end
+
+### Immediate Requirements:
+1. SSO Bridge documentation and credentials
+2. Active Directory access for user sync
+3. GCP project setup for storage
+4. OpenAI API key for conclusions
+
+---
+
+**Prepared By:** .NET Expert Team
+**Status:** Realistic assessment with corrected estimates
+**Focus:** Core workflow features (creation, approvals, collaboration)
+
diff --git a/RE_Feature_Status_Tracker.md b/RE_Feature_Status_Tracker.md
new file mode 100644
index 0000000..ec21753
--- /dev/null
+++ b/RE_Feature_Status_Tracker.md
@@ -0,0 +1,394 @@
+# RE Workflow - Feature Status Tracker
+## Quick Reference for Project Progress
+
+**Last Updated:** October 23, 2025
+**Overall Completion:** 10%
+
+---
+
+## 🎨 Frontend UI Status (Figma Extraction)
+
+| Feature/Page | UI Extracted | Functionality | API Integration | Status |
+|--------------|--------------|---------------|-----------------|--------|
+| **Header & Sidebar** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Dashboard** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Create Workflow Wizard** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **My Requests** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Request Detail** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Approve/Reject Modals** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Work Notes** | ✅ 100% | 🔄 30% | ❌ 0% | Emoji + Docs Working |
+| **Documents Tab** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+| **Notifications** | ✅ 80% | ❌ 0% | ❌ 0% | UI Only |
+
+**Overall Frontend:** 16% Complete (UI with dummy data, no functionality)
+
+---
+
+## ⚙️ Backend API Status
+
+| Feature | APIs Designed | APIs Built | Tested | Status |
+|---------|---------------|------------|--------|--------|
+| **Database Schema** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **SSO Authentication** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Workflow Creation** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Approval Actions** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **TAT Tracking** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Notifications** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Documents** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Work Notes** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **Dashboard** | ✅ Yes | ❌ No | ❌ No | 0% |
+| **AI Conclusions** | ✅ Yes | ❌ No | ❌ No | 0% |
+
+**Overall Backend:** 10% Complete (repo setup only)
+
+---
+
+## 🚀 Core Features Breakdown
+
+### Feature 1: Workflow Creation Wizard ⭐⭐⭐⭐⭐ (Highest Priority)
+
+**What Users Do:**
+1. Click "Create New Request"
+2. Select "Custom Request"
+3. Fill basic info (title, description, priority)
+4. Build approval hierarchy (levels, approvers, TAT)
+5. Add spectators
+6. Upload documents
+7. Review and submit
+
+**Backend Work:**
+- [ ] Workflow CRUD APIs
+- [ ] Approval levels APIs
+- [ ] Participant APIs
+- [ ] Document upload (GCP storage)
+- [ ] Submit workflow logic
+- **Estimated:** 1 week
+
+**Frontend Work:**
+- [ ] Connect 6 wizard steps to Redux
+- [ ] Real-time TAT calculation
+- [ ] User @mention search
+- [ ] File upload with progress
+- [ ] Form validations
+- [ ] Multi-step API submission
+- **Estimated:** 1.5 weeks
+
+**Current Status:**
+- UI: ✅ 80% (dummy data)
+- Functionality: ❌ 0%
+
+---
+
+### Feature 2: Request Management ⭐⭐⭐⭐⭐ (Highest Priority)
+
+**What Users Do:**
+1. View "My Requests" (all their workflows)
+2. View "Open Requests" (pending their action)
+3. View "Closed Requests" (completed)
+4. Search and filter requests
+5. Click request to see details
+
+**Backend Work:**
+- [ ] Workflow listing APIs with filters
+- [ ] Pagination
+- [ ] Search (full-text)
+- [ ] Filter (status, priority, date range)
+- **Estimated:** 3 days
+
+**Frontend Work:**
+- [ ] My Requests page (tabs, search, filter)
+- [ ] Open/Closed Requests pages
+- [ ] Request cards with status badges
+- [ ] Pagination
+- [ ] Loading skeletons
+- **Estimated:** 1 week
+
+**Current Status:**
+- UI: ✅ 80% (dummy cards)
+- Functionality: ❌ 0%
+
+---
+
+### Feature 3: Approval Actions ⭐⭐⭐⭐⭐ (Highest Priority)
+
+**What Users Do:**
+1. Open request detail page
+2. View approval workflow timeline
+3. See TAT progress bar
+4. Click "Approve" or "Reject" button
+5. Add mandatory comments
+6. Submit decision
+
+**Backend Work:**
+- [ ] Approve/reject APIs
+- [ ] Approval state machine logic
+- [ ] TAT calculation (working days vs calendar days)
+- [ ] Move to next level logic
+- [ ] Notification triggers
+- [ ] Activity logging
+- **Estimated:** 1 week
+
+**Frontend Work:**
+- [ ] Request detail page
+- [ ] Workflow timeline tab
+- [ ] TAT progress bar (color-coded)
+- [ ] Approve/Reject modals
+- [ ] Comment validation
+- [ ] Success/error handling
+- **Estimated:** 1 week
+
+**Current Status:**
+- UI: ✅ 80% (modals exist)
+- Functionality: ❌ 0%
+
+---
+
+### Feature 4: TAT Monitoring ⭐⭐⭐⭐ (High Priority)
+
+**What System Does:**
+1. Cron job runs every 30 minutes
+2. Checks all active workflows
+3. Calculates TAT percentage used
+4. Sends alerts:
+ - 80% TAT used → Warning notification
+ - 100% TAT used → Breach notification
+
+**Backend Work:**
+- [ ] TAT calculation service
+- [ ] Cron job setup (node-cron)
+- [ ] Notification triggers
+- [ ] TAT status updates
+- **Estimated:** 2 days
+
+**Frontend Work:**
+- [ ] Display TAT progress bar
+- [ ] Color code based on status:
+ - Green: < 50% used
+ - Yellow: 50-80% used
+ - Red: > 80% used
+- [ ] Show remaining time
+- **Estimated:** 1 day (included in Request Detail)
+
+**Current Status:**
+- Backend: ❌ 0%
+- Frontend UI: ✅ 80%
+- Logic: ❌ 0%
+
+---
+
+### Feature 5: Work Notes (Chat) ⭐⭐⭐⭐ (High Priority)
+
+**What Users Do:**
+1. Open request detail
+2. Go to work notes section
+3. Type message with @mentions
+4. Add emojis
+5. Attach documents
+6. Send message
+
+**Backend Work:**
+- [ ] Work notes CRUD APIs
+- [ ] @mention parsing
+- [ ] Notification to mentioned users
+- [ ] Emoji reactions API
+- [ ] Attachments API
+- **Estimated:** 2 days
+
+**Frontend Work:**
+- [ ] Connect chat to backend API
+- [ ] Fetch messages (with polling every 10 sec)
+- [ ] Send message
+- [ ] @mention autocomplete
+- [ ] Emoji reactions
+- [ ] **Estimated:** 1 day (UI + emoji already working!)
+
+**Current Status:**
+- UI: ✅ 100%
+- Emoji Selection: ✅ Working
+- Document Selection: ✅ Working
+- Backend API: ❌ 0%
+
+---
+
+### Feature 6: Document Management ⭐⭐⭐ (Medium Priority)
+
+**What Users Do:**
+1. Upload documents (PDF, Word, Excel, PPT, Images)
+2. Preview PDF/images
+3. Download any document
+4. Link Google Docs/Sheets
+
+**Backend Work:**
+- [ ] File upload (Multer middleware)
+- [ ] GCP Cloud Storage integration
+- [ ] Document CRUD APIs
+- [ ] Generate signed URLs
+- [ ] File validation (type, size)
+- **Estimated:** 2 days
+
+**Frontend Work:**
+- [ ] Drag-drop upload (react-dropzone)
+- [ ] Upload progress bar
+- [ ] Preview modal (PDF, images)
+- [ ] Download functionality
+- [ ] Google Docs/Sheets links
+- **Estimated:** 1.5 days
+
+**Current Status:**
+- UI: ✅ 80%
+- Upload logic: ❌ 0%
+
+---
+
+### Feature 7: Notifications ⭐⭐⭐ (Medium Priority)
+
+**What Users See:**
+1. Bell icon in header (with unread count)
+2. Click to see notification dropdown
+3. Click notification to go to request
+4. Mark as read / Mark all as read
+
+**Notification Types:**
+- New approval assignment
+- Approval/rejection
+- TAT warning (80%)
+- TAT breach (100%)
+- @mention in work note
+- Document uploaded
+- Spectator added
+- Request closed
+
+**Backend Work:**
+- [ ] Notification CRUD APIs
+- [ ] Trigger notifications on events
+- [ ] Mark read/unread
+- [ ] Cleanup old notifications
+- **Estimated:** 2 days
+
+**Frontend Work:**
+- [ ] Notification bell component
+- [ ] Dropdown panel
+- [ ] Polling (every 30 sec)
+- [ ] Toast for high-priority
+- [ ] Navigation to related request
+- **Estimated:** 1 day
+
+**Current Status:**
+- UI: ✅ 80%
+- Polling logic: ❌ 0%
+
+---
+
+### Feature 8: Dashboard ⭐⭐ (Lower Priority)
+
+**What Users See:**
+- Total requests count
+- Pending approvals count
+- Approved/Rejected counts
+- TAT breached count
+- Charts (pie, bar, line)
+- Recent activities
+- Pending actions widget
+
+**Backend Work:**
+- [ ] Statistics calculation APIs
+- [ ] Recent activities API
+- [ ] Pending actions API
+- [ ] Caching for performance
+- **Estimated:** 1.5 days
+
+**Frontend Work:**
+- [ ] Metric cards
+- [ ] Charts (Recharts library)
+- [ ] Recent activities widget
+- [ ] Auto-refresh
+- **Estimated:** 1.5 days
+
+**Current Status:**
+- UI: ✅ 80%
+- Data integration: ❌ 0%
+
+---
+
+### Feature 9: AI Conclusions ⭐⭐ (Lower Priority)
+
+**What System Does:**
+1. After final approval, generate AI conclusion
+2. Summarize approval comments + work notes
+3. Initiator can edit before finalizing
+4. Conclusion displayed in closed requests
+
+**Backend Work:**
+- [ ] OpenAI API integration
+- [ ] Compile workflow data for prompt
+- [ ] Generate conclusion
+- [ ] Store AI remark
+- [ ] Update conclusion API
+- **Estimated:** 1.5 days
+
+**Frontend Work:**
+- [ ] Display AI-generated conclusion
+- [ ] Edit modal (for initiator)
+- [ ] Save edited conclusion
+- [ ] Read-only for others
+- **Estimated:** 1 day
+
+**Current Status:**
+- Backend: ❌ 0%
+- Frontend UI: ✅ 80%
+
+---
+
+## 📊 Progress Summary
+
+### By Category:
+
+| Category | Total Work | Completed | Remaining | % Done |
+|----------|-----------|-----------|-----------|--------|
+| **Database Schema** | 1 week | 0 days | 1 week | 0% |
+| **Backend APIs** | 6 weeks | 0 days | 6 weeks | 0% |
+| **Frontend UI** | 1 week | 0.8 weeks | 0.2 weeks | 80% |
+| **Redux Setup** | 3 days | 0 days | 3 days | 0% |
+| **API Integration** | 3 weeks | 0 days | 3 weeks | 0% |
+| **Validations** | 1 week | 0 days | 1 week | 0% |
+| **Testing** | 1 week | 0 days | 1 week | 0% |
+| **Deployment** | 1 week | 0 days | 1 week | 0% |
+
+**TOTAL:** ~16 weeks of work, 1.6 weeks done (10%)
+
+---
+
+## 🔥 Critical Path
+
+**Week 2:** Database + Redux (BLOCKS EVERYTHING)
+**Week 3:** SSO auth (BLOCKS AUTHENTICATED FEATURES)
+**Weeks 4-5:** Workflow creation (CORE FEATURE)
+**Weeks 6-7:** Approvals & TAT (CORE FEATURE)
+**Week 8:** Collaboration (CORE FEATURE)
+**Week 9:** Dashboard (SECONDARY)
+**Week 10:** Testing & Launch
+
+**Cannot skip or reorder!**
+
+---
+
+## 💡 What to Focus On
+
+### Core Application Features (85% of effort):
+1. ✅ Workflow Creation Wizard
+2. ✅ Approval Actions
+3. ✅ TAT Tracking
+4. ✅ Work Notes
+5. ✅ Document Management
+6. ✅ Notifications
+7. ✅ Request Management Pages
+
+### Secondary Features (15% of effort):
+8. Dashboard & Analytics
+9. AI Conclusions
+10. Search & Filters
+
+---
+
+**Focus:** Build core workflow features first, then analytics/dashboard last!
+
diff --git a/RE_Task_Timeline_SSO_Based.md b/RE_Task_Timeline_SSO_Based.md
new file mode 100644
index 0000000..6fb8c6f
--- /dev/null
+++ b/RE_Task_Timeline_SSO_Based.md
@@ -0,0 +1,332 @@
+# RE Workflow Management System - Task Timeline
+## SSO-Based Authentication | Realistic Progress Tracking
+
+**Version:** 2.0
+**Date:** October 23, 2025
+**Authentication:** SSO via RE SSO Bridge (No login/signup screens)
+**Current Status:** Frontend UI 80% extracted, Backend 70% setup
+
+---
+
+## 🎯 Current Project Status
+
+### Overall Progress: 10%
+- **Backend:** 10% (repo 70% setup, database 0%, APIs 0%)
+- **Frontend:** 16% (UI 80% extracted, but no functionality)
+
+### Reality Check:
+✅ **What We Have:**
+- Frontend UI components from Figma (80% extracted, mobile responsive)
+- Work notes UI + partial functionality (emoji, document selection working)
+- Dependencies installed
+- Repository structure in progress
+
+❌ **What We DON'T Have:**
+- No Redux store created
+- No API service layer
+- No form validations
+- No API integration
+- No business logic
+- No authentication working
+- No database setup
+
+**Translation:** Having UI ≠ Having features. We have the "look" but not the "functionality."
+
+---
+
+## 🔐 SSO Authentication (No Login Screens)
+
+### How SSO Works:
+1. User visits app → App redirects to RE SSO Bridge
+2. User logs in with RE credentials (handled by SSO)
+3. SSO redirects back to app with token
+4. App validates token, syncs user from Active Directory
+5. User lands on dashboard (logged in)
+
+### What We Build:
+**Frontend (1.5 days):**
+- SSO callback handler page
+- Protected route guards
+- Logout button
+
+**Backend (2 days):**
+- SSO OAuth2 integration
+- User sync from Active Directory
+- JWT session management
+
+**No Need For:**
+- ❌ Login page
+- ❌ Signup page
+- ❌ Password reset pages
+- ❌ Email verification
+
+---
+
+## 📅 Week-by-Week Timeline (10 Weeks)
+
+### **Week 1 (Completed):** Sprint 0 Setup
+- ✅ Frontend UI extraction 80% (Figma)
+- 🔄 Backend repo setup 70%
+- ❌ Database: Not started
+- ❌ Redux: Not created
+- ❌ API layer: Not configured
+
+---
+
+### **Week 2 (CURRENT):** Complete Foundation
+
+**Backend (3 days):**
+- 🔥 Database schema setup (1 day) ← CRITICAL
+- Express + middleware configuration (0.5 days)
+- Sequelize ORM + models (1.5 days)
+
+**Frontend (4 days):**
+- Complete UI extraction 20% remaining (1 day)
+- 🔥 Setup Redux store + 8 slices (2 days) ← CRITICAL
+- 🔥 Configure Axios API layer (1 day) ← CRITICAL
+
+**Target:** Foundation ready for feature development
+
+---
+
+### **Week 3:** SSO Authentication
+
+**Backend (2 days):**
+- SSO Bridge OAuth2 integration
+- User sync from Active Directory
+- JWT token generation
+- Auth APIs
+
+**Frontend (1.5 days):**
+- SSO callback page
+- Protected routes
+- Logout button
+- User profile display
+
+**Target:** Users can login via SSO
+
+---
+
+### **Week 4:** Workflow Creation Wizard (Part 1)
+
+**Backend (4 days):**
+- Workflow CRUD APIs
+- Approval levels APIs
+- User search API
+- TAT calculation logic
+
+**Frontend (4 days):**
+- Template selection (connect to Redux)
+- Basic information form (validation)
+- Approval workflow builder (complex!)
+ - Dynamic levels
+ - User @mention search
+ - Real-time TAT calculation
+
+**Target:** First 3 wizard steps functional
+
+---
+
+### **Week 5:** Workflow Creation Wizard (Part 2)
+
+**Backend (3 days):**
+- Participant management APIs
+- Document upload APIs (GCP storage)
+- Workflow submission logic
+
+**Frontend (4 days):**
+- Participants step (spectator @mention)
+- Documents step (drag-drop upload)
+- Review & submit step
+- Multi-step API integration
+
+**Target:** Complete workflow creation working
+
+---
+
+### **Week 6:** Request Management
+
+**Backend (4 days):**
+- Workflow listing APIs (filters, search, pagination)
+- Approval/rejection APIs
+- TAT tracking service
+- Activity logging
+
+**Frontend (4 days):**
+- My Requests page (tabs, search, filter)
+- Open/Closed Requests pages
+- Request detail page (Overview tab)
+- TAT progress bar component
+
+**Target:** Users can view all their requests
+
+---
+
+### **Week 7:** Approval Actions
+
+**Backend (3 days):**
+- Approve/reject workflow logic
+- TAT monitoring cron job (every 30 min)
+- Notification system (8 types)
+
+**Frontend (4 days):**
+- Workflow tab (approval timeline)
+- Documents tab (preview, download)
+- Activity tab (timeline)
+- Approve/Reject modals
+
+**Target:** Users can approve/reject requests
+
+---
+
+### **Week 8:** Collaboration Features
+
+**Backend (4 days):**
+- Work notes APIs (@mentions)
+- Document preview/download
+- Activity timeline APIs
+
+**Frontend (2 days):**
+- Connect work notes to backend
+- Connect document APIs
+- Notification bell with polling
+
+**Target:** Work notes and documents working
+
+---
+
+### **Week 9:** Dashboard & Analytics
+
+**Backend (3 days):**
+- Dashboard statistics APIs
+- AI conclusion generation
+- Workflow closure API
+
+**Frontend (4 days):**
+- Dashboard with charts
+- Search & filter components
+- Conclusion display & edit
+- Closure functionality
+
+**Target:** Dashboard and AI conclusions working
+
+---
+
+### **Week 10:** Testing & Deployment
+
+**Backend (4 days):**
+- Unit tests (Jest)
+- Integration tests
+- API documentation (Swagger)
+- Deployment setup
+
+**Frontend (4 days):**
+- Component tests (Vitest)
+- Integration tests
+- Performance optimization
+- Production build & deployment
+
+**Target:** Production launch! 🚀
+
+---
+
+## 📊 Task Summary
+
+### Backend: 25 Tasks
+- Sprint 0: 4 tasks (3 days)
+- Sprint 1: 2 tasks (2 days) - SSO
+- Sprint 2: 4 tasks (8 days) - Workflow creation
+- Sprint 3: 3 tasks (6 days) - Approvals & TAT
+- Sprint 4: 3 tasks (5 days) - Documents & Work notes
+- Sprint 5: 3 tasks (4 days) - Dashboard & AI
+- Sprint 6: 6 tasks (8 days) - Testing & deployment
+
+**Total: ~8 weeks (42 days)**
+
+---
+
+### Frontend: 30 Tasks (Reduced - No login screens!)
+- Sprint 0: 5 tasks (4 days) - Foundation
+- Sprint 1: 3 tasks (2.5 days) - SSO callback
+- Sprint 2: 8 tasks (9 days) - Workflow wizard
+- Sprint 3: 9 tasks (10 days) - Request management
+- Sprint 4: 4 tasks (5 days) - Collaboration
+- Sprint 5: 4 tasks (4 days) - Dashboard
+- Sprint 6: 4 tasks (5 days) - Testing
+
+**Total: ~8 weeks (40 days)**
+
+---
+
+## 🎯 This Week's Priorities (Week 2)
+
+### Backend Must Complete:
+1. 🔥 **Database schema** - Blocks everything (1 day)
+2. Express.js configuration (0.5 days)
+3. Sequelize ORM + all models (1.5 days)
+
+### Frontend Must Complete:
+1. Complete UI extraction 20% (1 day)
+2. 🔥 **Setup Redux store + 8 slices** - Cannot skip (2 days)
+3. 🔥 **Configure Axios API layer** - Cannot skip (1 day)
+
+**End of Week 2:** Both teams ready for feature development
+
+---
+
+## 📋 Core Features Focus
+
+### 1. Workflow Creation (Week 4-5) - CORE FEATURE
+- 6-step wizard
+- Approval hierarchy builder (dynamic levels, @mention, TAT)
+- Document upload
+- Submit workflow
+
+### 2. Approval Actions (Week 6-7) - CORE FEATURE
+- Approve/reject with comments
+- TAT tracking (working days vs calendar days)
+- Notifications
+- Activity timeline
+
+### 3. Collaboration (Week 8) - CORE FEATURE
+- Work notes (chat with @mentions, emojis)
+- Document management
+- Real-time notifications
+
+### 4. Analytics (Week 9) - SECONDARY
+- Dashboard with charts
+- AI-powered conclusions
+- Search & filters
+
+---
+
+## 📖 Documentation References
+
+
+
+
+## ⚠️ Key Insights
+
+1. **SSO = No login screens** (saves 3-4 days frontend work)
+2. **80% UI ≠ 80% done** (actually 16% of total work)
+3. **Integration is 80% of work** (Redux, API, validation, logic)
+5. **Focus on core features** (workflow creation, approvals, work notes)
+
+---
+
+## 🚀 Success Metrics
+
+**Week 2:** ✅ Foundation complete (database + Redux)
+**Week 3:** ✅ SSO authentication working
+**Week 5:** ✅ Can create workflows
+**Week 7:** ✅ Can approve/reject
+**Week 9:** ✅ All features functional
+**Week 10:** ✅ Production deployment
+
+---
+
+**Prepared By:** .NET Expert Team
+**Target Launch:** End of December 2025
+**Current Progress:** 10% Complete
+**Focus:** Core workflow features (creation, approvals, collaboration)
+
diff --git a/RE_Workflow_Detailed_Sprint_Guide.md b/RE_Workflow_Detailed_Sprint_Guide.md
new file mode 100644
index 0000000..d77c2ed
--- /dev/null
+++ b/RE_Workflow_Detailed_Sprint_Guide.md
@@ -0,0 +1,2285 @@
+# RE Workflow Management System - Detailed Sprint Implementation Guide
+## Comprehensive Feature Breakdown for Development Team
+
+**Version:** 1.0
+**Date:** October 23, 2025
+**Project:** RE Workflow Management System (Non-Templatized)
+**Focus:** Core Application Features (Workflow Creation, Approvals, Work Notes, Documents)
+
+---
+
+## 📖 Table of Contents
+1. [Sprint 0: Foundation Setup](#sprint-0-foundation-setup)
+2. [Sprint 1: SSO Authentication](#sprint-1-sso-authentication)
+3. [Sprint 2: Workflow Creation Wizard](#sprint-2-workflow-creation-wizard)
+4. [Sprint 3: Approval Actions & TAT Tracking](#sprint-3-approval-actions--tat-tracking)
+5. [Sprint 4: Documents & Work Notes](#sprint-4-documents--work-notes)
+6. [Sprint 5: Dashboard & Analytics](#sprint-5-dashboard--analytics)
+7. [Sprint 6: Testing & Deployment](#sprint-6-testing--deployment)
+
+---
+
+## Sprint 0: Foundation Setup
+
+### Backend Foundation (3 days)
+
+**BE-001 to BE-004:** Database, Express, Sequelize setup
+- See main task document for technical setup details
+- Focus: Get server running with database connection
+
+### Frontend Foundation (4 days)
+
+**Current Status:**
+- ✅ UI Components: 80% extracted from Figma
+- ❌ Redux Store: Not created (2-3 days needed)
+- ❌ API Service Layer: Not configured (1 day needed)
+- ❌ Route Guards: Not implemented (1 day needed)
+
+**Critical Work This Week:**
+1. Complete UI extraction (20% remaining)
+2. **Setup Redux store - CANNOT SKIP**
+3. **Configure Axios API layer - CANNOT SKIP**
+4. Implement protected routes
+
+---
+
+## Sprint 1: SSO Authentication (Week 2-3)
+
+### 🔐 SSO Integration Overview
+
+**Important:** No login/signup/password reset screens needed!
+
+#### Backend SSO Integration (BE-101: 1.5 days)
+
+**SSO Flow Implementation:**
+
+**Step 1: Configure SSO Bridge**
+```typescript
+// src/config/sso.ts
+export const ssoConfig = {
+ authorizationURL: process.env.SSO_AUTHORIZATION_URL, // RE SSO Bridge URL
+ tokenURL: process.env.SSO_TOKEN_URL,
+ userInfoURL: process.env.SSO_USERINFO_URL,
+ clientID: process.env.SSO_CLIENT_ID,
+ clientSecret: process.env.SSO_CLIENT_SECRET,
+ callbackURL: process.env.SSO_CALLBACK_URL, // https://workflow.re.com/api/v1/auth/callback
+ scope: ['openid', 'profile', 'email', 'employee_info']
+};
+```
+
+**Step 2: Implement SSO Auth Service**
+```typescript
+// src/services/auth.service.ts
+import passport from 'passport';
+import { Strategy as OAuth2Strategy } from 'passport-oauth2';
+
+// Configure Passport OAuth2 strategy
+passport.use('re-sso', new OAuth2Strategy({
+ authorizationURL: ssoConfig.authorizationURL,
+ tokenURL: ssoConfig.tokenURL,
+ clientID: ssoConfig.clientID,
+ clientSecret: ssoConfig.clientSecret,
+ callbackURL: ssoConfig.callbackURL
+}, async (accessToken, refreshToken, profile, done) => {
+ // Get user info from SSO
+ const userInfo = await fetchUserInfoFromSSO(accessToken);
+
+ // Sync user to local database
+ const user = await syncUserFromAD(userInfo);
+
+ return done(null, user);
+}));
+
+async function syncUserFromAD(ssoUserInfo) {
+ // Check if user exists in local database
+ let user = await User.findOne({ where: { employee_id: ssoUserInfo.employeeId } });
+
+ if (!user) {
+ // Create new user from AD info
+ user = await User.create({
+ employee_id: ssoUserInfo.employeeId,
+ email: ssoUserInfo.email,
+ first_name: ssoUserInfo.firstName,
+ last_name: ssoUserInfo.lastName,
+ department: ssoUserInfo.department,
+ designation: ssoUserInfo.designation,
+ phone: ssoUserInfo.phone,
+ profile_picture_url: ssoUserInfo.profilePicture
+ });
+ } else {
+ // Update existing user with latest AD info
+ await user.update({
+ email: ssoUserInfo.email,
+ first_name: ssoUserInfo.firstName,
+ last_name: ssoUserInfo.lastName,
+ department: ssoUserInfo.department,
+ designation: ssoUserInfo.designation,
+ last_login: new Date()
+ });
+ }
+
+ return user;
+}
+```
+
+**Step 3: Implement Auth Controller**
+```typescript
+// src/controllers/auth.controller.ts
+export const authController = {
+ // Initiate SSO login
+ login: (req, res) => {
+ // Redirect to SSO Bridge
+ passport.authenticate('re-sso')(req, res);
+ },
+
+ // Handle SSO callback
+ callback: async (req, res) => {
+ passport.authenticate('re-sso', async (err, user) => {
+ if (err || !user) {
+ return res.redirect('/auth/error?message=authentication_failed');
+ }
+
+ // Generate JWT token for app session
+ const jwtToken = generateJWT({
+ userId: user.user_id,
+ email: user.email,
+ employeeId: user.employee_id
+ });
+
+ // Redirect to frontend with token
+ res.redirect(`${process.env.FRONTEND_URL}/auth/callback?token=${jwtToken}`);
+ })(req, res);
+ },
+
+ // Get current user
+ me: async (req, res) => {
+ const user = await User.findByPk(req.user.userId);
+ res.json({ success: true, data: user });
+ },
+
+ // Logout
+ logout: (req, res) => {
+ // Clear session
+ req.logout();
+
+ // Redirect to SSO logout
+ const ssoLogoutUrl = `${ssoConfig.logoutURL}?redirect_uri=${process.env.FRONTEND_URL}`;
+ res.json({ success: true, redirectUrl: ssoLogoutUrl });
+ }
+};
+```
+
+#### Frontend SSO Integration (FE-101, FE-102: 1.5 days)
+
+**Frontend Work (Minimal):**
+
+**1. SSO Callback Handler (FE-101: 1 day)**
+```typescript
+// src/pages/Auth/SSOCallback.tsx
+const SSOCallback = () => {
+ const navigate = useNavigate();
+ const dispatch = useAppDispatch();
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ // Get token from URL params
+ const params = new URLSearchParams(window.location.search);
+ const token = params.get('token');
+ const errorMsg = params.get('error');
+
+ if (errorMsg) {
+ setError('Authentication failed. Please try again.');
+ setTimeout(() => navigate('/'), 3000);
+ return;
+ }
+
+ if (token) {
+ // Store JWT token
+ localStorage.setItem('accessToken', token);
+
+ // Update Redux state
+ dispatch(setAuthenticated(true));
+
+ // Fetch user details
+ dispatch(fetchCurrentUser());
+
+ // Redirect to dashboard
+ navigate('/dashboard');
+ }
+ }, []);
+
+ if (error) {
+ return ;
+ }
+
+ return (
+
+
+
Authenticating... Please wait.
+
+ );
+};
+```
+
+**2. Protected Routes (FE-101: Included in above)**
+```typescript
+// src/routes/PrivateRoute.tsx
+const PrivateRoute = ({ children }) => {
+ const { isAuthenticated } = useAppSelector(state => state.auth);
+
+ if (!isAuthenticated) {
+ // Redirect to SSO login
+ window.location.href = `${API_BASE_URL}/auth/login`;
+ return ;
+ }
+
+ return <>{children}>;
+};
+```
+
+**3. Logout Button (FE-102: 0.5 days)**
+```typescript
+// In Header component
+const handleLogout = async () => {
+ try {
+ // Call logout API
+ const response = await authService.logout();
+
+ // Clear local state
+ dispatch(clearAuth());
+ localStorage.removeItem('accessToken');
+
+ // Redirect to SSO logout
+ window.location.href = response.data.redirectUrl;
+ } catch (error) {
+ console.error('Logout failed:', error);
+ }
+};
+
+// Logout button in header
+
+```
+
+**4. User Profile Display (FE-103: 1 day)**
+```typescript
+// Fetch user on app load
+useEffect(() => {
+ if (isAuthenticated) {
+ dispatch(fetchCurrentUser()); // GET /api/v1/auth/me
+ }
+}, [isAuthenticated]);
+
+// Display in header dropdown
+
+
+
+ {user.display_name}
+ {user.email}
+ {user.department}
+ ID: {user.employee_id}
+
+
+
+
+
+```
+
+**Sprint 1 Summary:**
+- ✅ SSO handles authentication (no login screens needed)
+- ✅ Frontend just handles callback and redirects
+- ✅ Users auto-synced from Active Directory
+- ✅ Simple logout button
+- **Total Frontend Work:** 1.5-2 days (not 4-5 days!)
+
+---
+
+## Sprint 2: Workflow Creation Wizard (Weeks 3-4)
+
+### 🎯 Focus: Enable users to create workflow requests
+
+This is the **CORE FEATURE** of the application!
+
+---
+
+### Step 1: Template Selection (FE-202: 0.5 days)
+
+**UI Status:** ✅ Already from Figma (80%)
+
+**What to Build:**
+```typescript
+// src/components/workflow/TemplateSelector.tsx
+const TemplateSelector = () => {
+ const [selectedTemplate, setSelectedTemplate] = useState('CUSTOM');
+ const dispatch = useAppDispatch();
+
+ const handleSelect = (type) => {
+ setSelectedTemplate(type);
+ // Save to Redux
+ dispatch(setWorkflowTemplateType(type));
+ };
+
+ return (
+
+ handleSelect('CUSTOM')}
+ >
+ 📋
+ Custom Request (Non-Templatized)
+
+ Create a flexible workflow tailored to your specific needs.
+ Define approval levels, TAT, and participants dynamically.
+
+ Available
+
+
+
+ 📄
+ Template Request
+
+ Use predefined workflow templates for common processes.
+
+ Coming Soon
+
+
+ );
+};
+```
+
+**Deliverable:** User can select "Custom Request"
+
+---
+
+### Step 2: Basic Information (FE-203: 1 day)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**1. Request Title Field:**
+```typescript
+const [title, setTitle] = useState('');
+const [titleError, setTitleError] = useState('');
+
+const validateTitle = (value) => {
+ if (!value || value.trim() === '') {
+ setTitleError('Request title is required');
+ return false;
+ }
+ if (value.length > 500) {
+ setTitleError('Title must be less than 500 characters');
+ return false;
+ }
+ setTitleError('');
+ return true;
+};
+
+ {
+ setTitle(e.target.value);
+ validateTitle(e.target.value);
+ }}
+ error={!!titleError}
+ helperText={titleError || `${title.length}/500 characters`}
+ placeholder="E.g., Approval for new office location"
+ required
+ fullWidth
+/>
+```
+
+**2. Rich Text Description:**
+```typescript
+// Use React Quill or similar
+import ReactQuill from 'react-quill';
+
+const [description, setDescription] = useState('');
+
+const quillModules = {
+ toolbar: [
+ ['bold', 'italic', 'underline'],
+ [{ 'list': 'ordered'}, { 'list': 'bullet' }],
+ ['link'],
+ [{ 'table': 'insert-table' }],
+ ]
+};
+
+
+{description.length} / 5000
+```
+
+**3. Priority Selection:**
+```typescript
+const [priority, setPriority] = useState('STANDARD');
+
+ setPriority(e.target.value)}>
+ }
+ label={
+
+ Standard
+
+ TAT calculated using working days (Mon-Fri, excluding weekends)
+
+
+ }
+ />
+ }
+ label={
+
+ Express (Urgent)
+
+ TAT calculated using calendar days (includes weekends)
+
+
+ }
+ />
+
+```
+
+**4. Save to Redux:**
+```typescript
+const handleNext = () => {
+ if (!validateTitle(title) || !description) {
+ toast.error('Please fill all required fields');
+ return;
+ }
+
+ // Save to Redux
+ dispatch(updateWorkflowBasicInfo({
+ title,
+ description,
+ priority
+ }));
+
+ // Go to next step
+ setActiveStep(2); // Approval Workflow step
+};
+```
+
+**Deliverable:** Basic information captured and validated
+
+---
+
+### Step 3: Approval Workflow Builder (FE-204: 2-3 days)
+
+**UI Status:** ✅ Already from Figma
+**Complexity:** ⭐⭐⭐⭐⭐ (MOST COMPLEX SCREEN)
+
+**What to Build:**
+
+**1. Dynamic Approval Levels (Core Logic)**
+
+```typescript
+// State management for approval levels
+const [approvalLevels, setApprovalLevels] = useState([
+ {
+ levelNumber: 1,
+ levelName: '',
+ approverId: null,
+ approverDetails: null,
+ tatValue: '',
+ tatUnit: 'hours' // or 'days'
+ }
+]);
+
+// Add new level
+const handleAddLevel = () => {
+ if (approvalLevels.length >= 10) {
+ toast.error('Maximum 10 approval levels allowed');
+ return;
+ }
+
+ setApprovalLevels([
+ ...approvalLevels,
+ {
+ levelNumber: approvalLevels.length + 1,
+ levelName: '',
+ approverId: null,
+ approverDetails: null,
+ tatValue: '',
+ tatUnit: 'hours'
+ }
+ ]);
+};
+
+// Remove level
+const handleRemoveLevel = (levelNumber) => {
+ if (approvalLevels.length === 1) {
+ toast.error('At least one approval level is required');
+ return;
+ }
+
+ setApprovalLevels(
+ approvalLevels
+ .filter(level => level.levelNumber !== levelNumber)
+ .map((level, index) => ({ ...level, levelNumber: index + 1 })) // Renumber
+ );
+};
+```
+
+**2. User Search for Approver (@mention)**
+
+```typescript
+// User search component
+const ApproverSearch = ({ levelIndex, onSelectUser }) => {
+ const [searchQuery, setSearchQuery] = useState('');
+ const [searchResults, setSearchResults] = useState([]);
+ const [loading, setLoading] = useState(false);
+
+ // Debounced search
+ useEffect(() => {
+ const timer = setTimeout(async () => {
+ if (searchQuery.length >= 2) {
+ setLoading(true);
+ try {
+ // Call user search API
+ const response = await userService.searchUsers(searchQuery);
+ setSearchResults(response.data);
+ } catch (error) {
+ console.error('User search failed:', error);
+ } finally {
+ setLoading(false);
+ }
+ } else {
+ setSearchResults([]);
+ }
+ }, 300);
+
+ return () => clearTimeout(timer);
+ }, [searchQuery]);
+
+ return (
+
+
setSearchQuery(e.target.value)}
+ InputProps={{
+ startAdornment: ,
+ endAdornment: loading &&
+ }}
+ />
+
+ {searchResults.length > 0 && (
+
+ {searchResults.map(user => (
+ {
+ onSelectUser(user);
+ setSearchQuery('');
+ setSearchResults([]);
+ }}
+ >
+
+
+ {user.display_name}
+ {user.email}
+ {user.department} • {user.designation}
+
+
+ ))}
+
+ )}
+
+ );
+};
+```
+
+**3. TAT Input and Real-Time Calculation**
+
+```typescript
+// TAT calculation logic
+const calculateTotalTAT = () => {
+ let totalHours = 0;
+
+ approvalLevels.forEach(level => {
+ const tatValue = parseFloat(level.tatValue) || 0;
+
+ if (level.tatUnit === 'days') {
+ totalHours += tatValue * 24;
+ } else {
+ totalHours += tatValue;
+ }
+ });
+
+ return {
+ totalHours,
+ totalDays: Math.ceil(totalHours / 24),
+ displayText: `${totalHours} hours (${Math.ceil(totalHours / 24)} days)`
+ };
+};
+
+// Update total TAT when levels change
+const totalTAT = useMemo(() => calculateTotalTAT(), [approvalLevels]);
+
+// TAT display
+
+ Total TAT
+ {totalTAT.totalHours} hours
+ {totalTAT.totalDays} days
+
+ Est. Completion: {calculateExpectedDate(totalTAT.totalHours, priority)}
+
+
+```
+
+**4. Approval Level UI (For Each Level)**
+
+```typescript
+{approvalLevels.map((level, index) => (
+
+
+ Level {level.levelNumber}
+ {approvalLevels.length > 1 && (
+ handleRemoveLevel(level.levelNumber)}>
+
+
+ )}
+
+
+ {/* Level Name (Optional) */}
+ updateLevel(index, 'levelName', e.target.value)}
+ placeholder="E.g., Department Head Approval"
+ fullWidth
+ />
+
+ {/* Approver Selection */}
+ updateLevel(index, 'approver', user)}
+ />
+
+ {level.approverDetails && (
+
+
+
+ {level.approverDetails.display_name}
+ {level.approverDetails.department}
+
+ updateLevel(index, 'approver', null)}>
+
+
+
+ )}
+
+ {/* TAT Input */}
+
+ updateLevel(index, 'tatValue', e.target.value)}
+ placeholder="E.g., 48"
+ required
+ />
+
+
+
+))}
+
+
+```
+
+**5. Approval Flow Summary (Live Preview)**
+
+```typescript
+
+ Approval Flow Summary
+
+ {approvalLevels.map((level, index) => (
+
+ {level.levelNumber}
+
+
+ {level.levelName || `Level ${level.levelNumber}`}
+
+
+ {level.approverDetails?.display_name || 'Not selected'}
+
+ TAT: {level.tatValue} {level.tatUnit}
+
+ {index < approvalLevels.length - 1 && ↓}
+
+ ))}
+
+
+ Total TAT: {totalTAT.displayText}
+
+
+```
+
+**6. Validation Before Next Step**
+
+```typescript
+const validateApprovalWorkflow = () => {
+ // Check at least 1 level
+ if (approvalLevels.length === 0) {
+ toast.error('At least one approval level is required');
+ return false;
+ }
+
+ // Check each level
+ for (let i = 0; i < approvalLevels.length; i++) {
+ const level = approvalLevels[i];
+
+ // Check approver selected
+ if (!level.approverId) {
+ toast.error(`Please select an approver for Level ${level.levelNumber}`);
+ return false;
+ }
+
+ // Check TAT value
+ if (!level.tatValue || parseFloat(level.tatValue) <= 0) {
+ toast.error(`Please enter valid TAT for Level ${level.levelNumber}`);
+ return false;
+ }
+ }
+
+ // Check for duplicate approvers
+ const approverIds = approvalLevels.map(l => l.approverId);
+ const uniqueApproverIds = new Set(approverIds);
+ if (approverIds.length !== uniqueApproverIds.size) {
+ toast.error('Same person cannot be approver at multiple levels');
+ return false;
+ }
+
+ return true;
+};
+
+const handleNext = () => {
+ if (!validateApprovalWorkflow()) {
+ return;
+ }
+
+ // Save to Redux
+ dispatch(setApprovalLevels(approvalLevels));
+
+ // Calculate and save total TAT
+ dispatch(setTotalTAT(calculateTotalTAT()));
+
+ // Go to next step
+ setActiveStep(3); // Participants step
+};
+```
+
+**Backend Integration (BE-201, BE-202: 2.5 days):**
+- POST /api/v1/workflows - Create draft workflow
+- POST /api/v1/workflows/:id/approvals - Add approval levels
+- GET /api/v1/users/search - User search for @mention
+
+**Deliverable:** Approval hierarchy builder fully functional
+
+---
+
+### Step 4: Participants & Access (FE-205: 1 day)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**Spectator Management:**
+```typescript
+const [spectators, setSpectators] = useState([]);
+
+// Add spectator (reuse ApproverSearch component)
+const handleAddSpectator = (user) => {
+ // Check if already added
+ if (spectators.find(s => s.user_id === user.user_id)) {
+ toast.warning('User already added as spectator');
+ return;
+ }
+
+ // Check if user is already an approver
+ const isApprover = approvalLevels.some(l => l.approverId === user.user_id);
+ if (isApprover) {
+ toast.warning('User is already an approver');
+ return;
+ }
+
+ setSpectators([...spectators, user]);
+ toast.success(`${user.display_name} added as spectator`);
+};
+
+// Remove spectator
+const handleRemoveSpectator = (userId) => {
+ setSpectators(spectators.filter(s => s.user_id !== userId));
+};
+
+// Display
+
+ {spectators.map(spectator => (
+ }
+ label={spectator.display_name}
+ onDelete={() => handleRemoveSpectator(spectator.user_id)}
+ />
+ ))}
+
+
+// Save to Redux
+dispatch(setSpectators(spectators));
+```
+
+**Backend Integration (BE-203: 1 day):**
+- POST /api/v1/workflows/:id/participants - Add spectators
+
+**Deliverable:** Spectator management functional
+
+---
+
+### Step 5: Documents & Attachments (FE-206: 1 day)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**File Upload with react-dropzone:**
+```typescript
+import { useDropzone } from 'react-dropzone';
+
+const [files, setFiles] = useState([]);
+const [uploadProgress, setUploadProgress] = useState({});
+
+const onDrop = useCallback((acceptedFiles, rejectedFiles) => {
+ // Handle rejected files
+ rejectedFiles.forEach(({ file, errors }) => {
+ errors.forEach(error => {
+ if (error.code === 'file-too-large') {
+ toast.error(`${file.name} is too large. Max size: 10MB`);
+ } else if (error.code === 'file-invalid-type') {
+ toast.error(`${file.name} has invalid type`);
+ }
+ });
+ });
+
+ // Add accepted files
+ setFiles(prevFiles => [...prevFiles, ...acceptedFiles]);
+}, []);
+
+const { getRootProps, getInputProps, isDragActive } = useDropzone({
+ onDrop,
+ accept: {
+ 'application/pdf': ['.pdf'],
+ 'application/msword': ['.doc'],
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': ['.docx'],
+ 'application/vnd.ms-excel': ['.xls'],
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'],
+ 'application/vnd.ms-powerpoint': ['.ppt'],
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation': ['.pptx'],
+ 'image/jpeg': ['.jpg', '.jpeg'],
+ 'image/png': ['.png'],
+ 'image/gif': ['.gif']
+ },
+ maxSize: 10 * 1024 * 1024, // 10MB
+ multiple: true
+});
+
+
+
+ {isDragActive ? (
+ Drop files here...
+ ) : (
+ <>
+
+ Drag files here or click to browse
+ Supported: PDF, Word, Excel, PPT, Images (Max 10MB each)
+ >
+ )}
+
+```
+
+**File List Display:**
+```typescript
+
+ {files.map((file, index) => (
+
+
+ {file.name}
+ {(file.size / 1024 / 1024).toFixed(2)} MB
+ handleRemoveFile(index)}>
+
+
+
+ ))}
+
+```
+
+**Google Docs/Sheets Links:**
+```typescript
+const [googleDocsLink, setGoogleDocsLink] = useState('');
+const [googleSheetsLink, setGoogleSheetsLink] = useState('');
+
+const validateGoogleLink = (url, type) => {
+ if (!url) return true;
+
+ const pattern = type === 'docs'
+ ? /^https:\/\/docs\.google\.com\/document\//
+ : /^https:\/\/docs\.google\.com\/spreadsheets\//;
+
+ return pattern.test(url);
+};
+
+ setGoogleDocsLink(e.target.value)}
+ error={!validateGoogleLink(googleDocsLink, 'docs')}
+ helperText={!validateGoogleLink(googleDocsLink, 'docs') && 'Invalid Google Docs URL'}
+ placeholder="https://docs.google.com/document/d/..."
+ fullWidth
+/>
+```
+
+**Backend Integration (BE-401: 2 days):**
+- POST /api/v1/workflows/:id/documents - Upload files
+- File upload with Multer
+- Cloud storage integration (GCP or local)
+
+**Deliverable:** Document upload functional
+
+---
+
+### Step 6: Review & Submit (FE-207, FE-208: 2 days)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**1. Complete Summary Display:**
+```typescript
+const ReviewStep = () => {
+ // Get all data from Redux
+ const workflowData = useAppSelector(state => state.workflow.currentDraft);
+ const { templateType, title, description, priority } = workflowData.basicInfo;
+ const { levels } = workflowData.approvals;
+ const { spectators } = workflowData.participants;
+ const { files, googleDocsLink, googleSheetsLink } = workflowData.documents;
+
+ return (
+
+ {/* Request Overview */}
+
+ Request Overview
+
+
+
+ {templateType}
+
+
+
+
+
+
+
+
+ {/* Basic Information */}
+
+
+ Basic Information
+ setActiveStep(1)}>Edit
+
+ {title}
+
+
+
+ {/* Approval Workflow */}
+
+
+ Approval Workflow
+ setActiveStep(2)}>Edit
+
+
+ {levels.map((level, index) => (
+
+ {level.levelNumber}
+ {level.approverDetails.display_name}
+ {level.tatValue} {level.tatUnit}
+ {index < levels.length - 1 && →}
+
+ ))}
+
+ Total TAT: {calculateTotalTAT().displayText}
+
+
+ {/* Participants */}
+
+
+ Participants & Access
+ setActiveStep(3)}>Edit
+
+ {spectators.length} spectators
+
+ {spectators.map(s => (
+
+ ))}
+
+
+
+ {/* Documents */}
+
+
+ Documents & Attachments
+ setActiveStep(4)}>Edit
+
+ {files.length} files uploaded
+
+ {files.map((file, index) => (
+
+
+ {file.name}
+ {(file.size / 1024 / 1024).toFixed(2)} MB
+
+ ))}
+
+ {googleDocsLink && Google Doc}
+ {googleSheetsLink && Google Sheet}
+
+
+ );
+};
+```
+
+**2. Submit Workflow (Complex Multi-Step API)**
+
+```typescript
+const handleSubmitWorkflow = async () => {
+ setSubmitting(true);
+
+ try {
+ // Step 1: Create workflow draft
+ const workflowResponse = await workflowService.createWorkflow({
+ title: workflowData.basicInfo.title,
+ description: workflowData.basicInfo.description,
+ priority: workflowData.basicInfo.priority,
+ total_levels: workflowData.approvals.levels.length,
+ total_tat_hours: calculateTotalTAT().totalHours,
+ is_draft: false
+ });
+
+ const workflowId = workflowResponse.data.request_id;
+
+ // Step 2: Upload documents
+ if (files.length > 0) {
+ for (const file of files) {
+ const formData = new FormData();
+ formData.append('file', file);
+
+ await documentService.uploadDocument(workflowId, formData, {
+ onUploadProgress: (progressEvent) => {
+ const progress = Math.round((progressEvent.loaded * 100) / progressEvent.total);
+ setUploadProgress(prev => ({ ...prev, [file.name]: progress }));
+ }
+ });
+ }
+ }
+
+ // Step 3: Create approval levels
+ for (const level of workflowData.approvals.levels) {
+ await approvalService.createApprovalLevel(workflowId, {
+ level_number: level.levelNumber,
+ level_name: level.levelName,
+ approver_id: level.approverId,
+ tat_hours: level.tatUnit === 'days' ? level.tatValue * 24 : level.tatValue
+ });
+ }
+
+ // Step 4: Add spectators
+ if (spectators.length > 0) {
+ for (const spectator of spectators) {
+ await participantService.addSpectator(workflowId, {
+ user_id: spectator.user_id,
+ participant_type: 'SPECTATOR'
+ });
+ }
+ }
+
+ // Step 5: Submit workflow for approval
+ await workflowService.submitWorkflow(workflowId);
+
+ // Success!
+ toast.success('Workflow submitted successfully!');
+
+ // Clear wizard state
+ dispatch(clearWorkflowDraft());
+
+ // Navigate to request detail
+ navigate(`/workflows/${workflowId}`);
+
+ } catch (error) {
+ console.error('Workflow submission failed:', error);
+ toast.error(error.response?.data?.message || 'Failed to submit workflow');
+ } finally {
+ setSubmitting(false);
+ }
+};
+```
+
+**3. Save as Draft:**
+```typescript
+const handleSaveDraft = async () => {
+ setSavingDraft(true);
+
+ try {
+ const response = await workflowService.createWorkflow({
+ ...workflowData,
+ is_draft: true
+ });
+
+ toast.success('Draft saved successfully!');
+ navigate('/workflows/my-requests');
+ } catch (error) {
+ toast.error('Failed to save draft');
+ } finally {
+ setSavingDraft(false);
+ }
+};
+```
+
+**Deliverable:** Complete workflow submission with error handling
+
+---
+
+## Sprint 3: Approval Actions & TAT Tracking (Weeks 5-6)
+
+### 🎯 Focus: Enable approvers to approve/reject workflows
+
+---
+
+### Request Detail Page Structure (FE-303: 2 days)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**1. Fetch Workflow Data on Load:**
+```typescript
+const RequestDetail = () => {
+ const { id } = useParams();
+ const dispatch = useAppDispatch();
+ const { currentWorkflow, loading, error } = useAppSelector(state => state.workflow);
+
+ useEffect(() => {
+ // Fetch workflow details
+ dispatch(fetchWorkflowById(id));
+
+ // Fetch approvals
+ dispatch(fetchApprovals(id));
+
+ // Fetch documents
+ dispatch(fetchDocuments(id));
+
+ // Fetch activities
+ dispatch(fetchActivities(id));
+
+ // Fetch TAT status
+ dispatch(fetchTATStatus(id));
+ }, [id]);
+
+ if (loading) return ;
+ if (error) return ;
+ if (!currentWorkflow) return ;
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {/* Tab content */}
+
+
+
+
+
+
+ );
+};
+```
+
+**2. TAT Progress Bar (Key Feature):**
+```typescript
+const TATProgressBar = ({ workflow }) => {
+ // Calculate TAT status
+ const tatStatus = useMemo(() => {
+ if (!workflow.tat_start_date) return null;
+
+ const startTime = new Date(workflow.tat_start_date);
+ const currentTime = new Date();
+ const totalTAT = workflow.total_tat_hours;
+
+ const elapsedHours = (currentTime - startTime) / (1000 * 60 * 60);
+ const percentageUsed = (elapsedHours / totalTAT) * 100;
+ const remainingHours = totalTAT - elapsedHours;
+
+ let status = 'ON_TRACK';
+ let color = 'success';
+
+ if (percentageUsed >= 100) {
+ status = 'BREACHED';
+ color = 'error';
+ } else if (percentageUsed >= 80) {
+ status = 'APPROACHING';
+ color = 'warning';
+ }
+
+ return {
+ elapsedHours: Math.floor(elapsedHours),
+ remainingHours: Math.max(0, Math.floor(remainingHours)),
+ percentageUsed: Math.min(100, percentageUsed),
+ status,
+ color
+ };
+ }, [workflow]);
+
+ if (!tatStatus) return null;
+
+ return (
+
+ TAT Progress
+
+
+
+
+ {tatStatus.elapsedHours} hours
+
+
+
+
+ {tatStatus.remainingHours > 0
+ ? `${tatStatus.remainingHours} hours`
+ : `${Math.abs(tatStatus.remainingHours)} hours overdue`
+ }
+
+
+
+
+
+ {tatStatus.status === 'ON_TRACK' && '✓ On Track'}
+ {tatStatus.status === 'APPROACHING' && '⚠ Approaching Deadline'}
+ {tatStatus.status === 'BREACHED' && '🚨 TAT Breached'}
+
+
+
+
+ );
+};
+```
+
+---
+
+### Approve/Reject Modals (FE-307: 1.5 days)
+
+**UI Status:** ✅ Already from Figma
+
+**What to Build:**
+
+**Approve Request Modal:**
+```typescript
+const ApproveModal = ({ open, onClose, workflow, currentLevel }) => {
+ const [comments, setComments] = useState('');
+ const [submitting, setSubmitting] = useState(false);
+ const dispatch = useAppDispatch();
+
+ const handleApprove = async () => {
+ // Validate comments
+ if (!comments || comments.trim() === '') {
+ toast.error('Comments are required for approval');
+ return;
+ }
+
+ if (comments.length > 500) {
+ toast.error('Comments must be less than 500 characters');
+ return;
+ }
+
+ setSubmitting(true);
+
+ try {
+ // Call approve API
+ await approvalService.approveRequest(workflow.request_id, currentLevel.level_id, {
+ comments: comments.trim()
+ });
+
+ // Refresh workflow data
+ dispatch(fetchWorkflowById(workflow.request_id));
+
+ // Success notification
+ toast.success('Request approved successfully!');
+
+ // Close modal
+ onClose();
+
+ } catch (error) {
+ toast.error(error.response?.data?.message || 'Failed to approve request');
+ } finally {
+ setSubmitting(false);
+ }
+ };
+
+ return (
+
+ );
+};
+```
+
+**Reject Request Modal (Similar Structure):**
+```typescript
+// Same structure as Approve, but:
+// - Red/danger styling
+// - Warning message about closure
+// - "Rejection Reason" instead of "Comments"
+// - Confirmation prompt: "Are you sure?"
+```
+
+**Backend Integration (BE-301: 2 days):**
+- PATCH /api/v1/workflows/:id/approvals/:levelId/approve
+- PATCH /api/v1/workflows/:id/approvals/:levelId/reject
+- Complex approval state machine logic
+- TAT tracking updates
+- Notifications to next approver/initiator
+
+**Deliverable:** Approval/rejection functionality working
+
+---
+
+### TAT Monitoring Cron Job (BE-302: 2 days)
+
+**Backend Implementation:**
+```typescript
+// src/jobs/tatMonitor.job.ts
+import cron from 'node-cron';
+
+// Run every 30 minutes
+cron.schedule('*/30 * * * *', async () => {
+ console.log('Running TAT monitoring job...');
+
+ // Get all active workflows
+ const activeWorkflows = await WorkflowRequest.findAll({
+ where: {
+ status: ['PENDING', 'IN_PROGRESS']
+ },
+ include: [
+ {
+ model: ApprovalLevel,
+ where: { status: 'IN_PROGRESS' },
+ required: true
+ }
+ ]
+ });
+
+ for (const workflow of activeWorkflows) {
+ const currentLevel = workflow.approval_levels[0];
+
+ // Calculate elapsed time
+ const elapsedHours = calculateElapsedHours(
+ currentLevel.level_start_time,
+ new Date(),
+ workflow.priority // STANDARD or EXPRESS
+ );
+
+ const percentageUsed = (elapsedHours / currentLevel.tat_hours) * 100;
+
+ // Determine TAT status
+ let tatStatus = 'ON_TRACK';
+ if (percentageUsed >= 100) {
+ tatStatus = 'BREACHED';
+ } else if (percentageUsed >= 80) {
+ tatStatus = 'APPROACHING';
+ }
+
+ // Update TAT tracking
+ await TATTracking.upsert({
+ request_id: workflow.request_id,
+ level_id: currentLevel.level_id,
+ tat_status: tatStatus,
+ percentage_used: percentageUsed,
+ remaining_hours: currentLevel.tat_hours - elapsedHours,
+ checked_at: new Date()
+ });
+
+ // Send notifications based on status
+ if (percentageUsed >= 100 && !currentLevel.breach_alert_sent) {
+ // TAT Breached - send urgent notification
+ await notificationService.create({
+ user_id: currentLevel.approver_id,
+ request_id: workflow.request_id,
+ notification_type: 'TAT_BREACH',
+ title: 'TAT BREACHED!',
+ message: `Request ${workflow.request_number} has exceeded TAT deadline`,
+ priority: 'URGENT'
+ });
+
+ // Mark alert sent
+ await currentLevel.update({ breach_alert_sent: true });
+
+ } else if (percentageUsed >= 80 && !currentLevel.warning_alert_sent) {
+ // TAT Warning - send high priority notification
+ await notificationService.create({
+ user_id: currentLevel.approver_id,
+ request_id: workflow.request_id,
+ notification_type: 'TAT_WARNING',
+ title: 'TAT Warning: Action Required',
+ message: `Request ${workflow.request_number} has used 80% of TAT`,
+ priority: 'HIGH'
+ });
+
+ // Mark alert sent
+ await currentLevel.update({ warning_alert_sent: true });
+ }
+ }
+
+ console.log(`TAT monitoring completed. Checked ${activeWorkflows.length} workflows.`);
+});
+```
+
+**Deliverable:** Automated TAT monitoring and alerts
+
+---
+
+## Sprint 4: Documents & Work Notes (Week 7)
+
+### 📎 Focus: Document management and collaboration
+
+---
+
+### Document Management (BE-401, FE-305: 2 days total)
+
+**Backend Document Upload (BE-401: 1.5 days):**
+
+```typescript
+// src/services/storage.service.ts
+import { Storage } from '@google-cloud/storage';
+import multer from 'multer';
+
+const storage = new Storage({
+ projectId: process.env.GCP_PROJECT_ID,
+ keyFilename: process.env.GCP_KEY_FILE
+});
+
+const bucket = storage.bucket(process.env.GCP_BUCKET_NAME);
+
+export const uploadToGCP = async (file) => {
+ const fileName = `${Date.now()}-${file.originalname}`;
+ const blob = bucket.file(fileName);
+
+ const blobStream = blob.createWriteStream({
+ metadata: {
+ contentType: file.mimetype
+ }
+ });
+
+ return new Promise((resolve, reject) => {
+ blobStream.on('error', reject);
+ blobStream.on('finish', async () => {
+ const publicUrl = `https://storage.googleapis.com/${bucket.name}/${blob.name}`;
+ resolve({ fileName, publicUrl });
+ });
+ blobStream.end(file.buffer);
+ });
+};
+
+// src/controllers/document.controller.ts
+export const documentController = {
+ upload: async (req, res) => {
+ const { id: requestId } = req.params;
+ const file = req.file;
+
+ // Upload to GCP
+ const { fileName, publicUrl } = await uploadToGCP(file);
+
+ // Save metadata to database
+ const document = await Document.create({
+ request_id: requestId,
+ uploaded_by: req.user.userId,
+ file_name: file.originalname,
+ file_type: file.mimetype,
+ file_size: file.size,
+ file_path: fileName,
+ storage_url: publicUrl
+ });
+
+ // Create activity log
+ await Activity.create({
+ request_id: requestId,
+ user_id: req.user.userId,
+ activity_type: 'DOCUMENT_UPLOADED',
+ activity_description: `Uploaded document: ${file.originalname}`
+ });
+
+ res.json({ success: true, data: document });
+ }
+};
+```
+
+**Frontend Document Display (FE-305: 0.5 days):**
+
+```typescript
+const DocumentsTab = ({ workflowId }) => {
+ const dispatch = useAppDispatch();
+ const { documents, loading } = useAppSelector(state => state.document);
+ const [previewModal, setPreviewModal] = useState({ open: false, document: null });
+
+ useEffect(() => {
+ dispatch(fetchDocuments(workflowId));
+ }, [workflowId]);
+
+ const handlePreview = (document) => {
+ if (document.file_type.includes('pdf') || document.file_type.includes('image')) {
+ setPreviewModal({ open: true, document });
+ } else {
+ toast.info('Preview not available. Please download to view.');
+ }
+ };
+
+ const handleDownload = async (documentId) => {
+ try {
+ const response = await documentService.getDownloadUrl(documentId);
+ window.open(response.data.downloadUrl, '_blank');
+ } catch (error) {
+ toast.error('Failed to download document');
+ }
+ };
+
+ return (
+
+ {loading && }
+
+ {!loading && documents.length === 0 && (
+
+
+ No documents uploaded yet
+
+ )}
+
+
+ {documents.map(doc => (
+
+
+ {doc.file_name}
+ {(doc.file_size / 1024 / 1024).toFixed(2)} MB
+
+ Uploaded by {doc.uploader_name}
+
+ {formatDate(doc.uploaded_at)}
+
+
+ {(doc.file_type.includes('pdf') || doc.file_type.includes('image')) && (
+ handlePreview(doc)}>
+
+
+ )}
+ handleDownload(doc.document_id)}>
+
+
+
+
+ ))}
+
+
+ setPreviewModal({ open: false, document: null })}
+ />
+
+ );
+};
+```
+
+---
+
+### Work Notes / Chat (BE-402, FE-308: 2 days total)
+
+**UI Status:** ✅ Already from Figma + Partial functionality
+**Current:** Document selection and emoji working
+**Needs:** Backend API integration, @mentions, real data
+
+**Backend Work Notes API (BE-402: 1.5 days):**
+
+```typescript
+// src/controllers/workNote.controller.ts
+export const workNoteController = {
+ getAll: async (req, res) => {
+ const { id: requestId } = req.params;
+
+ const workNotes = await WorkNote.findAll({
+ where: { request_id: requestId },
+ include: [{
+ model: User,
+ attributes: ['user_id', 'display_name', 'profile_picture_url']
+ }],
+ order: [['created_at', 'ASC']]
+ });
+
+ res.json({ success: true, data: workNotes });
+ },
+
+ create: async (req, res) => {
+ const { id: requestId } = req.params;
+ const { message } = req.body;
+
+ // Parse @mentions from message
+ const mentionedUserIds = parseMentions(message);
+
+ // Create work note
+ const workNote = await WorkNote.create({
+ request_id: requestId,
+ user_id: req.user.userId,
+ message,
+ mentioned_users: mentionedUserIds,
+ has_attachment: false
+ });
+
+ // Send notifications to mentioned users
+ for (const mentionedUserId of mentionedUserIds) {
+ await Notification.create({
+ user_id: mentionedUserId,
+ request_id: requestId,
+ notification_type: 'WORK_NOTE_MENTION',
+ title: `${req.user.displayName} mentioned you`,
+ message: `"${message.substring(0, 100)}..."`,
+ priority: 'NORMAL',
+ action_url: `/workflows/${requestId}#work-notes`
+ });
+ }
+
+ // Create activity
+ await Activity.create({
+ request_id: requestId,
+ user_id: req.user.userId,
+ activity_type: 'WORK_NOTE_ADDED',
+ activity_description: `Added a work note`
+ });
+
+ res.json({ success: true, data: workNote });
+ },
+
+ addReaction: async (req, res) => {
+ const { noteId } = req.params;
+ const { emoji } = req.body;
+
+ const workNote = await WorkNote.findByPk(noteId);
+
+ // Update reactions (JSONB column)
+ const reactions = workNote.reactions || {};
+ if (!reactions[emoji]) {
+ reactions[emoji] = [];
+ }
+
+ // Toggle reaction
+ const userIdIndex = reactions[emoji].indexOf(req.user.userId);
+ if (userIdIndex > -1) {
+ reactions[emoji].splice(userIdIndex, 1); // Remove
+ } else {
+ reactions[emoji].push(req.user.userId); // Add
+ }
+
+ await workNote.update({ reactions });
+
+ res.json({ success: true, data: workNote });
+ }
+};
+
+// Helper function to parse @mentions
+function parseMentions(message) {
+ const mentionPattern = /@(\w+)|@"([^"]+)"/g;
+ const mentions = [];
+ let match;
+
+ while ((match = mentionPattern.exec(message)) !== null) {
+ const username = match[1] || match[2];
+ // Look up user in database
+ const user = await User.findOne({
+ where: {
+ [Op.or]: [
+ { email: { [Op.like]: `%${username}%` } },
+ { display_name: { [Op.like]: `%${username}%` } }
+ ]
+ }
+ });
+
+ if (user) {
+ mentions.push(user.user_id);
+ }
+ }
+
+ return [...new Set(mentions)]; // Remove duplicates
+}
+```
+
+**Frontend Work Notes Integration (FE-308: 0.5 days):**
+
+Since UI and emoji/doc selection already work, just connect to backend:
+
+```typescript
+const WorkNotes = ({ workflowId }) => {
+ const dispatch = useAppDispatch();
+ const { notes, loading } = useAppSelector(state => state.workNote);
+ const [message, setMessage] = useState('');
+ const [sending, setSending] = useState(false);
+ const messagesEndRef = useRef(null);
+
+ // Fetch notes on load
+ useEffect(() => {
+ dispatch(fetchWorkNotes(workflowId));
+
+ // Poll for new messages every 10 seconds
+ const interval = setInterval(() => {
+ dispatch(fetchWorkNotes(workflowId));
+ }, 10000);
+
+ return () => clearInterval(interval);
+ }, [workflowId]);
+
+ // Auto-scroll to bottom
+ useEffect(() => {
+ messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });
+ }, [notes]);
+
+ const handleSendMessage = async () => {
+ if (!message.trim()) return;
+
+ setSending(true);
+
+ try {
+ await dispatch(createWorkNote({
+ workflowId,
+ message: message.trim()
+ }));
+
+ setMessage(''); // Clear input
+
+ } catch (error) {
+ toast.error('Failed to send message');
+ } finally {
+ setSending(false);
+ }
+ };
+
+ const handleAddReaction = async (noteId, emoji) => {
+ try {
+ await dispatch(addReactionToNote({ noteId, emoji }));
+ } catch (error) {
+ toast.error('Failed to add reaction');
+ }
+ };
+
+ return (
+
+
+ {notes.map(note => (
+
+
+
+
+ {note.user.display_name}
+ {getUserRole(note.user_id)}
+ {formatRelativeTime(note.created_at)}
+
+ {note.message}
+ {note.has_attachment && }
+
+ {Object.entries(note.reactions || {}).map(([emoji, userIds]) => (
+ handleAddReaction(note.note_id, emoji)}
+ />
+ ))}
+ showEmojiPicker(note.note_id)} />
+
+
+
+ ))}
+
+
+
+
+
+
+ );
+};
+```
+
+**Deliverable:** Fully functional work notes with @mentions, emojis, real-time updates
+
+---
+
+## Sprint 5: Dashboard & Analytics (Week 8)
+
+### 📊 Focus: Statistics, charts, AI conclusions
+
+---
+
+### Dashboard Statistics (BE-501, FE-402: 2 days total)
+
+**Backend Dashboard API (BE-501: 1 day):**
+
+```typescript
+// src/services/dashboard.service.ts
+export const dashboardService = {
+ getStats: async (userId) => {
+ // Total requests by user
+ const total_requests = await WorkflowRequest.count({
+ where: { initiator_id: userId }
+ });
+
+ // Pending approvals (where user is current approver)
+ const pending_approvals = await WorkflowRequest.count({
+ include: [{
+ model: ApprovalLevel,
+ where: {
+ approver_id: userId,
+ status: 'IN_PROGRESS'
+ },
+ required: true
+ }]
+ });
+
+ // Approved/Rejected counts
+ const approved_requests = await WorkflowRequest.count({
+ where: { initiator_id: userId, status: 'APPROVED' }
+ });
+
+ const rejected_requests = await WorkflowRequest.count({
+ where: { initiator_id: userId, status: 'REJECTED' }
+ });
+
+ // TAT breached
+ const tat_breached = await TATTracking.count({
+ where: { tat_status: 'BREACHED' }
+ });
+
+ // Requests by status
+ const requests_by_status = await WorkflowRequest.findAll({
+ attributes: [
+ 'status',
+ [sequelize.fn('COUNT', sequelize.col('request_id')), 'count']
+ ],
+ where: { initiator_id: userId },
+ group: ['status']
+ });
+
+ // Approval trend (last 30 days)
+ const approval_trend = await WorkflowRequest.findAll({
+ attributes: [
+ [sequelize.fn('DATE', sequelize.col('submission_date')), 'date'],
+ [sequelize.fn('COUNT', sequelize.col('request_id')), 'count']
+ ],
+ where: {
+ submission_date: {
+ [Op.gte]: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000)
+ }
+ },
+ group: [sequelize.fn('DATE', sequelize.col('submission_date'))]
+ });
+
+ return {
+ total_requests,
+ pending_approvals,
+ approved_requests,
+ rejected_requests,
+ tat_breached,
+ requests_by_status,
+ approval_trend
+ };
+ }
+};
+```
+
+**Frontend Dashboard (FE-402: 1 day):**
+
+```typescript
+import { PieChart, BarChart, LineChart } from 'recharts';
+
+const Dashboard = () => {
+ const dispatch = useAppDispatch();
+ const stats = useAppSelector(state => state.dashboard.stats);
+
+ useEffect(() => {
+ dispatch(fetchDashboardStats());
+ }, []);
+
+ return (
+
+ {/* Metric Cards */}
+
+
+ {stats.total_requests}
+ Total Requests
+
+
+
+
+ {stats.pending_approvals}
+ Pending Approvals
+
+
+
+
+ {stats.approved_requests}
+ Approved
+
+
+
+
+ {stats.tat_breached}
+ TAT Breached
+
+
+
+
+ {/* Charts */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+```
+
+**Deliverable:** Dashboard with real-time statistics and charts
+
+---
+
+### AI Conclusion Generation (BE-502, FE-403: 2 days total)
+
+**Backend AI Service (BE-502: 1 day):**
+
+```typescript
+// src/services/ai.service.ts
+import OpenAI from 'openai';
+
+const openai = new OpenAI({
+ apiKey: process.env.OPENAI_API_KEY
+});
+
+export const generateConclusion = async (workflowId) => {
+ // Get workflow data
+ const workflow = await WorkflowRequest.findByPk(workflowId, {
+ include: [
+ { model: ApprovalLevel, include: [User] },
+ { model: WorkNote, include: [User] }
+ ]
+ });
+
+ // Compile approval comments
+ const approvalComments = workflow.approval_levels
+ .filter(l => l.status === 'APPROVED' && l.comments)
+ .map(l => `Level ${l.level_number} (${l.approver.display_name}): ${l.comments}`)
+ .join('\n');
+
+ // Compile work notes
+ const discussionPoints = workflow.work_notes
+ .slice(0, 10) // Last 10 notes
+ .map(n => `${n.user.display_name}: ${n.message}`)
+ .join('\n');
+
+ // Create AI prompt
+ const prompt = `
+Generate a professional conclusion for this workflow request:
+
+Title: ${workflow.title}
+Description: ${workflow.description}
+
+Approval Journey:
+${approvalComments}
+
+Key Discussion Points:
+${discussionPoints}
+
+Please generate a concise conclusion (max 300 words) that summarizes:
+1. What was requested
+2. Key decision points
+3. Final outcome
+4. Next steps (if applicable)
+ `;
+
+ // Call OpenAI API
+ const completion = await openai.chat.completions.create({
+ model: 'gpt-4',
+ messages: [{ role: 'user', content: prompt }],
+ max_tokens: 500,
+ temperature: 0.7
+ });
+
+ const conclusion = completion.choices[0].message.content;
+
+ // Save to database
+ await ConclusionRemark.create({
+ request_id: workflowId,
+ ai_generated_remark: conclusion,
+ final_remark: conclusion,
+ is_edited: false
+ });
+
+ return conclusion;
+};
+```
+
+**Frontend Conclusion Display (FE-403: 1 day):**
+
+```typescript
+const ConclusionSection = ({ workflowId, isInitiator }) => {
+ const [conclusion, setConclusion] = useState(null);
+ const [editing, setEditing] = useState(false);
+ const [editedText, setEditedText] = useState('');
+
+ useEffect(() => {
+ fetchConclusion();
+ }, [workflowId]);
+
+ const fetchConclusion = async () => {
+ try {
+ const response = await conclusionService.getConclusion(workflowId);
+ setConclusion(response.data);
+ setEditedText(response.data.final_remark);
+ } catch (error) {
+ console.error('Failed to fetch conclusion');
+ }
+ };
+
+ const handleSaveEdit = async () => {
+ try {
+ await conclusionService.updateConclusion(workflowId, {
+ final_remark: editedText
+ });
+
+ toast.success('Conclusion updated successfully');
+ setEditing(false);
+ fetchConclusion();
+ } catch (error) {
+ toast.error('Failed to update conclusion');
+ }
+ };
+
+ if (!conclusion) {
+ return (
+
+ Conclusion will be generated after final approval
+
+ );
+ }
+
+ return (
+
+
+ Conclusion Remark
+ {isInitiator && !editing && (
+ setEditing(true)}>
+
+
+ )}
+
+
+ {editing ? (
+ <>
+ setEditedText(e.target.value)}
+ multiline
+ rows={8}
+ fullWidth
+ />
+
+
+
+
+ >
+ ) : (
+ <>
+ {conclusion.final_remark}
+ {conclusion.is_edited && (
+ Edited by {conclusion.edited_by_name}
+ )}
+ >
+ )}
+
+ );
+};
+```
+
+**Deliverable:** AI-powered conclusion generation with edit capability
+
+---
+
+## 🎯 Key Integration Points
+
+### Frontend-Backend Integration Checklist:
+
+**For Each Feature:**
+1. ✅ Backend API ready and documented
+2. ✅ Postman collection updated
+3. ✅ Frontend Redux slice created
+4. ✅ Frontend API service method created
+5. ✅ Connect UI to Redux action
+6. ✅ Handle loading state
+7. ✅ Handle success state
+8. ✅ Handle error state
+9. ✅ Add validation
+10. ✅ Test end-to-end
+
+---
+
+## 💡 Development Best Practices
+
+### For Frontend:
+1. **Always use Redux for shared state** (don't use local state for API data)
+2. **Always show loading states** (users need feedback)
+3. **Always handle errors gracefully** (show user-friendly messages)
+4. **Always validate inputs** (client-side validation first)
+5. **Always test on mobile** (responsive from start)
+
+### For Backend:
+1. **Always validate inputs** (use Zod schemas)
+2. **Always log activities** (for audit trail)
+3. **Always send notifications** (keep users informed)
+4. **Always handle errors** (return consistent error format)
+5. **Always document APIs** (Swagger documentation)
+
+---
+
+## 📈 Effort Estimation per Feature
+
+| Feature | UI (Figma) | Redux | API | Logic | Testing | Total |
+|---------|------------|-------|-----|-------|---------|-------|
+| **Workflow Creation Wizard** | ✅ Done | 1 day | 2 days | 2 days | 1 day | 6 days |
+| **Request Detail Page** | ✅ Done | 0.5 day | 1.5 days | 1 day | 0.5 day | 3.5 days |
+| **Approval Actions** | ✅ Done | 0.5 day | 1 day | 1 day | 0.5 day | 3 days |
+| **Work Notes** | ✅ Done | 0.5 day | 0.5 day | 0.5 day | 0.5 day | 2 days |
+| **Documents** | ✅ Done | 0.5 day | 1 day | 0.5 day | 0.5 day | 2.5 days |
+| **Dashboard** | ✅ Done | 0.5 day | 1 day | 1 day | 0.5 day | 3 days |
+| **Notifications** | ✅ Done | 0.5 day | 1 day | 0.5 day | 0.5 day | 2.5 days |
+
+**Total Frontend Integration Work:** ~23 days (not including Sprint 0 foundation)
+
+---
+
+**Document Focus:** Core application features (workflow creation, approvals, work notes, documents, dashboard)
+**Authentication:** SSO-based (no login/signup/password screens)
+**Prepared By:** .NET Expert Team
+**Last Updated:** October 23, 2025
+
diff --git a/RE_Workflow_Task_Breakdown.md b/RE_Workflow_Task_Breakdown.md
new file mode 100644
index 0000000..64b5c5c
--- /dev/null
+++ b/RE_Workflow_Task_Breakdown.md
@@ -0,0 +1,5716 @@
+# RE Workflow Management System - Task Breakdown
+## Sprint Planning & Task Distribution (Frontend & Backend)
+
+**Version:** 1.1
+**Date:** October 23, 2025
+**Project:** RE Workflow Management System (Non-Templatized)
+**Authentication:** Standard Login Flow (SSO deferred)
+**Current Status:** Frontend UI from Figma implemented, functionality integration in progress
+
+---
+
+## Table of Contents
+1. [Project Overview](#project-overview)
+2. [SSO Authentication Approach](#sso-authentication-approach) 🔐
+3. [Frontend Work Reality Check](#frontend-work-reality-check) ⚠️ **READ THIS FIRST**
+4. [Sprint Structure](#sprint-structure)
+5. [Backend Tasks](#backend-tasks)
+6. [Frontend Tasks](#frontend-tasks)
+7. [Task Dependencies](#task-dependencies)
+8. [Timeline & Milestones](#timeline--milestones)
+
+📖 **For Detailed Sprint Explanations:** See separate file `RE_Workflow_Detailed_Sprint_Guide.md`
+
+---
+
+## Project Overview
+
+### Technology Stack
+- **Backend:** Node.js 22 LTS + TypeScript 5.7 + Express.js + PostgreSQL 16
+- **Frontend:** React 19 + TypeScript (TSX) + Material-UI 6.3 + Redux Toolkit 2.5
+- **Authentication:** Standard Email/Password Login (JWT-based)
+
+### Authentication Approach
+- 🔄 **SSO Login (RE SSO Bridge):** Primary authentication method (awaiting final confirmation)
+ - **No Login/Signup Screens:** SSO handles authentication externally
+ - **Figma Note:** No login/signup screens in Figma (not needed for SSO)
+ - **User Flow:**
+ 1. User clicks "Login" → Redirects to RE SSO Bridge
+ 2. User authenticates with RE credentials (handled by SSO)
+ 3. SSO redirects back to app with token
+ 4. App validates token and creates session
+ - **Frontend Work:** Minimal (just SSO callback handler)
+ - **No Registration Flow:** Users are provisioned in Active Directory, auto-synced to app
+
+- ⚠️ **Fallback Plan (if SSO delayed):** Standard email/password login (temporary)
+ - Only if SSO integration is delayed or unavailable
+ - Can be built in 3-4 days as temporary solution
+ - Will be replaced by SSO once available
+
+### Current Project Status (As of October 23, 2025)
+
+#### Frontend Status 🔄
+- **Figma UI Extraction:** 80% complete (includes mobile responsive)
+ - ⚠️ **Important:** This is just UI with dummy data, NO API integration yet
+ - When 100% extraction done: Still just static UI components
+ - All UI is mobile responsive (320px - 1920px)
+- **Dependency Packages:** ✅ All resolved and installed
+- **Work Note Feature:** UI complete + partial functionality (document selection, emoji support working)
+- **Current Status:**
+ - ✅ UI Components: 80% extracted
+ - ❌ API Integration: 0% (not started)
+ - ❌ Redux Integration: 0% (not started)
+ - ❌ Form Validations: 0% (not started)
+ - ❌ Business Logic: 0% (not started)
+
+**Reality Check:**
+- Figma extraction ≠ Feature complete
+- UI extraction = Just visual components with dummy data
+- Still need: API integration, state management, validations, error handling, loading states
+
+**Actual Frontend Completion:** ~20% (UI only, no functionality)
+
+#### Backend Status 🔄
+- **Repository Setup:** 70% in progress
+- **Database Schema:** Ready to implement (0% done)
+- **API Development:** Not started (0% done)
+- **Estimated Completion:** Following planned timeline
+
+**Overall Project Completion:** ~10% (mostly UI extraction)
+
+---
+
+## 🔐 SSO Authentication Approach
+
+### How SSO Login Works (No Login/Signup Screens Needed)
+
+#### User Authentication Flow:
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ User visits app → https://workflow.royalenfield.com │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ App detects no session → Redirects to RE SSO Bridge │
+│ https://sso.royalenfield.com/oauth/authorize?client_id=... │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ User enters RE credentials (email + password) │
+│ SSO validates against Active Directory │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ SSO redirects back to app with authorization code │
+│ https://workflow.royalenfield.com/auth/callback?code=XXX │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ App backend exchanges code for access token │
+│ Gets user info from SSO (name, email, employee ID, dept) │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ App creates/updates user in local database │
+│ Generates JWT token for app session │
+│ Returns JWT to frontend │
+└────────────────────┬────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────┐
+│ Frontend stores JWT and redirects to Dashboard │
+│ User is now logged in! │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### What This Means for Development:
+
+**Frontend (Minimal Work):**
+- ❌ No login page (SSO handles it)
+- ❌ No signup page (users come from Active Directory)
+- ❌ No password reset page (SSO handles it)
+- ✅ Just need SSO callback page (`/auth/callback`)
+- ✅ Protected route guards (redirect to SSO if not authenticated)
+- ✅ Logout functionality (clear session + redirect to SSO logout)
+
+**Backend:**
+- ✅ SSO integration (Passport.js with OAuth2 strategy)
+- ✅ User sync from Active Directory
+- ✅ JWT token generation for app sessions
+- ✅ Session management
+- ✅ User profile sync and updates
+
+**Sprint 1 Focus:**
+- Configure SSO OAuth2 integration
+- Handle SSO callback
+- Sync users from AD to local database
+- Generate JWT for app sessions
+- Implement protected routes
+
+**Time Saved:**
+- No need to build login/signup/password reset screens
+- No password hashing/validation
+- No email verification
+- **Estimated time saved:** 3-4 days frontend, 2-3 days backend
+
+---
+
+## ⚠️ Frontend Work Reality Check
+
+### 🎨 Understanding "Figma UI Extraction" vs "Feature Complete"
+
+This section is **CRITICAL** to understand before reviewing tasks and timelines.
+
+#### What Figma Extraction Gives You:
+
+**✅ Visual Components (80% Complete):**
+```
+login-page/
+├── login-form.tsx ← Has HTML structure
+│ ├── ← Looks like email input
+│ ├── ← Looks like password input
+│ └── ← Looks like button
+└── login-page.css ← Has all styling
+
+PROBLEM: Form doesn't actually do anything!
+- Email input accepts any text (even "abc123")
+- Password input has no strength check
+- Login button has no onClick handler
+- No API call on submit
+- No error handling
+- No loading state
+- No validation messages
+- Just pretty, non-functional HTML
+```
+
+**Example: My Requests Page from Figma**
+```tsx
+// What Figma gives you (80% done):
+const MyRequests = () => {
+ const dummyData = [
+ { id: 1, title: "Approval for office", status: "Pending" },
+ { id: 2, title: "Budget approval", status: "Approved" }
+ ];
+
+ return (
+
+ {dummyData.map(req => (
+ {/* Pretty card with dummy data */}
+ ))}
+
+ );
+};
+
+// What you ACTUALLY need (the other 84%):
+const MyRequests = () => {
+ const dispatch = useAppDispatch(); // ← Need Redux
+ const { workflows, loading, error } = useAppSelector(state => state.workflow); // ← Need Redux
+ const [filters, setFilters] = useState({}); // ← Need state management
+
+ useEffect(() => {
+ // ← Need API integration
+ dispatch(fetchMyWorkflows(filters));
+ }, [filters]);
+
+ if (loading) return ; // ← Need loading state
+ if (error) return ; // ← Need error handling
+ if (!workflows.length) return ; // ← Need empty state
+
+ return (
+
+
{/* ← Need search logic */}
+
{/* ← Need filter logic */}
+ {workflows.map(req => (
+
navigate(`/workflows/${req.id}`)} {/* ← Need navigation */}
+ />
+ ))}
+
+
+ );
+};
+```
+
+---
+
+#### What You Still Need to Build (84% of Frontend Work):
+
+**1. Redux State Management (20% of total work = 7 days)**
+- Create Redux store configuration
+- Create 8 Redux slices (auth, workflow, approval, notification, etc.)
+- Define initial states
+- Create reducers for each action
+- Create async thunks for API calls
+- Setup Redux persist
+- Configure Redux DevTools
+- **Without this:** Components can't share data, no global state
+
+**2. API Integration (30% of total work = 12 days)**
+- Configure Axios instance
+- Create API service files (9 files)
+- Setup request/response interceptors
+- Handle JWT token injection
+- Handle token refresh
+- Connect every page to its API:
+ - Login → POST /api/v1/auth/login
+ - Register → POST /api/v1/auth/register
+ - Create Workflow → POST /api/v1/workflows
+ - Approve → PATCH /api/v1/workflows/:id/approve
+ - (And 50+ more API calls)
+- Handle API errors
+- Handle network failures
+- **Without this:** App is just a pretty shell with fake data
+
+**3. Form Validations (15% of total work = 5 days)**
+- Email format validation
+- Password strength validation
+- Required field validation
+- Max/min length validation
+- Number validation (TAT hours)
+- File type validation (documents)
+- File size validation (10MB max)
+- Custom validators (employee ID format, etc.)
+- Error message display
+- Real-time validation as user types
+- **Without this:** Users can submit invalid data, app crashes
+
+**4. Business Logic (15% of total work = 5 days)**
+- TAT calculation (working days vs calendar days)
+- Request number generation (display)
+- Date formatting and calculations
+- File size formatting (bytes to MB)
+- User search and @mention logic
+- Approval level sequencing
+- Status badge color logic
+- Priority level handling
+- **Without this:** App has no "brain"
+
+**5. Error Handling (10% of total work = 3 days)**
+- API error handling (400, 401, 403, 404, 500)
+- Network error handling (offline, timeout)
+- Form validation errors
+- Display error messages (toast notifications)
+- Error boundaries (catch React crashes)
+- Retry logic for failed requests
+- User-friendly error messages
+- **Without this:** App crashes and users are confused
+
+**6. Loading States (10% of total work = 3 days)**
+- Loading spinners for API calls
+- Skeleton loaders for data fetching
+- Progress bars for file uploads
+- Disable buttons during loading
+- Overlay loaders for modals
+- Page transition loaders
+- **Without this:** Users don't know app is working
+
+**7. Testing (10% of total work = 5 days)**
+- Component unit tests
+- Redux slice tests
+- Integration tests
+- E2E tests
+- **Without this:** Bugs in production
+
+---
+
+### 📊 Frontend Effort Distribution Chart
+
+```
+Total Frontend Work = 100%
+├─ Visual UI (Figma Extraction): 20% ── [████████████████████] 80% DONE
+├─ Redux State Management: 20% ── [░░░░░░░░░░░░░░░░░░░░] 0% DONE
+├─ API Integration: 30% ── [░░░░░░░░░░░░░░░░░░░░] 0% DONE
+├─ Validations & Logic: 20% ── [░░░░░░░░░░░░░░░░░░░░] 0% DONE
+└─ Testing & Polish: 10% ── [░░░░░░░░░░░░░░░░░░░░] 0% DONE
+
+Current Completion: 16% (0.80 × 0.20 = 0.16)
+Remaining Work: 84%
+```
+
+---
+
+### 🎯 Typical Frontend Task Breakdown (Example: Login Page)
+
+**What Figma Gives You (20% - Already Done):**
+- Login page layout ✅
+- Email input field (looks pretty) ✅
+- Password input field (looks pretty) ✅
+- Login button (styled) ✅
+- Dummy text and placeholder ✅
+- **Time saved:** ~2 hours
+
+**What You Still Need to Build (80% - Todo):**
+
+**1. Redux Integration (2 hours):**
+- Create authSlice actions
+- Create login async thunk
+- Handle loading/success/error states
+- Update Redux store on login
+
+**2. API Integration (1 hour):**
+- Create auth.service.ts
+- Implement login API call
+- Handle API response
+- Extract JWT token
+
+**3. Form Validation (1.5 hours):**
+- Validate email format
+- Check required fields
+- Show validation errors
+- Disable submit if invalid
+
+**4. Business Logic (1 hour):**
+- Handle form submit
+- Store JWT in localStorage
+- Redirect to dashboard on success
+- Clear form on error
+
+**5. Error Handling (1 hour):**
+- Handle wrong credentials (401)
+- Handle network errors
+- Show error toast
+- Display field-level errors
+
+**6. Loading State (0.5 hours):**
+- Show spinner on button
+- Disable form during login
+- Show loading overlay
+
+**7. Testing (1 hour):**
+- Test valid login
+- Test invalid credentials
+- Test validation
+
+**Total Time for Login Page:**
+- Figma UI: 2 hours ✅ (Done)
+- Functionality: 8 hours ❌ (Todo)
+- **Login page is only 20% done!**
+
+**This pattern applies to EVERY page in the app!**
+
+---
+
+### 💡 Key Takeaway for Frontend Team
+
+**"Having the UI" is like having a car body without:**
+- Engine (Redux)
+- Transmission (API integration)
+- Steering (Navigation & routing)
+- Brakes (Error handling)
+- Fuel (Data from backend)
+- Dashboard instruments (Loading states)
+
+**It looks like a car, but you can't drive it!**
+
+Similarly:
+- Your app looks complete
+- But nothing actually works yet
+- You need to build all the "internal machinery"
+
+**Plan for 7-8 weeks of integration work, not 2-3 weeks!**
+
+---
+
+### 📋 Realistic Frontend Task List (With Current Status)
+
+| Category | Total Tasks | Figma Done | Still Todo | Time Needed |
+|----------|-------------|------------|------------|-------------|
+| **UI Components** | 40 components | 32 (80%) | 8 (20%) | 1-2 days |
+| **Redux Slices** | 8 slices | 0 (0%) | 8 (100%) | 2-3 days |
+| **API Services** | 9 service files | 0 (0%) | 9 (100%) | 1 day |
+| **Page Integration** | 15 pages | 0 (0%) | 15 (100%) | 12 days |
+| **Form Validations** | 20 forms | 0 (0%) | 20 (100%) | 4 days |
+| **Route Guards** | 12 routes | 0 (0%) | 12 (100%) | 1 day |
+| **Error Handling** | All pages | 0 (0%) | All (100%) | 3 days |
+| **Loading States** | All pages | 0 (0%) | All (100%) | 3 days |
+| **Testing** | 40 tests | 0 (0%) | 40 (100%) | 5 days |
+| **TOTAL** | | **16%** | **84%** | **~35 days** |
+
+---
+
+## Revised Sprint Structure (Week-Based Timeline)
+
+### 🔄 Sprint 0: Project Setup & Infrastructure (PARTIALLY COMPLETE)
+**Week:** 1
+**Backend Status:** 🔄 70% In Progress
+**Frontend Status:** 🔄 80% In Progress (UI extracted, NO functionality)
+**Goal:** Development environment ready with basic architecture
+
+**Frontend Reality:**
+- ✅ UI Components extracted from Figma: 80%
+- ✅ Mobile responsive: Done
+- ✅ Packages installed: Done
+- ❌ API integration: Not started
+- ❌ Redux connected: Not started
+- ❌ Forms functional: Not started
+
+---
+
+### 🔄 Sprint 1: SSO Authentication & User Management (CURRENT WEEK)
+**Week:** 2-3
+**Backend:** SSO integration, user sync, session management
+**Frontend:** SSO callback handler, protected routes, user profile
+**Goal:** Working SSO authentication system
+
+**Note:** No login/signup screens needed (SSO handles authentication externally)
+
+---
+
+### Sprint 2: Core Workflow Creation
+**Weeks:** 3-4 (2 weeks)
+**Backend:** Workflow APIs, approval hierarchy
+**Frontend:** Connecting wizard UI to backend
+**Goal:** Complete workflow creation flow
+
+---
+
+### Sprint 3: Approval & Workflow Actions
+**Weeks:** 5-6 (2 weeks)
+**Backend:** Approval logic, TAT tracking, notifications
+**Frontend:** Request management, approval/reject modals
+**Goal:** Full approval workflow operational
+
+---
+
+### Sprint 4: Documents & Work Notes
+**Week:** 7
+**Backend:** Document storage, work notes APIs
+**Frontend:** ✅ Work notes UI complete, connect to backend
+**Goal:** Collaboration features working
+
+---
+
+### Sprint 5: Dashboard & Reporting
+**Week:** 8
+**Backend:** Dashboard APIs, AI integration
+**Frontend:** Charts, statistics, filters
+**Goal:** Analytics and dashboards complete
+
+---
+
+### Sprint 6: Testing & Deployment
+**Weeks:** 9-10 (2 weeks)
+**Backend:** Testing, optimization, deployment
+**Frontend:** Testing, performance optimization, deployment
+**Goal:** Production-ready application
+
+---
+
+## 📖 Sprint Summaries
+
+**⚠️ For Detailed Code Examples, Step-by-Step Guides, and Implementation Details:**
+**See separate document:** `RE_Workflow_Detailed_Sprint_Guide.md`
+
+This section provides brief summaries only. The detailed guide contains:
+- Complete code examples for each feature
+- Step-by-step implementation instructions
+- Validation logic and error handling
+- API integration patterns
+- Redux state management examples
+- 100+ code snippets
+
+---
+
+### 🚀 Sprint 0: Project Setup & Infrastructure (Week 1)
+**Status:** Frontend 🔄 80% Complete (UI Only) | Backend 🔄 70% Complete
+
+#### What This Sprint Delivers:
+This sprint establishes the foundation for the entire project. It's about setting up the development environment, tools, and basic architecture.
+
+#### ⚠️ IMPORTANT: Figma UI Extraction Reality
+**What "80% UI Extracted" Actually Means:**
+- ✅ Visual components created (buttons, inputs, cards, modals)
+- ✅ Layout structure in place (header, sidebar, content areas)
+- ✅ Mobile responsive design (320px to 1920px)
+- ✅ Styling complete (colors, fonts, spacing)
+- ✅ Dummy data displayed (hardcoded text, placeholder images)
+
+**What is NOT Included in "UI Extraction":**
+- ❌ API integration (no backend calls)
+- ❌ Redux state management (no global state)
+- ❌ Form validations (fields don't validate input)
+- ❌ Error handling (no error messages)
+- ❌ Loading states (no spinners/skeletons)
+- ❌ Business logic (no calculations, no workflows)
+- ❌ Data persistence (nothing saves to database)
+- ❌ Authentication (login form visible but doesn't work)
+- ❌ Navigation guards (routes not protected)
+- ❌ Dynamic data (everything is static/hardcoded)
+
+**Real Effort Distribution:**
+- Figma UI Extraction: 20% of total frontend work
+- API Integration: 30% of total frontend work
+- State Management: 20% of total frontend work
+- Validations & Logic: 20% of total frontend work
+- Testing & Polish: 10% of total frontend work
+
+**Translation:**
+- 80% UI extracted = 16% of total frontend work done (0.80 × 0.20)
+- Still need: 84% of actual functionality to be built
+
+#### Backend Deliverables:
+
+**1. Repository & Environment Setup (BE-001)**
+- Create GitHub/GitLab repository with proper structure
+- Initialize Node.js 22 LTS project with TypeScript 5.7
+- Setup complete folder structure:
+ - `src/` for source code
+ - `src/controllers/`, `src/services/`, `src/models/`
+ - `src/middlewares/`, `src/routes/`, `src/utils/`
+ - `tests/` for unit and integration tests
+ - `database/` for schema and migrations
+- Configure `tsconfig.json` with strict TypeScript settings
+- Setup `.env.example` with all required environment variables
+- Configure `.gitignore`, `.eslintrc`, `.prettierrc`
+- Install all dependencies (Express, Sequelize, JWT, bcrypt, etc.)
+
+**2. Database Setup & Schema (BE-002) - CRITICAL**
+- Install and configure PostgreSQL 16
+- Create database `re_workflow_db`
+- Implement complete database schema with 15+ tables:
+ - `users` - User accounts and profiles
+ - `workflow_requests` - Main workflow data
+ - `approval_levels` - Approval hierarchy
+ - `participants` - Spectators and other participants
+ - `documents` - Document metadata
+ - `work_notes` - Chat/collaboration messages
+ - `activities` - Audit trail and activity log
+ - `notifications` - User notifications
+ - `tat_tracking` - TAT monitoring
+ - `conclusion_remarks` - AI-generated conclusions
+ - And more...
+- Create database triggers for auto-generation of request numbers
+- Create database views for reporting (active requests, notifications)
+- Add indexes for performance optimization
+- Insert initial system settings
+
+**3. Core Backend Configuration (BE-003)**
+- Setup Express.js application with TypeScript
+- Configure essential middleware:
+ - `helmet` - Security headers
+ - `cors` - Cross-origin resource sharing
+ - `express.json()` - JSON body parsing
+ - `morgan` - HTTP request logging
+- Setup Winston logger with file rotation (error.log, combined.log)
+- Create centralized error handling middleware
+- Setup health check endpoint (`/health`)
+- Configure graceful shutdown handlers
+
+**4. Sequelize ORM Setup (BE-004)**
+- Configure Sequelize connection to PostgreSQL
+- Create TypeScript models for all database tables:
+ - User model with associations
+ - WorkflowRequest model with relationships
+ - ApprovalLevel, Participant, Document models
+ - Work notes, activities, notifications models
+- Define all model associations (one-to-many, many-to-many)
+- Test database connectivity
+- Setup model synchronization for development
+
+#### Frontend Deliverables:
+
+**1. Current Status of Frontend Tasks (FE-001 to FE-007)**
+
+**What's Actually Done (80%):**
+- ✅ Repository with React 19 + Vite 6 setup
+- ✅ TypeScript 5.7 configuration
+- ✅ Material-UI 6.3 theme configuration
+- ✅ All dependencies installed and resolved
+- ✅ UI components extracted from Figma (80%):
+ - Buttons, inputs, dropdowns, modals, cards, tables
+ - Header, sidebar, footer layouts
+ - All pages visually complete
+ - Mobile responsive (320px - 1920px)
+ - Dummy data displayed everywhere
+
+**What's NOT Done Yet (0%):**
+- ❌ **Redux Toolkit 2.5 store:** Need to create all slices
+ - authSlice (user, token, login state)
+ - workflowSlice (requests, current workflow)
+ - approvalSlice (approval levels, status)
+ - notificationSlice (notifications, unread count)
+ - documentSlice, workNoteSlice, participantSlice, uiSlice
+
+- ❌ **Axios API service layer:** Need to configure
+ - Create Axios instance with base URL
+ - Setup request interceptors (add JWT token)
+ - Setup response interceptors (error handling)
+ - Handle token refresh logic
+ - Handle 401 unauthorized redirects
+
+- ❌ **React Router DOM 7.1:** Need to implement
+ - Route protection (PrivateRoute/PublicRoute)
+ - Auth guards (redirect if not logged in)
+ - Route-based code splitting
+
+- ❌ **Form Validations:** None implemented
+ - No field validation (email format, required fields)
+ - No error messages shown
+ - Forms accept any input
+
+- ❌ **API Integration:** Zero integration
+ - Forms don't submit data
+ - Lists show dummy data
+ - No backend calls made
+ - No loading states
+ - No error handling
+
+**Remaining Work for Sprint 0:**
+1. Complete last 20% of UI extraction (1-2 days)
+2. Setup Redux store with all slices (2-3 days)
+3. Configure Axios service layer (1 day)
+4. Implement route guards (1 day)
+5. Basic form validations (2 days)
+
+**Estimated Time to Complete Sprint 0:** 1 week more
+
+#### What You Can Use After Sprint 0 (Actually Completes):
+- ✅ Running backend server with database connection
+- ✅ Frontend UI with all visual components
+- ✅ Redux store configured and working
+- ✅ API service layer ready to make calls
+- ✅ Protected routes working
+- ✅ Forms with basic validation
+- ❌ Still no API integration (that's Sprint 1 onwards)
+
+---
+
+### 🔐 Sprint 1: SSO Authentication & User Management (Week 2-3)
+**Status:** ⏳ Awaiting SSO Details | **Focus:** SSO integration (no login/signup screens)
+
+#### What This Sprint Delivers:
+SSO-based authentication with Royal Enfield SSO Bridge. Users authenticate via company SSO (no login/signup screens needed).
+
+#### Key Implementation Points:
+
+**Backend (BE-101, BE-102: 2 days):**
+- Configure SSO Bridge OAuth2 integration
+- Handle SSO callback and token exchange
+- Auto-sync users from Active Directory to local database
+- Generate JWT tokens for app sessions
+- User search API (for @tagging in workflows)
+- User profile update API (phone/picture only - other fields from AD)
+
+**Frontend (FE-101, FE-102, FE-103: 2.5 days):**
+- SSO callback handler page (receives token from SSO)
+- Protected route guards (redirect to SSO if not authenticated)
+- "Login with SSO" button (redirects to SSO Bridge)
+- Logout functionality (clears session + SSO logout)
+- User profile display in header (from Active Directory data)
+- Limited profile editing (phone number and profile picture only)
+
+**What You Can Do After Sprint 1:**
+- ✅ Users can login via SSO
+- ✅ Users auto-synced from Active Directory
+- ✅ Protected routes working (redirect to SSO if not logged in)
+- ✅ User profile displayed in header
+- ✅ Logout functionality
+- ✅ JWT session management
+
+**⚠️ Important:** No login/signup/password reset screens needed! SSO handles all authentication.
+
+**📖 For Detailed Implementation:** See `RE_Workflow_Detailed_Sprint_Guide.md`
+
+---
+
+### 📝 Sprint 2: Core Workflow Creation (Weeks 3-4)
+**Status:** ⏳ Upcoming | **Focus:** 6-step workflow creation wizard
+
+#### What This Sprint Delivers:
+Complete workflow creation wizard: Basic Info → Approval Hierarchy → Participants → Documents → Review → Submit
+
+#### Key Features:
+- **Step 1:** Template selection (Custom Request)
+- **Step 2:** Request title, rich text description, priority (Standard/Express)
+- **Step 3:** Dynamic approval levels (up to 10), @mention user search, TAT calculation
+- **Step 4:** Add spectators with @mention
+- **Step 5:** Document upload (drag-drop, 10MB max), Google Docs/Sheets links
+- **Step 6:** Review summary, save draft or submit
+
+**Backend APIs (BE-201 to BE-204: 1 week):**
+- Create/update/delete workflow
+- Add approval levels
+- Add participants
+- Upload documents
+- Submit workflow
+- List and filter workflows
+
+**Frontend Integration (FE-201 to FE-208: 1.5 weeks):**
+- Connect wizard steps to Redux
+- Real-time TAT calculation
+- User search for approvers/spectators
+- File upload with progress
+- Multi-step API submission flow
+- Form validations
+
+**Most Complex:** Approval workflow builder (dynamic levels, TAT calculation, user search)
+
+**📖 For Detailed Code Examples:** See `RE_Workflow_Detailed_Sprint_Guide.md` - Sprint 2 section
+
+---
+
+### ✅ Sprint 3: Approval & Workflow Actions (Weeks 5-6)
+**Status:** ⏳ Upcoming | **Focus:** Approve/reject requests, TAT tracking, notifications
+
+#### What This Sprint Delivers:
+- Request management pages (My Requests, Open Requests, Closed Requests)
+- Request detail page with tabs (Overview, Workflow, Documents, Activity)
+- Approve/reject modals with mandatory comments
+- TAT monitoring cron job (runs every 30 minutes)
+- Real-time notifications (bell icon with unread count)
+- Work notes integration with @mentions
+
+**Backend APIs (BE-301 to BE-303: 1.5 weeks):**
+- Approve/reject workflow endpoints
+- TAT calculation service (working days vs calendar days)
+- TAT monitoring cron job
+- Notification system (8 notification types)
+- Activity logging for all actions
+
+**Frontend Integration (FE-301 to FE-309: 2 weeks):**
+- Request listing pages with search/filter/pagination
+- Request detail page with 4 tabs
+- TAT progress bars (color-coded: green/yellow/red)
+- Approval timeline visualization
+- Notification bell with dropdown
+- Approve/reject modals with validation
+
+**Most Complex:** TAT calculation logic (working days exclude weekends)
+
+**📖 For Detailed Code Examples:** See `RE_Workflow_Detailed_Sprint_Guide.md` - Sprint 3 section
+
+**2. Approval Hierarchy Management (BE-202, FE-204)**
+
+**Backend APIs:**
+- **POST /api/v1/workflows/:id/approvals** - Add approval level
+ - Accept level number, approver user ID, TAT
+ - Validate max 10 levels
+ - Ensure level numbers are sequential (1, 2, 3...)
+ - Calculate TAT dates based on priority
+
+- **GET /api/v1/workflows/:id/approvals** - Get approval hierarchy
+ - Return all levels with approver details
+ - Show current level status
+
+- **GET /api/v1/workflows/:id/approvals/current** - Get active level
+ - Return currently active approval level
+ - Show who needs to approve now
+
+**Frontend Approval Workflow Builder (FE-204):**
+
+This is the most complex screen in the wizard!
+
+**Dynamic Level Creation:**
+- Start with Level 1 (minimum 1 level required)
+- Add Level button to create additional levels
+- Maximum 10 approval levels allowed
+- Each level can be removed (except if only 1 level)
+
+**For Each Approval Level:**
+- **Level Number:** Auto-generated (Level 1, Level 2, etc.)
+
+- **Level Name/Title:** (Optional)
+ - Text input for descriptive name
+ - Example: "Department Head Approval", "Finance Review", "CEO Final Approval"
+
+- **Approver Selection:**
+ - **@mention search input** (like Slack/Teams)
+ - Type "@" or start typing name
+ - Dropdown appears showing matching users
+ - Shows user details:
+ - Full name
+ - Email address
+ - Department
+ - Profile picture
+ - Select user from dropdown
+ - Selected user appears as tag/chip
+ - Can clear and select different user
+ - Required field (must select an approver)
+
+- **TAT (Turnaround Time):**
+ - Number input for TAT value
+ - Dropdown to select unit (Hours or Days)
+ - Options: 1-720 hours OR 1-30 days
+ - Required field
+ - Example: "48 hours" or "2 days"
+
+- **Add/Remove Level Actions:**
+ - "Add Level" button (if less than 10 levels)
+ - "Remove Level" button (if more than 1 level)
+ - Confirm before removing level
+
+**Real-Time TAT Calculation:**
+- As user adds levels and TAT values:
+ - Automatically sum all TAT values
+ - Show total TAT prominently at top
+ - Example: "Total TAT: 96 hours (4 days)"
+ - Update in real-time as user modifies levels
+
+**Approval Flow Summary Panel:**
+- Read-only visualization showing:
+ - Complete approval hierarchy
+ - All levels in order (1 → 2 → 3...)
+ - Approver name for each level
+ - TAT for each level
+ - Total TAT at bottom
+- Updates automatically as user adds/modifies levels
+
+**TAT Summary Widget:**
+- Visual breakdown:
+ - Total hours and days
+ - Expected completion date (estimated)
+ - Working days vs calendar days indicator
+- Color-coded based on urgency
+
+**Validation:**
+- At least 1 approval level required
+- Each level must have an approver selected
+- Each level must have valid TAT (> 0)
+- No duplicate approvers allowed (same person can't be at multiple levels)
+
+**WEEK 4: Participants, Documents & Submission**
+
+**3. Participant Management (BE-203, FE-205)**
+
+**Backend APIs:**
+- **POST /api/v1/workflows/:id/participants** - Add spectator
+ - Accept user ID and participant type
+ - Validate user exists
+ - Set permissions (can view, can comment)
+
+- **GET /api/v1/workflows/:id/participants** - Get all participants
+ - Return initiator, approvers, spectators
+
+- **DELETE /api/v1/workflows/:id/participants/:id** - Remove spectator
+ - Only spectators can be removed (not approvers)
+
+**Frontend Participants & Access (FE-205):**
+
+**Add Spectators Section:**
+- **What are Spectators?**
+ - View-only participants (like CC in email)
+ - Can see workflow progress
+ - Can add comments in work notes
+ - Cannot approve or reject
+ - Receive notifications about workflow
+
+- **@mention Search (same as approver selection):**
+ - Type "@" or start typing name
+ - Search users by name/email
+ - Select multiple spectators
+ - Show selected spectators as chips/tags
+
+- **Spectator List:**
+ - Display all added spectators
+ - Show user name, email, department
+ - Remove button for each spectator
+
+- **Permissions Display:**
+ - Clear message: "Spectators can view and comment but cannot approve"
+ - Visual icon showing permissions
+
+**4. Document Upload (BE-201, FE-206)**
+
+**Backend APIs:**
+- **POST /api/v1/workflows/:id/documents** - Upload document
+ - Accept multipart/form-data
+ - Validate file type (PDF, Word, Excel, PPT, images)
+ - Validate file size (max 10MB per file)
+ - Upload to cloud storage (GCP or local for dev)
+ - Store metadata in database
+ - Return document ID and URL
+
+- **GET /api/v1/workflows/:id/documents** - Get all documents
+ - Return list of documents with metadata
+
+**Frontend Documents & Attachments (FE-206):**
+
+**File Upload Component:**
+- **Drag-and-Drop Zone:**
+ - Large drop area with icon
+ - "Drag files here or click to browse"
+ - Highlight area when files dragged over
+
+- **Browse Files Button:**
+ - Opens file picker dialog
+ - Can select multiple files at once
+
+- **Supported File Types:**
+ - PDF documents
+ - Word (DOC, DOCX)
+ - Excel (XLS, XLSX)
+ - PowerPoint (PPT, PPTX)
+ - Images (JPG, PNG, GIF)
+ - Show supported formats below upload area
+
+- **File Size Limit:**
+ - Maximum 10MB per file
+ - Show error if file too large
+ - Suggest compressing large files
+
+**Uploaded Files List:**
+- Display each file as a card/row showing:
+ - File icon (based on file type)
+ - File name
+ - File size (KB/MB)
+ - Upload progress bar (while uploading)
+ - Remove button (X icon)
+
+- **File Actions:**
+ - Preview icon (for PDF and images)
+ - Download icon
+ - Delete icon
+
+**Google Docs/Sheets Integration:**
+- **Google Docs Link:**
+ - Text input for Google Docs URL
+ - Validate URL format
+ - Show link icon when valid URL entered
+
+- **Google Sheets Link:**
+ - Text input for Google Sheets URL
+ - Validate URL format
+ - Show link icon when valid URL entered
+
+- Display added links with:
+ - Document/Sheet icon
+ - Link title (extracted from URL or user-provided)
+ - Open link button
+ - Remove button
+
+**5. Review & Submit (BE-201, FE-207, FE-208)**
+
+**Frontend Review & Submit (FE-207):**
+
+**Comprehensive Summary Display:**
+
+**Section 1: Request Overview**
+- Request Type: Custom Request
+- Priority: Standard / Express (with badge)
+- Request Title: (user-entered title)
+
+**Section 2: Basic Information**
+- Detailed Description (formatted with HTML)
+- Priority Level with explanation
+- Edit button → goes back to Step 2
+
+**Section 3: Approval Workflow**
+- Visual hierarchy showing:
+ - All approval levels in order
+ - Approver name and email for each level
+ - TAT for each level
+ - Total TAT calculation
+- Edit button → goes back to Step 3
+
+**Section 4: Participants & Access**
+- List of all spectators with names
+- Participant count
+- Edit button → goes back to Step 4
+
+**Section 5: Documents & Attachments**
+- List of uploaded files (name, size, type)
+- List of Google Docs/Sheets links
+- Document count
+- Edit button → goes back to Step 5
+
+**Action Buttons:**
+
+**Save as Draft:**
+- Saves workflow without submitting
+- User can edit later
+- Stays in "Draft" status
+- Redirects to "My Requests"
+
+**Submit Request:**
+- Final submission (cannot be edited after)
+- Triggers approval workflow
+- Changes status from "Draft" to "Pending"
+- Sends notification to first approver
+- Starts TAT tracking
+- Redirects to request detail page
+
+**Backend Submission Logic (BE-201, FE-208):**
+
+**API Integration Flow:**
+1. **POST /api/v1/workflows** - Create draft workflow
+2. **POST /api/v1/workflows/:id/documents** (multiple) - Upload documents
+3. **POST /api/v1/workflows/:id/approvals** (multiple) - Create approval levels
+4. **POST /api/v1/workflows/:id/participants** (multiple) - Add spectators
+5. **PATCH /api/v1/workflows/:id/submit** - Submit workflow
+
+**Submission Actions:**
+- Update workflow status: DRAFT → PENDING
+- Set submission_date to current timestamp
+- Calculate and set tat_start_date and tat_end_date
+- Update first approval level status to IN_PROGRESS
+- Create activity log entry: "Request submitted"
+- Send notifications:
+ - To first approver: "New workflow pending your approval"
+ - To all spectators: "You've been added to a workflow request"
+- Return complete workflow data
+
+**6. Workflow Listing & Filtering (BE-204)**
+
+**Backend APIs:**
+- **GET /api/v1/workflows** - Get all workflows with filters
+ - Query parameters: status, priority, page, limit, sortBy, sortOrder
+
+- **GET /api/v1/workflows/my-requests** - User's created workflows
+ - Return workflows where user is initiator
+
+- **GET /api/v1/workflows/open** - Open/pending workflows
+ - Return workflows in PENDING or IN_PROGRESS status
+ - Where user is approver or spectator
+
+- **GET /api/v1/workflows/closed** - Completed workflows
+ - Return workflows in APPROVED, REJECTED, or CLOSED status
+
+- **GET /api/v1/workflows/assigned-to-me** - Workflows pending user's action
+ - Return workflows where user is current level approver
+
+**Filtering & Search Features:**
+- Filter by status (Draft, Pending, Approved, Rejected, Closed)
+- Filter by priority (Standard, Express)
+- Filter by date range (submission date)
+- Search by title or description (full-text search)
+- Sort by date, priority, status
+- Pagination (20 requests per page)
+
+#### What You Can Do After Sprint 2:
+- ✅ Create custom workflow requests
+- ✅ Define multi-level approval hierarchy (up to 10 levels)
+- ✅ Set TAT for each approval level
+- ✅ Add spectators for transparency
+- ✅ Upload supporting documents
+- ✅ Link Google Docs/Sheets
+- ✅ Save workflows as draft
+- ✅ Submit workflows for approval
+- ✅ View all created workflows (My Requests)
+- ✅ Search and filter workflows
+
+#### Technical Complexity:
+- **Frontend:** Dynamic form with 6 steps, wizard navigation, real-time validation
+- **Backend:** Complex data relationships, file upload, TAT calculation logic
+- **Integration:** Multi-step API calls, error handling at each step
+
+---
+
+### ✅ Sprint 3: Approval & Workflow Actions (Weeks 5-6)
+**Status:** ⏳ Upcoming | **Focus:** Enable approvers to act on workflows, track TAT, send notifications
+
+#### What This Sprint Delivers:
+Complete approval workflow with ability to approve/reject requests, TAT monitoring with alerts, real-time notifications, and comprehensive request management pages.
+
+#### Detailed Functionality Breakdown:
+
+**WEEK 5: Approval Actions & TAT Tracking**
+
+**1. Workflow Approval Process (BE-301)**
+
+**Backend Approval Logic:**
+
+**PATCH /api/v1/workflows/:id/approvals/:levelId/approve** - Approve Request
+
+**Pre-Approval Validations:**
+- Verify user is the assigned approver for this level
+- Verify workflow is in PENDING or IN_PROGRESS status
+- Verify current level matches the level being approved
+- Verify level is not already approved
+- Verify comments field is provided (mandatory)
+
+**Approval Actions:**
+1. Update approval level:
+ - Set status to APPROVED
+ - Set action_date to current timestamp
+ - Set level_end_time to current timestamp
+ - Store approver comments
+
+2. Stop TAT for current level:
+ - Calculate elapsed time for this level
+ - Update tat_tracking table
+ - Mark level as completed within/beyond TAT
+
+3. Move to next level OR close if final:
+ - **If NOT final approver:**
+ - Increment workflow current_level (e.g., 1 → 2)
+ - Update workflow status to IN_PROGRESS
+ - Update next level status to IN_PROGRESS
+ - Set level_start_time for next level
+ - Start TAT tracking for next level
+ - Send notification to next approver
+ - **If final approver:**
+ - Update workflow status to APPROVED
+ - Set closure_date to current timestamp
+ - Trigger AI conclusion generation
+ - Send notification to initiator: "Your request has been approved"
+ - Send notification to all spectators
+
+4. Create activity log:
+ - Activity type: APPROVAL_ACTION
+ - Description: "Level X approved by [Approver Name]"
+ - Store comments in metadata
+ - Timestamp the action
+
+**PATCH /api/v1/workflows/:id/approvals/:levelId/reject** - Reject Request
+
+**Pre-Rejection Validations:**
+- Same as approval validations
+- Comments/rejection reason is mandatory
+
+**Rejection Actions:**
+1. Update approval level:
+ - Set status to REJECTED
+ - Set action_date to current timestamp
+ - Store rejection comments (mandatory)
+
+2. Stop all TAT tracking:
+ - Mark current level as breached/stopped
+ - Cancel pending levels
+
+3. Close workflow:
+ - Update workflow status to REJECTED
+ - Set closure_date to current timestamp
+ - Mark as closed
+
+4. Send notifications:
+ - To initiator: "Your request has been rejected by [Approver Name]"
+ - Include rejection reason in notification
+ - To all spectators: notification of rejection
+
+5. Create activity log:
+ - Activity type: REJECTION_ACTION
+ - Description: "Request rejected by [Approver Name] at Level X"
+ - Store rejection reason in metadata
+
+**Frontend Approval Actions (FE-307):**
+
+**Approve Request Modal:**
+- **Trigger:** Click "Approve Request" button in request detail
+- **Modal Content:**
+ - Request ID and Title display
+ - Current approval level info
+ - "Approval Confirmation" heading
+ - **Comments & Remarks field:**
+ - Multi-line text area
+ - Placeholder: "Add your approval comments..."
+ - Mandatory field (cannot submit without comments)
+ - Character limit: 500 characters
+ - Character counter showing remaining chars
+ - Validation: "Comments are required"
+ - **Contextual message:**
+ - "Your approval will move this request to the next level" OR
+ - "As final approver, your approval will close this request"
+- **Action Buttons:**
+ - "Approve Request" button (primary/green)
+ - Disabled until comments entered
+ - Shows loading spinner during API call
+ - "Cancel" button (secondary)
+ - Closes modal without action
+
+**Reject Request Modal:**
+- **Trigger:** Click "Reject Request" button in request detail
+- **Modal Content:**
+ - Request ID and Title display
+ - Current approval level info
+ - "Rejection Confirmation" heading (red/warning color)
+ - **Rejection Reason field:**
+ - Multi-line text area
+ - Placeholder: "Please provide detailed reason for rejection..."
+ - Mandatory field (cannot submit without reason)
+ - Character limit: 500 characters
+ - Character counter
+ - Validation: "Rejection reason is required"
+ - **Warning message:**
+ - "Rejecting will close this request immediately"
+ - "This action cannot be undone"
+ - **Rejection Guidelines:**
+ - "Please provide constructive feedback"
+ - "Be specific about what needs to be changed"
+- **Action Buttons:**
+ - "Reject Request" button (danger/red)
+ - Disabled until reason entered
+ - Shows loading spinner
+ - Confirmation prompt: "Are you sure?"
+ - "Cancel" button
+ - Closes modal without action
+
+**After Action Taken:**
+- Close modal automatically
+- Show success notification:
+ - "Request approved successfully" OR
+ - "Request rejected"
+- Refresh request detail page to show updated status
+- Scroll to activity timeline to show new activity
+- Update TAT progress bar
+- Update approval timeline visual
+
+**2. TAT Tracking & Monitoring (BE-302)**
+
+**Backend TAT Service:**
+
+**TAT Calculation Logic:**
+
+**For Standard Priority (Working Days):**
+- Calculate elapsed time excluding weekends
+- Exclude holidays (if holiday list configured)
+- Example: 48 hours TAT starting Friday 3 PM
+ - Friday 3 PM - 5 PM = 2 hours
+ - Monday 9 AM - 5 PM = 8 hours
+ - Tuesday 9 AM - 5 PM = 8 hours
+ - Wednesday 9 AM - 5 PM = 8 hours
+ - Thursday 9 AM - 5 PM = 8 hours
+ - Friday 9 AM - 3 PM = 6 hours
+ - Total = 40 hours (exclude weekend)
+
+**For Express Priority (Calendar Days):**
+- Calculate elapsed time including weekends
+- Include all days (7 days/week, 24 hours/day)
+- Example: 48 hours TAT starting Friday 3 PM
+ - Deadline: Sunday 3 PM (48 hours later)
+
+**TAT Status Determination:**
+- **ON_TRACK (Green):**
+ - TAT usage < 50%
+ - Example: 10 hours used out of 48 hours (20%)
+
+- **APPROACHING (Yellow/Warning):**
+ - TAT usage between 50% and 80%
+ - Example: 36 hours used out of 48 hours (75%)
+ - Trigger reminder notification
+
+- **BREACHED (Red/Critical):**
+ - TAT usage >= 100%
+ - Example: 50 hours used out of 48 hours (104%)
+ - Trigger breach alert notification
+
+**TAT Monitoring Cron Job:**
+- **Schedule:** Runs every 30 minutes
+- **Process:**
+ 1. Get all active workflows (PENDING, IN_PROGRESS)
+ 2. For each active workflow:
+ - Get current approval level
+ - Calculate elapsed time since level_start_time
+ - Calculate percentage TAT used
+ - Determine TAT status
+ - Update tat_tracking table
+ 3. Check for threshold crossings:
+ - If TAT usage crosses 50%: Create alert (optional)
+ - If TAT usage crosses 80%: Send reminder notification
+ - If TAT usage crosses 100%: Send breach notification
+ 4. Send notifications to approvers and initiators
+ 5. Log TAT status changes in activity timeline
+
+**TAT APIs:**
+- **GET /api/v1/workflows/:id/tat** - Get TAT status
+ - Return current level TAT info
+ - Elapsed time, remaining time, percentage used
+ - TAT status (ON_TRACK, APPROACHING, BREACHED)
+ - Expected completion date
+
+- **GET /api/v1/tat/breached** - Get breached requests
+ - Return all workflows with breached TAT
+ - For admin dashboard and monitoring
+
+- **GET /api/v1/tat/approaching** - Get approaching deadlines
+ - Return workflows with TAT usage > 80%
+ - For proactive monitoring
+
+**Frontend TAT Display (FE-303, FE-304):**
+
+**TAT Progress Bar Component:**
+- **Visual Progress Bar:**
+ - Horizontal bar showing TAT progress
+ - Fill color based on status:
+ - Green: 0-50% (ON_TRACK)
+ - Yellow: 50-80% (APPROACHING)
+ - Orange: 80-99% (HIGH RISK)
+ - Red: 100%+ (BREACHED)
+ - Animated fill effect
+ - Percentage label inside or above bar
+
+- **TAT Status Text:**
+ - Display current status with icon
+ - "On Track" (green checkmark icon)
+ - "Approaching Deadline" (yellow warning icon)
+ - "TAT Breached!" (red exclamation icon)
+
+- **Time Information:**
+ - Elapsed time: "24 hours elapsed"
+ - Remaining time: "24 hours remaining" OR "8 hours overdue"
+ - Total TAT: "48 hours total"
+ - Expected completion: "Expected by Nov 15, 3:00 PM"
+
+- **Per-Level TAT Display (Workflow Tab):**
+ - For each approval level, show:
+ - Level TAT allocation (e.g., "48 hours")
+ - Actual time taken
+ - Status indicator (completed within/beyond TAT)
+ - Progress bar for active level
+ - Checkmark for completed levels
+
+**WEEK 6: Notifications & Request Management**
+
+**3. Notification System (BE-303)**
+
+**Backend Notification Service:**
+
+**Notification Types & Triggers:**
+
+**1. Workflow Assignment Notifications:**
+- **When:** Workflow submitted, moves to new level
+- **To:** Assigned approver
+- **Title:** "New Approval Request Assigned"
+- **Message:** "You have a new workflow request (REQ-2025-00001) pending your approval from [Initiator Name]"
+- **Action URL:** Link to request detail page
+- **Priority:** NORMAL
+
+**2. Approval/Rejection Notifications:**
+- **When:** Request approved or rejected
+- **To:** Workflow initiator
+- **Title:** "Workflow Request [Approved/Rejected]"
+- **Message:** "Your request (REQ-2025-00001) has been [approved/rejected] by [Approver Name]"
+- **Action URL:** Link to request detail page
+- **Priority:** HIGH
+
+**3. TAT Warning Notifications (80% threshold):**
+- **When:** TAT usage reaches 80%
+- **To:** Current approver + initiator
+- **Title:** "TAT Warning: Action Required"
+- **Message:** "Request (REQ-2025-00001) has used 80% of TAT. Please review urgently."
+- **Action URL:** Link to request detail page
+- **Priority:** HIGH
+
+**4. TAT Breach Notifications (100%+):**
+- **When:** TAT exceeded
+- **To:** Current approver + initiator + spectators
+- **Title:** "TAT BREACHED!"
+- **Message:** "Request (REQ-2025-00001) has exceeded TAT deadline"
+- **Action URL:** Link to request detail page
+- **Priority:** URGENT
+
+**5. Work Note Mention Notifications:**
+- **When:** User @mentioned in work note
+- **To:** Mentioned user
+- **Title:** "[User Name] mentioned you"
+- **Message:** "[User Name] mentioned you in a work note: '[Message preview...]'"
+- **Action URL:** Link to work notes section
+- **Priority:** NORMAL
+
+**6. Document Upload Notifications:**
+- **When:** New document uploaded
+- **To:** All participants (initiator, approvers, spectators)
+- **Title:** "New Document Added"
+- **Message:** "[User Name] uploaded a document: [filename]"
+- **Action URL:** Link to documents tab
+- **Priority:** LOW
+
+**7. Spectator Added Notifications:**
+- **When:** User added as spectator
+- **To:** Added spectator
+- **Title:** "You've been added to a workflow"
+- **Message:** "[Initiator Name] added you as spectator to request (REQ-2025-00001)"
+- **Action URL:** Link to request detail page
+- **Priority:** NORMAL
+
+**8. Request Closure Notifications:**
+- **When:** Workflow closed (approved or rejected)
+- **To:** All participants (initiator, approvers, spectators)
+- **Title:** "Workflow Request Closed"
+- **Message:** "Request (REQ-2025-00001) has been closed"
+- **Action URL:** Link to request detail page
+- **Priority:** NORMAL
+
+**Notification APIs:**
+- **GET /api/v1/notifications** - Get user notifications
+ - Query params: page, limit, is_read filter
+ - Return paginated notifications
+ - Sort by created_at DESC (newest first)
+
+- **GET /api/v1/notifications/unread** - Get unread notifications
+ - Return only unread notifications
+ - Include unread count
+
+- **PATCH /api/v1/notifications/:id/read** - Mark as read
+ - Update is_read to true
+ - Set read_at timestamp
+
+- **PATCH /api/v1/notifications/mark-all-read** - Mark all as read
+ - Update all user's unread notifications
+
+- **DELETE /api/v1/notifications/:id** - Delete notification
+ - Soft delete or hard delete
+
+**Frontend Notification System (FE-401):**
+
+**Notification Bell Icon (Header):**
+- **Bell icon in top-right corner**
+- **Unread count badge:**
+ - Red circle with number
+ - Shows count of unread notifications
+ - Updates in real-time
+ - Pulsing animation for new notifications
+
+- **Click Behavior:**
+ - Opens dropdown panel below icon
+ - Shows recent notifications
+ - Marks clicked notifications as read
+
+**Notification Dropdown Panel:**
+- **Header:**
+ - "Notifications" title
+ - "Mark All as Read" button
+ - Close button (X)
+
+- **Notification List (Recent 10):**
+ - Each notification shows:
+ - Type icon (color-coded)
+ - Title (bold)
+ - Message text (truncated)
+ - Timestamp (relative: "2 hours ago")
+ - Unread indicator (blue dot)
+ - Read notifications are grayed out
+
+- **Click Notification:**
+ - Mark as read automatically
+ - Navigate to action URL (request detail page)
+ - Close dropdown
+
+- **Footer:**
+ - "View All Notifications" link
+ - Opens full notifications page
+
+- **Empty State:**
+ - Shows when no notifications
+ - Icon + "No notifications"
+
+**Notification Polling:**
+- **Auto-refresh every 30 seconds**
+- Fetch new notifications from API
+- Update unread count in header
+- Show toast notification for high-priority alerts
+- Play sound (optional) for urgent notifications
+
+**Toast Notifications (High Priority):**
+- **For urgent notifications:**
+ - Small popup in top-right corner
+ - Auto-dismiss after 5 seconds
+ - Click to go to related request
+ - Multiple toasts stack vertically
+
+**4. Request Management Pages (FE-301, FE-302, FE-303)**
+
+**My Requests Page (FE-301):**
+
+**Page Layout:**
+- **Tab Navigation at Top:**
+ - Total (show all requests)
+ - In Progress (pending + in_progress status)
+ - Approved (approved status)
+ - Rejected (rejected status)
+ - Draft (draft status)
+ - Each tab shows count badge
+
+- **Search & Filter Bar:**
+ - Search input (search by title or request number)
+ - Priority filter dropdown (All, Standard, Express)
+ - Date range filter (submission date)
+ - Sort dropdown (Date: Newest, Date: Oldest, Priority)
+ - "Clear Filters" button
+
+- **Request Cards Grid:**
+ - Display requests as cards (3 per row on desktop)
+ - Each card shows:
+ - **Request Number** (REQ-2025-00001) - top-left
+ - **Title** (bold, large) - truncate if too long
+ - **Priority Badge** - Express (red) / Standard (blue)
+ - **Status Badge** - Color-coded:
+ - Draft: Gray
+ - Pending: Yellow
+ - In Progress: Blue
+ - Approved: Green
+ - Rejected: Red
+ - Closed: Dark Gray
+ - **Current Approval Level** - "Level 2 of 5"
+ - **Current Approver** - Name and designation
+ - **Submission Date** - "Submitted on Nov 10, 2025"
+ - **Estimated Completion** - "Expected by Nov 15"
+ - **TAT Progress Bar** (for active requests)
+ - **Quick Actions:**
+ - View Details button
+ - Edit button (only for drafts)
+ - Delete button (only for drafts)
+
+- **Pagination:**
+ - Show 20 requests per page
+ - Page numbers at bottom
+ - Previous/Next buttons
+ - "Go to page" input
+
+**Click on Card:**
+- Navigate to Request Detail page
+- Pass request ID in URL
+
+**Open Requests Page (FE-302):**
+- **Similar to My Requests but shows:**
+ - Requests where user is approver (pending action)
+ - Requests where user is spectator
+ - Requests in PENDING or IN_PROGRESS status
+- **Highlight requests needing user's action**
+- **Same layout as My Requests**
+
+**Closed Requests Page (FE-302):**
+- **Shows requests with status:**
+ - APPROVED
+ - REJECTED
+ - CLOSED
+- **Additional Info:**
+ - Closure date
+ - Final approver name
+ - Conclusion remark preview (first 100 chars)
+- **Same layout as My Requests**
+
+**5. Request Detail Page (FE-303 to FE-306)**
+
+**Request Detail Overview Tab (FE-303):**
+
+**Page Layout:**
+
+**Top Section:**
+- **Request Header:**
+ - Request Number (large, bold)
+ - Status Badge (prominent)
+ - Priority Badge
+ - Created Date | Submitted Date
+
+- **TAT Progress Section:**
+ - Large TAT progress bar (full width)
+ - Status indicator (On Track / Approaching / Breached)
+ - Time information (elapsed, remaining, total)
+ - Expected completion date
+
+- **Tab Navigation:**
+ - Overview (active by default)
+ - Workflow
+ - Documents
+ - Activity
+ - Each tab shows relevant counts
+
+**Left Content Area (Main):**
+
+**Request Information Card:**
+- **Title:** Request title (editable if draft)
+- **Description:**
+ - Full description with HTML formatting
+ - Expand/collapse if very long
+ - Tables, lists, links preserved
+- **Initiator Information:**
+ - Profile picture
+ - Name and designation
+ - Department
+ - Email address
+ - Phone number
+ - "Contact" button
+- **Basic Details:**
+ - Request Type: Custom Request
+ - Priority Level with explanation
+ - Template Type (if applicable)
+ - Submission Date
+ - Last Updated Date
+
+**Right Sidebar:**
+
+**Spectators Panel:**
+- **Title:** "Spectators" with count
+- **List of spectators:**
+ - Profile picture (small)
+ - Name
+ - Department
+ - Can scroll if many spectators
+- **Add Spectator button** (if user has permission)
+
+**Quick Actions Panel** (shown only to approvers of current level):
+- **Action Buttons:**
+ - "Add Work Note" (primary)
+ - "Add Approver" (secondary)
+ - "Add Spectator" (secondary)
+ - "Approve Request" (success/green, large)
+ - "Reject Request" (danger/red, large)
+- **Buttons enabled/disabled based on:**
+ - User role (approver, initiator, spectator)
+ - Current workflow status
+ - User's turn to approve
+
+**Workflow Tab (FE-304):**
+
+**Approval Timeline Visualization:**
+
+**Vertical Timeline (Top to Bottom):**
+- **For Each Approval Level:**
+
+ **Level Card:**
+ - **Level Number & Name** - "Level 1: Department Head Approval"
+
+ - **Approver Info:**
+ - Profile picture
+ - Name and designation
+ - Department
+ - Email address
+
+ - **TAT Allocation:**
+ - Allocated TAT: "48 hours"
+ - TAT days: "2 days" (if applicable)
+
+ - **Status Indicator:**
+ - **PENDING:** Gray circle with clock icon
+ - **IN_PROGRESS:** Blue circle with spinner icon
+ - **APPROVED:** Green circle with checkmark icon
+ - **REJECTED:** Red circle with X icon
+ - **SKIPPED:** Yellow circle with forward icon
+
+ - **Time Tracking:**
+ - Level start time: "Started on Nov 12, 10:00 AM"
+ - Level end time: "Completed on Nov 13, 2:00 PM"
+ - Actual time taken: "28 hours"
+ - TAT status for level:
+ - "Completed within TAT" (green badge)
+ - "Exceeded TAT by 5 hours" (red badge)
+
+ - **TAT Progress Bar** (for active level):
+ - Visual bar showing % used
+ - Color-coded (green/yellow/red)
+ - Remaining time displayed
+
+ - **Approver Comments:**
+ - Display comments if level is approved/rejected
+ - Formatted text with proper line breaks
+ - Timestamp: "Commented on Nov 13, 2:00 PM"
+
+ - **Action Date:**
+ - Display date/time when approved/rejected
+ - Relative time: "2 days ago"
+
+**Visual Connectors:**
+- Vertical line connecting levels
+- Shows flow from Level 1 → 2 → 3...
+- Current active level highlighted
+
+**Level Status Summary (Top of Page):**
+- **Progress Indicator:**
+ - "Level 2 of 5 in progress"
+ - Progress bar showing overall approval progress
+ - Example: "40% complete (2 of 5 levels)"
+
+**Approval Flow Insights:**
+- **Average time per level**
+- **Fastest level completion**
+- **Slowest level completion**
+- **Total approval time taken**
+
+**Documents Tab (FE-305):**
+
+**Document List View:**
+
+**Filter/View Options:**
+- Filter by file type (All, PDF, Word, Excel, Images, etc.)
+- Sort by: Name, Date, Size, Uploader
+- Grid view / List view toggle
+
+**Document Cards/List Items:**
+- **For Each Document:**
+
+ **Document Card:**
+ - **File Type Icon** (large, color-coded)
+ - PDF: Red icon
+ - Word: Blue icon
+ - Excel: Green icon
+ - PowerPoint: Orange icon
+ - Images: Purple icon
+
+ - **File Name** (bold)
+ - **File Size** (e.g., "2.5 MB")
+ - **File Type** (e.g., "PDF Document")
+ - **Upload Info:**
+ - Uploaded by: Name
+ - Upload date/time
+ - Relative time: "3 days ago"
+
+ - **Action Buttons:**
+ - **Preview button** (eye icon)
+ - Enabled for PDF and images only
+ - Opens preview modal
+ - **Download button** (download icon)
+ - Downloads file to user's device
+ - **Delete button** (trash icon)
+ - Only shown to initiator or admin
+ - Confirmation before delete
+
+ - **Version Info** (if applicable):
+ - Version number: "v2"
+ - "View history" link
+
+**Preview Modal (for PDF/Images):**
+- **PDF Preview:**
+ - Embedded PDF viewer
+ - Page navigation (Previous/Next)
+ - Zoom in/out buttons
+ - Full-screen option
+ - Download button
+ - Close button
+
+- **Image Preview:**
+ - Lightbox viewer
+ - Full-size image display
+ - Zoom controls
+ - Previous/Next for multiple images
+ - Download button
+ - Close button
+
+**Google Docs/Sheets Section:**
+- **Separate section below uploaded files**
+- **Title:** "Linked Documents"
+- **For Each Link:**
+ - Google Docs/Sheets icon
+ - Document title
+ - Link URL
+ - "Open in new tab" button
+ - Added by: User name
+ - Added on: Date/time
+
+**Empty State:**
+- Shows when no documents uploaded
+- Icon + message: "No documents uploaded yet"
+- "Upload Document" button
+
+**Activity Tab (FE-306):**
+
+**Activity Timeline View:**
+
+**Timeline Display (Reverse Chronological):**
+- **Latest activities at top**
+- **Scroll to see older activities**
+
+**For Each Activity:**
+
+**Activity Item:**
+- **Event Icon (left side):**
+ - Color-coded by activity type
+ - Icons:
+ - 📝 Request created (green)
+ - ✅ Approved (green checkmark)
+ - ❌ Rejected (red X)
+ - 📎 Document uploaded (blue paperclip)
+ - 🗑️ Document deleted (gray trash)
+ - 💬 Work note added (blue chat bubble)
+ - 👤 Approver added (green person+)
+ - 👥 Spectator added (blue person+)
+ - ⚠️ TAT warning (yellow warning)
+ - 🚨 TAT breached (red alert)
+ - 📊 Status changed (blue)
+ - 🔒 Request closed (gray lock)
+
+- **Activity Description:**
+ - Primary text (bold): Main action
+ - Example: "Request submitted for approval"
+ - Example: "Approved by John Doe at Level 2"
+ - Example: "Document uploaded: filename.pdf"
+ - Secondary text: Additional details
+ - Example: "Status changed from PENDING to IN_PROGRESS"
+
+- **User Information:**
+ - Profile picture (small, if user action)
+ - User name and designation
+ - "System" for automated activities
+
+- **Timestamp:**
+ - Relative time: "2 hours ago", "3 days ago"
+ - Hover to see exact date/time
+
+- **Metadata (if applicable):**
+ - For status changes: Show old → new status
+ - For documents: Show file name and size
+ - For approvals: Show comments preview
+ - Expandable section for full details
+
+**Activity Type Grouping:**
+- Group activities by date
+- Date headers: "Today", "Yesterday", "Nov 12, 2025"
+
+**Activity Filter (Optional):**
+- Filter by activity type
+- Dropdown: All, Approvals, Documents, Work Notes, Status Changes
+
+**Real-Time Updates:**
+- Auto-refresh when new activity occurs
+- Smooth animation for new activities
+- Highlight new activities with background color
+
+**6. Work Notes / Chat Component (FE-308)**
+
+**✅ ALREADY COMPLETE!** (As mentioned by user)
+
+The work notes feature is already functional with:
+- Document selection capability
+- Emoji support
+- @mentions
+- File attachments
+- Real-time chat interface
+
+**What's Needed:**
+- Connect to backend APIs (BE-402)
+- Ensure notifications trigger on @mentions
+
+**7. Add Approver/Spectator Modals (FE-309)**
+
+**Add Approver Modal:**
+- **Trigger:** Click "Add Approver" button
+- **Modal Content:**
+ - Title: "Add Approver to Workflow"
+ - Explanation: "Add an additional approver at the current level"
+ - **User Search Input:**
+ - @mention autocomplete
+ - Search by name or email
+ - Dropdown showing matching users
+ - **Selected User Display:**
+ - Show user card with name, email, department
+ - Confirm selection
+ - **Action Buttons:**
+ - "Add" button (primary)
+ - "Cancel" button
+- **After Adding:**
+ - Close modal
+ - Show success notification
+ - Refresh request detail
+ - User appears in workflow tab
+
+**Add Spectator Modal:**
+- **Trigger:** Click "Add Spectator" button
+- **Modal Content:**
+ - Title: "Add Spectator to Workflow"
+ - Explanation: "Spectators can view and comment but cannot approve"
+ - **User Search Input:**
+ - Same as Add Approver
+ - **Multiple Selection:**
+ - Can add multiple spectators at once
+ - Show selected users as chips
+ - **Action Buttons:**
+ - "Add" button (primary)
+ - "Cancel" button
+- **After Adding:**
+ - Close modal
+ - Show success notification
+ - User(s) appear in spectators panel
+ - Notifications sent to added users
+
+#### What You Can Do After Sprint 3:
+- ✅ Approve workflow requests
+- ✅ Reject workflow requests with reasons
+- ✅ Track TAT for each approval level
+- ✅ Receive automated TAT warnings and breach alerts
+- ✅ View comprehensive approval timeline
+- ✅ See real-time notifications
+- ✅ Receive @mention notifications
+- ✅ View all request details in tabs (overview, workflow, documents, activity)
+- ✅ Add additional approvers dynamically
+- ✅ Add spectators during workflow
+- ✅ Monitor TAT with color-coded progress bars
+- ✅ View complete activity history
+- ✅ Full request management dashboard
+
+#### Technical Complexity:
+- **Backend:** Complex approval state machine, TAT calculations, cron jobs
+- **Frontend:** Real-time updates, polling for notifications, complex UI states
+- **Integration:** Multi-user scenarios, concurrent approvals, race conditions
+
+---
+
+### 📁 Sprint 4: Documents & Work Notes (Week 7)
+**Status:** ⏳ Upcoming | **Focus:** Document management and collaboration
+
+#### What This Sprint Delivers:
+Complete document upload/download system, work notes API integration, and activity logging.
+
+#### Frontend Advantage:
+- ✅ **Work Notes UI:** Already complete with all functionality!
+- ✅ **Document Upload UI:** Already complete from Figma!
+- ⏱️ **Only need:** Backend API integration (2 days instead of 1 week!)
+
+#### Detailed Functionality Breakdown:
+
+**1. Document Management System (BE-401)**
+
+**Backend Document Storage:**
+
+**File Upload Handling:**
+- Use Multer middleware for multipart/form-data
+- Accept multiple file uploads simultaneously
+- Maximum 10MB per file
+- Supported types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, JPG, PNG, GIF
+
+**Cloud Storage Integration:**
+- **For Development:** Local file system storage
+- **For Production:** GCP Cloud Storage
+ - Upload files to GCP bucket
+ - Generate signed URLs for secure access
+ - Set expiration on URLs (24 hours)
+ - Store file metadata in database
+
+**Document APIs:**
+- **POST /api/v1/workflows/:id/documents**
+ - Upload document
+ - Validate file type and size
+ - Generate unique filename
+ - Upload to storage
+ - Create document record in database
+ - Return document metadata
+
+- **GET /api/v1/workflows/:id/documents**
+ - Get all documents for workflow
+ - Return metadata (name, size, type, uploader, date)
+ - Include download/preview URLs
+
+- **GET /api/v1/documents/:documentId**
+ - Get specific document details
+ - Return metadata
+
+- **GET /api/v1/documents/:documentId/download**
+ - Generate download URL
+ - Return signed URL for direct download
+
+- **GET /api/v1/documents/:documentId/preview**
+ - Generate preview URL (for PDF/images)
+ - Return signed URL for preview
+
+- **DELETE /api/v1/documents/:documentId**
+ - Soft delete document
+ - Mark as deleted in database
+ - Keep file in storage (for audit)
+ - Only initiator or admin can delete
+
+**Frontend Integration:**
+- Connect upload component to POST API
+- Show upload progress (0-100%)
+- Handle upload errors (file too large, invalid type)
+- Display uploaded files from GET API
+- Implement preview for PDF/images
+- Implement download for all files
+
+**2. Work Notes & Chat System (BE-402)**
+
+**Backend Work Notes APIs:**
+
+**Work Note Structure:**
+```json
+{
+ "note_id": "uuid",
+ "request_id": "uuid",
+ "user_id": "uuid",
+ "message": "This is a work note with @mentions",
+ "mentioned_users": ["user_id1", "user_id2"],
+ "has_attachment": true,
+ "is_priority": false,
+ "reactions": {
+ "👍": ["user_id1", "user_id3"],
+ "❤️": ["user_id2"]
+ },
+ "created_at": "2025-11-12T10:00:00Z",
+ "updated_at": "2025-11-12T10:05:00Z"
+}
+```
+
+**Work Note APIs:**
+- **GET /api/v1/workflows/:id/work-notes**
+ - Get all work notes for workflow
+ - Return in chronological order
+ - Include user details (name, picture)
+ - Include attachments
+ - Include reactions
+
+- **POST /api/v1/workflows/:id/work-notes**
+ - Create new work note
+ - Parse @mentions from message
+ - Extract mentioned user IDs
+ - Store message and mentions
+ - Create notifications for mentioned users
+ - Return created work note
+
+- **PUT /api/v1/work-notes/:noteId**
+ - Update work note (only by creator)
+ - Allow editing within 10 minutes of creation
+ - Update message content
+
+- **DELETE /api/v1/work-notes/:noteId**
+ - Delete work note (only by creator)
+ - Soft delete
+
+- **POST /api/v1/work-notes/:noteId/reactions**
+ - Add emoji reaction to note
+ - Support multiple emojis per note
+ - Store user who reacted
+ - Return updated reactions
+
+- **POST /api/v1/work-notes/:noteId/attachments**
+ - Upload attachment with work note
+ - Handle file upload
+ - Link to work note
+ - Return attachment metadata
+
+**@Mention Detection:**
+- Parse message text for @mentions
+- Match pattern: `@username` or `@"User Name"`
+- Look up users in database
+- Extract user IDs
+- Store in mentioned_users array
+
+**Mention Notifications:**
+- When work note created with @mentions:
+ - Create notification for each mentioned user
+ - Notification type: WORK_NOTE_MENTION
+ - Include message preview
+ - Link to work notes section
+
+**Frontend Integration (Already Complete!):**
+- Connect chat component to GET API for loading messages
+- Connect to POST API for sending messages
+- Connect to reactions API for emoji reactions
+- Connect to attachments API for file uploads
+- Implement @mention autocomplete with user search
+- Auto-refresh messages every 10 seconds
+- Show typing indicators (optional)
+
+**3. Activity Log System (BE-403)**
+
+**Backend Activity Tracking:**
+
+**Automated Activity Logging:**
+- Log activities automatically through database triggers
+- Log activities from service layer
+- Capture all important events
+
+**Activity Types:**
+- REQUEST_CREATED - Workflow created as draft
+- REQUEST_SUBMITTED - Workflow submitted for approval
+- APPROVAL_ACTION - Request approved at a level
+- REJECTION_ACTION - Request rejected
+- APPROVER_ADDED - New approver added
+- SPECTATOR_ADDED - New spectator added
+- DOCUMENT_UPLOADED - Document uploaded
+- DOCUMENT_DELETED - Document deleted
+- WORK_NOTE_ADDED - Work note/comment added
+- TAT_WARNING - TAT approaching deadline
+- TAT_BREACH - TAT exceeded
+- STATUS_CHANGED - Workflow status changed
+- REQUEST_CLOSED - Workflow closed
+
+**Activity APIs:**
+- **GET /api/v1/workflows/:id/activities**
+ - Get activity timeline
+ - Return in reverse chronological order
+ - Include user info for user actions
+ - Include metadata (old/new values for changes)
+
+- **GET /api/v1/workflows/:id/activities/:type**
+ - Filter activities by type
+ - Example: Get only approval actions
+
+**Activity Display:**
+- Generate human-readable descriptions
+- Examples:
+ - "Request created by John Doe"
+ - "Approved by Jane Smith at Level 2"
+ - "Document uploaded: proposal.pdf"
+ - "TAT warning: Request approaching deadline"
+ - "Status changed from PENDING to IN_PROGRESS"
+
+#### What You Can Do After Sprint 4:
+- ✅ Upload documents (multiple files at once)
+- ✅ Preview PDF and image files
+- ✅ Download any file
+- ✅ Delete documents (with permission)
+- ✅ Add work notes with @mentions
+- ✅ React to messages with emojis
+- ✅ Attach files to work notes
+- ✅ Receive notifications for @mentions
+- ✅ View complete activity timeline
+- ✅ Filter activities by type
+- ✅ Real-time collaboration through chat
+
+---
+
+### 📊 Sprint 5: Dashboard & Reporting (Week 8)
+**Status:** ⏳ Upcoming | **Focus:** Analytics, AI conclusions, workflow closure
+
+#### What This Sprint Delivers:
+Dashboard with statistics and charts, AI-powered conclusion generation, workflow closure functionality, search/filter components, and final polish.
+
+#### Detailed Functionality Breakdown:
+
+**1. Dashboard Statistics (BE-501, FE-402)**
+
+**Backend Dashboard APIs:**
+
+**GET /api/v1/dashboard/stats:**
+Returns comprehensive statistics for current user:
+```json
+{
+ "total_requests": 45,
+ "pending_approvals": 8,
+ "approved_requests": 32,
+ "rejected_requests": 5,
+ "draft_requests": 3,
+ "tat_breached": 2,
+ "avg_approval_time_hours": 36.5,
+ "requests_by_priority": {
+ "STANDARD": 40,
+ "EXPRESS": 5
+ },
+ "requests_by_status": {
+ "DRAFT": 3,
+ "PENDING": 5,
+ "IN_PROGRESS": 3,
+ "APPROVED": 32,
+ "REJECTED": 5,
+ "CLOSED": 37
+ },
+ "approval_trend_last_30_days": [
+ {"date": "2025-10-15", "count": 2},
+ {"date": "2025-10-16", "count": 3},
+ ...
+ ]
+}
+```
+
+**GET /api/v1/dashboard/recent:**
+Returns recent activities (last 10):
+```json
+{
+ "recent_activities": [
+ {
+ "activity_type": "APPROVAL_ACTION",
+ "request_id": "uuid",
+ "request_number": "REQ-2025-00045",
+ "description": "Approved by John Doe",
+ "timestamp": "2025-11-12T10:00:00Z"
+ },
+ ...
+ ]
+}
+```
+
+**GET /api/v1/dashboard/pending-actions:**
+Returns requests needing user's action:
+```json
+{
+ "pending_actions": [
+ {
+ "request_id": "uuid",
+ "request_number": "REQ-2025-00046",
+ "title": "Approval for new office",
+ "priority": "EXPRESS",
+ "level": 2,
+ "tat_status": "APPROACHING",
+ "days_pending": 2
+ },
+ ...
+ ]
+}
+```
+
+**Frontend Dashboard Page:**
+
+**Layout:**
+
+**Top Row - Key Metrics Cards (4 columns):**
+1. **Total Requests Card:**
+ - Large number: "45"
+ - Label: "Total Requests"
+ - Icon: 📊
+ - Subtitle: "All time"
+
+2. **Pending Approvals Card:**
+ - Large number: "8"
+ - Label: "Pending Approvals"
+ - Icon: ⏳
+ - Subtitle: "Awaiting action"
+ - Click to filter
+
+3. **Approved Requests Card:**
+ - Large number: "32"
+ - Label: "Approved"
+ - Icon: ✅
+ - Subtitle: "Successfully completed"
+
+4. **TAT Breached Card:**
+ - Large number: "2"
+ - Label: "TAT Breached"
+ - Icon: 🚨
+ - Subtitle: "Needs attention"
+ - Red color if > 0
+
+**Second Row - Charts (2 columns):**
+
+1. **Requests by Status (Pie Chart):**
+ - Using Recharts library
+ - Segments for each status:
+ - Draft (gray)
+ - Pending (yellow)
+ - In Progress (blue)
+ - Approved (green)
+ - Rejected (red)
+ - Closed (dark gray)
+ - Show percentages
+ - Legend below chart
+ - Interactive (click segment to filter)
+
+2. **Requests by Priority (Bar Chart):**
+ - Using Recharts library
+ - Two bars: Standard vs Express
+ - Different colors
+ - Show counts
+ - Y-axis: Count
+ - X-axis: Priority type
+ - Interactive
+
+**Third Row - Trend & Actions (2 columns):**
+
+1. **Approval Trend (Line Chart):**
+ - Using Recharts library
+ - Last 30 days trend
+ - X-axis: Dates
+ - Y-axis: Number of approvals
+ - Line color: Blue
+ - Show data points
+ - Hover to see exact values
+ - Date range selector (7 days, 30 days, 90 days)
+
+2. **Pending Actions Widget:**
+ - List of requests needing user's action
+ - Each item shows:
+ - Request number
+ - Title (truncated)
+ - Priority badge
+ - TAT status indicator
+ - Days pending
+ - "Review" button
+ - Scroll if more than 5 items
+ - Click to go to request detail
+
+**Fourth Row - Recent Activities:**
+- **Recent Activities Widget:**
+ - Table or list of last 10 activities
+ - Columns:
+ - Activity type icon
+ - Description
+ - Request number (clickable)
+ - Timestamp (relative)
+ - "View All" button to go to activity page
+ - Auto-refresh every 30 seconds
+
+**Dashboard Features:**
+- **Date Range Filter (Top Right):**
+ - Dropdown: Last 7 days, 30 days, 90 days, All time
+ - Affects all stats and charts
+
+- **Refresh Button:**
+ - Manual refresh of data
+ - Shows loading state
+
+- **Export Button:**
+ - Export dashboard data as PDF/Excel
+ - Include all charts and stats
+
+**2. AI Conclusion Generation (BE-502, FE-403)**
+
+**Backend AI Integration:**
+
+**AI Service Setup:**
+- Integrate with OpenAI API (GPT-4) or Google Gemini
+- Configure API key and model settings
+- Set max tokens for response (500 tokens)
+
+**Conclusion Generation Logic:**
+
+**When to Generate:**
+- After final approver approves request
+- Before workflow returns to initiator for closure
+
+**Input Data for AI:**
+- Workflow title and description
+- All approval level comments
+- Work notes (relevant messages)
+- Decision summary (approved/rejected at each level)
+- TAT information
+- Documents summary
+
+**Prompt Template:**
+```
+Generate a concise conclusion for this workflow request:
+
+Title: [Request Title]
+Description: [Request Description]
+
+Approval Journey:
+- Level 1: Approved by [Name]. Comment: [Comment]
+- Level 2: Approved by [Name]. Comment: [Comment]
+...
+
+Key Discussion Points from Work Notes:
+- [Note 1]
+- [Note 2]
+...
+
+Generate a professional conclusion summary (max 300 words) covering:
+1. What was requested
+2. Key discussion points
+3. Final decision
+4. Next steps (if any)
+```
+
+**AI Response Processing:**
+- Call AI API with prompt
+- Get generated conclusion
+- Clean up and format response
+- Store as `ai_generated_remark` in database
+- Set `is_edited` to false initially
+
+**Conclusion APIs:**
+
+**POST /api/v1/workflows/:id/conclusion/generate:**
+- Generate AI conclusion
+- Compile input data
+- Call AI API
+- Store result
+- Return generated conclusion
+
+**PUT /api/v1/workflows/:id/conclusion:**
+- Update conclusion (initiator only)
+- Allow editing AI-generated text
+- Set `is_edited` to true
+- Store as `final_remark`
+
+**GET /api/v1/workflows/:id/conclusion:**
+- Get conclusion for workflow
+- Return AI-generated and final (if edited)
+
+**Frontend Conclusion UI:**
+
+**Conclusion Section (After Final Approval):**
+
+**For Initiator (Creator):**
+- **Display AI-Generated Conclusion:**
+ - Show in read-only card initially
+ - Formatted text with proper paragraphs
+ - Label: "AI-Generated Conclusion"
+
+- **Edit Button:**
+ - Opens edit modal
+ - Modal shows:
+ - Title: "Edit Conclusion"
+ - Textarea with AI-generated text pre-filled
+ - Character count (max 1000)
+ - Rich text editor (bold, italic, lists)
+ - "Save" button
+ - "Cancel" button
+ - After saving:
+ - Update display
+ - Show "Edited by [User]" badge
+ - Close modal
+
+- **Finalize Button:**
+ - Visible only to initiator
+ - Confirms final conclusion
+ - Enables workflow closure
+
+**For Other Users (Approvers, Spectators):**
+- **Read-Only Display:**
+ - Show final conclusion
+ - Cannot edit
+ - Show "Finalized by [Initiator]" info
+
+**Conclusion Display Locations:**
+- Request detail page (after approval)
+- My Requests (approved requests)
+- Closed Requests
+- Email notifications (summary)
+
+**3. Workflow Closure (BE-503, FE-404)**
+
+**Backend Closure Logic:**
+
+**PATCH /api/v1/workflows/:id/close:**
+
+**Pre-Closure Validations:**
+- Verify workflow is fully approved (all levels approved)
+- Verify conclusion remark exists
+- Verify user is initiator (creator)
+- Verify workflow not already closed
+
+**Closure Actions:**
+1. Update workflow:
+ - Set status to CLOSED
+ - Set closure_date to current timestamp
+ - Mark as final/immutable
+
+2. Stop all TAT tracking:
+ - Mark TAT records as complete
+ - Calculate total time taken
+
+3. Archive workflow data:
+ - Create snapshot of final state
+ - Preserve for audit
+
+4. Send closure notifications:
+ - To all participants (approvers, spectators)
+ - Notification: "Workflow [REQ-ID] has been closed"
+ - Include conclusion summary
+
+5. Create final activity log:
+ - Activity type: REQUEST_CLOSED
+ - Description: "Request closed by [Initiator Name]"
+ - Include closure date
+
+**Frontend Closure UI:**
+
+**Close Request Button (Request Detail Page):**
+
+**Visibility:**
+- Only shown to initiator (creator)
+- Only after final approval
+- Only if conclusion exists
+- Not shown if already closed
+
+**Button Placement:**
+- Prominent button in top-right
+- Label: "Close Request"
+- Primary/success color
+- Icon: Checkmark or lock
+
+**Click Behavior:**
+- Opens confirmation modal
+
+**Close Request Modal:**
+- **Title:** "Close Workflow Request"
+- **Content:**
+ - Request summary:
+ - Request number
+ - Title
+ - Final status: APPROVED
+ - Total approval time
+ - Conclusion display:
+ - Show final conclusion
+ - Read-only
+ - Warning message:
+ - "Closing this request is final"
+ - "This action cannot be undone"
+ - "All participants will be notified"
+- **Action Buttons:**
+ - "Confirm Close" button (primary/green)
+ - Shows loading spinner during API call
+ - "Cancel" button (secondary)
+ - Closes modal without action
+
+**After Closure:**
+- Close modal
+- Show success notification: "Request closed successfully"
+- Update page to show closed status
+- Change button to "Closed" (disabled)
+- Display closure date
+- Navigate to Closed Requests OR stay on page
+- All editing disabled
+
+**4. Search & Filter Components (FE-501)**
+
+**Global Search Bar:**
+- **Location:** Top of request list pages
+- **Features:**
+ - Text input with search icon
+ - Placeholder: "Search by title or request number..."
+ - Debounce search (300ms delay)
+ - Show search results as you type
+ - Clear button (X icon)
+ - Search on Enter key
+
+**Filter Panel:**
+- **Location:** Sidebar or top bar
+- **Filters Available:**
+
+ **1. Status Filter:**
+ - Checkboxes for each status:
+ - ☐ Draft
+ - ☐ Pending
+ - ☐ In Progress
+ - ☐ Approved
+ - ☐ Rejected
+ - ☐ Closed
+ - Select multiple
+ - Show count for each status
+
+ **2. Priority Filter:**
+ - Radio buttons or checkboxes:
+ - ☐ Standard
+ - ☐ Express
+ - Select one or both
+
+ **3. Date Range Filter:**
+ - Date picker component
+ - "From" date input
+ - "To" date input
+ - Preset options:
+ - Today
+ - Last 7 days
+ - Last 30 days
+ - Last 90 days
+ - Custom range
+
+ **4. Department Filter:**
+ - Dropdown select
+ - List of all departments
+ - Filter requests by initiator's department
+
+ **5. Initiator Filter:**
+ - User search input
+ - @mention style autocomplete
+ - Filter by who created the request
+
+**Filter Actions:**
+- **Apply Filters button:**
+ - Apply selected filters
+ - Update request list
+ - Show loading state
+
+- **Clear Filters button:**
+ - Reset all filters
+ - Reload full list
+
+**Filter State Management:**
+- **URL Query Parameters:**
+ - Save filters in URL
+ - Example: `?status=PENDING&priority=EXPRESS&from=2025-11-01`
+ - Enable sharing filtered views
+ - Browser back/forward works
+
+- **Active Filter Display:**
+ - Show active filters as chips/tags
+ - Example: "Status: Pending" (X to remove)
+ - "2 filters active" counter
+ - Quick remove individual filters
+
+**5. Responsive Design & Polish (FE-502)**
+
+**Mobile Responsiveness:**
+
+**Breakpoints:**
+- Mobile: 320px - 767px
+- Tablet: 768px - 1023px
+- Desktop: 1024px+
+
+**Mobile Optimizations:**
+- **Sidebar:** Collapsible hamburger menu
+- **Request Cards:** Full width, stacked vertically
+- **Tables:** Convert to cards
+- **Modals:** Full-screen on mobile
+- **Forms:** Single column layout
+- **Buttons:** Larger touch targets (44px minimum)
+- **Navigation:** Bottom tab bar (optional)
+
+**Tablet Optimizations:**
+- **Sidebar:** Collapsible or always visible
+- **Request Cards:** 2 per row
+- **Tables:** Scrollable horizontally
+- **Forms:** Two column layout
+
+**Desktop:**
+- **Sidebar:** Always visible
+- **Request Cards:** 3 per row
+- **Tables:** Full table view
+- **Forms:** Optimized multi-column
+
+**6. Loading States & Error Handling (FE-503)**
+
+**Loading Skeletons:**
+- **Request List Skeleton:**
+ - Show placeholder cards
+ - Animated shimmer effect
+ - Same layout as actual cards
+
+- **Request Detail Skeleton:**
+ - Placeholder for all sections
+ - Shimmer animation
+
+- **Dashboard Skeleton:**
+ - Placeholder cards for metrics
+ - Placeholder charts
+
+**Error States:**
+- **Network Error:**
+ - Show error message
+ - "Retry" button
+ - "Go Back" button
+
+- **Empty State:**
+ - Relevant icon
+ - Message: "No requests found"
+ - "Create New Request" button
+
+- **Error Boundary:**
+ - Catch React errors
+ - Show friendly error page
+ - "Report Issue" button
+
+**7. Accessibility (FE-504)**
+
+**ARIA Labels:**
+- Add labels to all interactive elements
+- Buttons have clear labels
+- Form inputs have associated labels
+
+**Keyboard Navigation:**
+- All actions accessible via keyboard
+- Tab order logical
+- Enter/Space to activate buttons
+- Esc to close modals
+
+**Screen Reader Support:**
+- Semantic HTML tags
+- Alt text for images
+- Proper heading hierarchy (H1, H2, H3)
+
+**Color Contrast:**
+- Meet WCAG AA standards
+- Text contrast ratio >= 4.5:1
+- Large text >= 3:1
+
+#### What You Can Do After Sprint 5:
+- ✅ View comprehensive dashboard with statistics
+- ✅ See visual charts and graphs
+- ✅ Generate AI-powered conclusions
+- ✅ Edit AI conclusions before finalizing
+- ✅ Close approved workflows
+- ✅ Search requests by title/number
+- ✅ Filter requests by multiple criteria
+- ✅ Use on any device (responsive)
+- ✅ Better loading and error states
+- ✅ Accessible for all users
+
+---
+
+### 🧪 Sprint 6: Testing & Deployment (Weeks 9-10)
+**Status:** ⏳ Upcoming | **Focus:** Quality assurance and production deployment
+
+#### Week 9: Testing & Quality Assurance
+
+**1. Backend Unit Testing (BE-601):**
+
+**Service Tests:**
+- Auth service: Login, register, token refresh
+- Workflow service: CRUD operations, TAT calculations
+- Approval service: Approve, reject, level transitions
+- TAT service: Calculate elapsed time, status determination
+- Notification service: Create, send, mark read
+- Document service: Upload, download, delete
+
+**Controller Tests:**
+- API endpoint tests
+- Request validation
+- Response format
+- Error handling
+
+**Utility Tests:**
+- Date calculations
+- TAT business logic
+- Email templates
+- File validators
+
+**Test Coverage:**
+- Target: >80% code coverage
+- Use Jest with ts-jest
+- Mock external dependencies (database, storage, AI API)
+
+**2. Backend Integration Testing (BE-602):**
+
+**Complete Workflow Tests:**
+- User registration → login → token
+- Create workflow → submit → approve → close
+- Multi-level approval flow (all 10 levels)
+- Rejection flow
+- TAT tracking and alerts
+- Document upload → preview → download
+
+**API Testing:**
+- Use Supertest for HTTP testing
+- Test all API endpoints
+- Test authentication middleware
+- Test authorization rules
+- Test error responses
+- Test pagination and filtering
+
+**3. Frontend Unit Testing (FE-601):**
+
+**Component Tests:**
+- Login component
+- Registration component
+- Workflow wizard steps
+- Request cards
+- Approval modals
+- Work notes chat
+- Notification bell
+
+**Redux Tests:**
+- Slice reducers
+- Async thunks
+- Selectors
+
+**Utility Tests:**
+- Date formatting
+- Validation functions
+- API service helpers
+
+**Test Coverage:**
+- Target: >70% code coverage
+- Use Vitest + React Testing Library
+- Mock API calls
+
+**4. Frontend Integration Testing (FE-602):**
+
+**User Flow Tests:**
+- Complete registration → login flow
+- Create workflow → submit → view flow
+- Approve/reject workflow flow
+- Add work note flow
+- Upload document flow
+
+**Navigation Tests:**
+- Route transitions
+- Protected routes
+- Redirect logic
+
+**5. API Documentation (BE-603):**
+
+**Swagger/OpenAPI Setup:**
+- Document all endpoints
+- Request schemas with examples
+- Response schemas
+- Authentication requirements
+- Error responses
+- Example requests/responses
+
+**Postman Collection:**
+- Create collection for all APIs
+- Organize by feature
+- Add example requests
+- Add pre-request scripts (auth token)
+- Share with team
+
+#### Week 10: Optimization & Deployment
+
+**6. Performance Optimization (BE-604, FE-603):**
+
+**Backend:**
+- Database query optimization
+- Add indexes for frequent queries
+- Optimize N+1 queries with eager loading
+- Add response caching (Redis optional)
+- Database connection pooling
+- Compress API responses (gzip)
+- Rate limiting per user
+
+**Frontend:**
+- Code splitting with React.lazy
+- Lazy load images
+- Bundle size optimization
+- Tree shaking
+- Memoize components (React.memo)
+- Optimize Redux selectors
+- Add service worker (optional)
+
+**7. Deployment Setup (BE-605, FE-604):**
+
+**Backend Deployment:**
+- Create production Dockerfile
+- Setup docker-compose for DB + Backend
+- Configure environment variables
+- Setup PM2 for process management
+- Database migration scripts
+- Setup CI/CD pipeline (GitHub Actions)
+- Deploy to GCP Cloud Run or VM
+- Configure logging and monitoring
+
+**Frontend Deployment:**
+- Create production Dockerfile with Nginx
+- Production build configuration
+- Environment variables for prod
+- Setup CI/CD pipeline
+- Deploy to GCP Cloud Run or Storage
+- Configure CDN
+- Setup SSL/HTTPS
+
+**8. Final Testing & QA:**
+- End-to-end testing
+- User acceptance testing (UAT)
+- Load testing
+- Security testing
+- Browser compatibility testing
+- Mobile device testing
+
+**9. Go-Live Checklist:**
+- Database backup strategy
+- Monitoring setup (logs, errors, performance)
+- Error tracking (Sentry optional)
+- Documentation complete
+- User training materials
+- Support plan
+
+#### What You Achieve After Sprint 6:
+- ✅ Fully tested application (>80% coverage)
+- ✅ Complete API documentation
+- ✅ Optimized performance
+- ✅ Production deployment
+- ✅ CI/CD pipelines configured
+- ✅ Monitoring and logging in place
+- ✅ Ready for production users!
+
+---
+
+## 🎯 Summary: Why Each Sprint Matters
+
+**Sprint 0:** Foundation - Without proper setup, everything else fails
+**Sprint 1:** Authentication - Users need to login before anything else
+**Sprint 2:** Workflow Creation - Core feature, creates the workflows
+**Sprint 3:** Approvals - Makes workflows actually work, users can act
+**Sprint 4:** Collaboration - Documents and work notes enable teamwork
+**Sprint 5:** Analytics - Dashboard gives insights, AI adds intelligence
+**Sprint 6:** Quality - Testing ensures reliability, deployment makes it live
+
+**Each sprint builds on the previous one. You cannot skip or reorder them!**
+
+---
+
+## Backend Tasks
+
+### **SPRINT 0: Backend Setup & Infrastructure**
+
+#### **TASK-BE-001: Repository & Environment Setup**
+**Priority:** Critical | **Estimated Time:** 0.5 days | **Status:** 🔄 In Progress
+- [ ] Create `re-workflow-backend` repository
+- [ ] Initialize Node.js 22 project with TypeScript 5.7
+- [ ] Setup folder structure as per architecture document
+- [ ] Configure `tsconfig.json` with strict mode
+- [ ] Create `.env.example` and environment configuration
+- [ ] Setup `.gitignore` for Node.js projects
+- [ ] Initialize `package.json` with all dependencies
+
+**Dependencies:** None
+**Deliverable:** Repository with basic structure
+
+---
+
+#### **TASK-BE-002: Database Setup & Schema**
+**Priority:** Critical | **Estimated Time:** 1 day | **Status:** ⏳ Pending
+- [ ] Install PostgreSQL 16 locally/Docker
+- [ ] Create database `re_workflow_db`
+- [ ] Implement complete database schema from architecture doc
+- [ ] Create all tables with indexes and constraints
+- [ ] Setup database triggers (request_number generation, timestamps)
+- [ ] Create database views (vw_active_requests, vw_user_notifications)
+- [ ] Insert initial system settings
+- [ ] Document database connection configuration
+
+**Dependencies:** None
+**Deliverable:** Complete PostgreSQL database with schema
+
+---
+
+#### **TASK-BE-003: Core Backend Configuration**
+**Priority:** Critical | **Estimated Time:** 0.5 days | **Status:** ⏳ Pending
+- [ ] Setup Express.js application (`src/app.ts`)
+- [ ] Configure middleware (helmet, cors, body-parser)
+- [ ] Setup Winston logger with file rotation
+- [ ] Create error handling middleware
+- [ ] Configure Morgan for HTTP logging
+- [ ] Setup health check endpoint (`/health`)
+- [ ] Create `src/server.ts` with graceful shutdown
+- [ ] Test server startup and connection
+
+**Dependencies:** TASK-BE-001
+**Deliverable:** Running Express server with logging
+
+---
+
+#### **TASK-BE-004: Sequelize ORM Setup**
+**Priority:** Critical | **Estimated Time:** 1 day | **Status:** ⏳ Pending
+- [ ] Configure Sequelize connection (`src/config/database.ts`)
+- [ ] Create all Sequelize models matching database schema
+ - User model
+ - WorkflowRequest model
+ - ApprovalLevel model
+ - Participant model
+ - Document model
+ - WorkNote model
+ - Activity model
+ - Notification model
+ - TATTracking model
+ - ConclusionRemark model
+- [ ] Define model associations (relationships)
+- [ ] Test database connectivity
+- [ ] Create model index file (`src/models/index.ts`)
+
+**Dependencies:** TASK-BE-002
+**Deliverable:** Complete ORM layer with type definitions
+
+---
+
+### **SPRINT 1: SSO Authentication & User Management**
+
+#### **TASK-BE-101: SSO Integration (Awaiting Confirmation)**
+**Priority:** Critical | **Estimated Time:** 1.5 days | **Status:** ⏳ Awaiting SSO Details
+- [ ] Configure SSO Bridge integration (`src/config/sso.ts`)
+- [ ] Implement SSO callback handler (`src/services/auth.service.ts`)
+- [ ] User auto-sync from Active Directory
+- [ ] JWT token generation for app sessions
+- [ ] Authentication middleware (`src/middlewares/auth.middleware.ts`)
+- [ ] Auth APIs:
+ - GET `/api/v1/auth/login` - Redirect to SSO
+ - GET `/api/v1/auth/callback` - Handle SSO callback
+ - POST `/api/v1/auth/logout` - Logout
+ - GET `/api/v1/auth/me` - Get current user
+
+**Dependencies:** TASK-BE-004
+**Deliverable:** SSO integration (no login/signup screens needed)
+
+---
+
+#### **TASK-BE-102: User Profile Management**
+**Priority:** Medium | **Estimated Time:** 0.5 days
+- [ ] Create user controller (`src/controllers/user.controller.ts`)
+ - GET `/api/v1/users` - Get all active users (for @tagging)
+ - GET `/api/v1/users/search?q=` - Search users by name/email
+ - GET `/api/v1/users/:id` - Get user details
+ - PUT `/api/v1/users/:id` - Update user profile (phone, picture only)
+- [ ] Create user service (`src/services/user.service.ts`)
+- [ ] Create user routes (`src/routes/user.routes.ts`)
+
+**Dependencies:** TASK-BE-101
+**Deliverable:** User search and profile APIs
+
+**Note:** User data synced from Active Directory (read-only except phone/picture)
+
+---
+
+### **SPRINT 2: Core Workflow Creation**
+
+#### **TASK-BE-201: Workflow Request Creation APIs**
+**Priority:** Critical | **Estimated Time:** 10 hours
+- [ ] Create workflow service (`src/services/workflow.service.ts`)
+ - Create draft workflow
+ - Update draft workflow
+ - Submit workflow for approval
+ - Auto-generate request number (REQ-YYYY-00001)
+ - Calculate total TAT from all levels
+ - Set TAT start/end dates based on priority
+- [ ] Create workflow controller (`src/controllers/workflow.controller.ts`)
+ - POST `/api/v1/workflows` - Create new workflow
+ - PUT `/api/v1/workflows/:id` - Update draft
+ - GET `/api/v1/workflows/:id` - Get workflow details
+ - DELETE `/api/v1/workflows/:id` - Delete draft
+ - PATCH `/api/v1/workflows/:id/submit` - Submit for approval
+- [ ] Implement TAT calculation utility
+ - Calculate working days vs calendar days
+ - Handle priority (STANDARD vs EXPRESS)
+- [ ] Create workflow validation schemas (Zod)
+- [ ] Test workflow creation flow end-to-end
+
+**Dependencies:** TASK-BE-103
+**Deliverable:** Workflow creation APIs with TAT calculation
+
+---
+
+#### **TASK-BE-202: Approval Hierarchy Management**
+**Priority:** Critical | **Estimated Time:** 8 hours
+- [ ] Create approval service (`src/services/approval.service.ts`)
+ - Create approval levels (up to 10 levels)
+ - Add approver to specific level
+ - Update approval level TAT
+ - Get approval hierarchy for request
+ - Get current approval level
+ - Move to next approval level
+- [ ] Create approval controller (`src/controllers/approval.controller.ts`)
+ - GET `/api/v1/workflows/:id/approvals` - Get hierarchy
+ - POST `/api/v1/workflows/:id/approvals` - Add approval level
+ - GET `/api/v1/workflows/:id/approvals/current` - Current level
+- [ ] Validate max 10 approval levels
+- [ ] Ensure unique level numbers per request
+
+**Dependencies:** TASK-BE-201
+**Deliverable:** Approval hierarchy management
+
+---
+
+#### **TASK-BE-203: Participant Management**
+**Priority:** High | **Estimated Time:** 4 hours
+- [ ] Create participant service (`src/services/participant.service.ts`)
+ - Add spectator to request
+ - Remove spectator
+ - Get all participants
+ - Check participant permissions
+- [ ] Create participant controller (`src/controllers/participant.controller.ts`)
+ - GET `/api/v1/workflows/:id/participants` - Get all
+ - POST `/api/v1/workflows/:id/participants` - Add spectator
+ - DELETE `/api/v1/workflows/:id/participants/:participantId` - Remove
+ - GET `/api/v1/workflows/:id/spectators` - Get spectators only
+- [ ] Log participant additions in activity
+
+**Dependencies:** TASK-BE-201
+**Deliverable:** Participant management APIs
+
+---
+
+#### **TASK-BE-204: Workflow List & Filtering APIs**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Implement workflow listing with filters
+ - GET `/api/v1/workflows` - Get all workflows (with filters)
+ - GET `/api/v1/workflows/my-requests` - User's requests
+ - GET `/api/v1/workflows/open` - Open/pending requests
+ - GET `/api/v1/workflows/closed` - Closed requests
+ - GET `/api/v1/workflows/assigned-to-me` - Assigned requests
+- [ ] Implement pagination (page, limit, sortBy, sortOrder)
+- [ ] Implement filters (status, priority, date range)
+- [ ] Implement search (by title, description, request_number)
+- [ ] Add full-text search using PostgreSQL
+
+**Dependencies:** TASK-BE-201
+**Deliverable:** Workflow listing with search/filter
+
+---
+
+### **SPRINT 3: Approval Actions & Notifications**
+
+#### **TASK-BE-301: Approval/Rejection Actions**
+**Priority:** Critical | **Estimated Time:** 10 hours
+- [ ] Implement approval action workflow
+ - PATCH `/api/v1/workflows/:id/approvals/:levelId/approve`
+ - PATCH `/api/v1/workflows/:id/approvals/:levelId/reject`
+- [ ] Approval logic:
+ - Validate approver is current level approver
+ - Validate mandatory comments field
+ - Update approval level status to APPROVED
+ - Move workflow to next level OR close if final approver
+ - Update workflow status (IN_PROGRESS, APPROVED)
+ - Stop TAT for current level
+ - Start TAT for next level
+ - Log activity
+- [ ] Rejection logic:
+ - Validate approver authorization
+ - Mandatory rejection comments
+ - Mark workflow as REJECTED and CLOSED
+ - Stop TAT tracking
+ - Send notification to initiator
+ - Log activity
+- [ ] Create activity logging service
+
+**Dependencies:** TASK-BE-202
+**Deliverable:** Working approval/rejection flow
+
+---
+
+#### **TASK-BE-302: TAT Tracking & Monitoring**
+**Priority:** Critical | **Estimated Time:** 8 hours
+- [ ] Create TAT service (`src/services/tat.service.ts`)
+ - Calculate elapsed time for current level
+ - Calculate remaining time
+ - Calculate percentage TAT used
+ - Determine TAT status (ON_TRACK, APPROACHING, BREACHED)
+ - Update TAT tracking table
+- [ ] Implement TAT monitoring cron job (`src/jobs/tatMonitor.job.ts`)
+ - Run every 30 minutes
+ - Check all active requests
+ - Identify approaching deadlines (80% threshold)
+ - Identify breached TATs (100%+)
+ - Update tat_tracking table
+ - Trigger reminder notifications
+- [ ] Create TAT APIs
+ - GET `/api/v1/workflows/:id/tat` - Get TAT status
+ - GET `/api/v1/tat/breached` - Get breached requests
+ - GET `/api/v1/tat/approaching` - Get approaching deadlines
+
+**Dependencies:** TASK-BE-301
+**Deliverable:** TAT tracking system with cron
+
+---
+
+#### **TASK-BE-303: Notification System**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Create notification service (`src/services/notification.service.ts`)
+ - Create notification
+ - Send notification to user(s)
+ - Mark notification as read
+ - Mark all as read
+ - Delete notification
+ - Get user notifications
+ - Get unread count
+- [ ] Notification triggers:
+ - New workflow assignment
+ - Workflow approval/rejection
+ - TAT warning (80% threshold)
+ - TAT breach (100%+)
+ - Work note mention (@user)
+ - Document upload
+ - Spectator added
+- [ ] Create notification controller
+ - GET `/api/v1/notifications` - Get user notifications
+ - GET `/api/v1/notifications/unread` - Unread only
+ - PATCH `/api/v1/notifications/:id/read` - Mark as read
+ - PATCH `/api/v1/notifications/mark-all-read` - Mark all
+ - DELETE `/api/v1/notifications/:id` - Delete
+- [ ] Add notification priority levels
+
+**Dependencies:** TASK-BE-301
+**Deliverable:** Complete notification system
+
+---
+
+### **SPRINT 4: Documents & Work Notes**
+
+#### **TASK-BE-401: Document Management System**
+**Priority:** Critical | **Estimated Time:** 10 hours
+- [ ] Setup file upload with Multer
+- [ ] Configure GCP Cloud Storage (or local storage for dev)
+- [ ] Create storage service (`src/services/storage.service.ts`)
+ - Upload file to cloud storage
+ - Generate signed URL for file access
+ - Delete file from storage
+ - Validate file type and size
+- [ ] Create document service (`src/services/document.service.ts`)
+ - Upload document
+ - Get document metadata
+ - Get document download URL
+ - Delete document
+ - Get all documents for request
+- [ ] Create document controller
+ - POST `/api/v1/workflows/:id/documents` - Upload
+ - GET `/api/v1/workflows/:id/documents` - Get all
+ - GET `/api/v1/documents/:documentId` - Get details
+ - GET `/api/v1/documents/:documentId/download` - Download URL
+ - DELETE `/api/v1/documents/:documentId` - Delete
+ - GET `/api/v1/documents/:documentId/preview` - Preview URL
+- [ ] File validation (max 10MB, allowed types)
+- [ ] Support Google Docs/Sheets links
+
+**Dependencies:** TASK-BE-301
+**Deliverable:** Document upload/download APIs
+
+---
+
+#### **TASK-BE-402: Work Notes & Chat System**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Create work note service (`src/services/workNote.service.ts`)
+ - Create work note
+ - Update work note
+ - Delete work note
+ - Add reaction to note
+ - Add attachment to note
+ - Get all notes for request
+ - Parse @mentions from message
+- [ ] Create work note controller
+ - GET `/api/v1/workflows/:id/work-notes` - Get all notes
+ - POST `/api/v1/workflows/:id/work-notes` - Add note
+ - PUT `/api/v1/work-notes/:noteId` - Update note
+ - DELETE `/api/v1/work-notes/:noteId` - Delete note
+ - POST `/api/v1/work-notes/:noteId/reactions` - Add reaction
+ - POST `/api/v1/work-notes/:noteId/attachments` - Add attachment
+- [ ] Implement @mention detection
+- [ ] Send notifications to mentioned users
+- [ ] Support file attachments in notes
+- [ ] Log work note activities
+
+**Dependencies:** TASK-BE-303
+**Deliverable:** Work notes/chat APIs
+
+---
+
+#### **TASK-BE-403: Activity Log System**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Create activity service (`src/services/activity.service.ts`)
+ - Log activity automatically
+ - Get activity timeline
+ - Filter activities by type
+- [ ] Activity tracking for:
+ - Request created
+ - Request submitted
+ - Approval/rejection
+ - Approver/spectator added
+ - Document uploaded/deleted
+ - Work note added
+ - TAT warning/breach
+ - Status changes
+- [ ] Create activity APIs
+ - GET `/api/v1/workflows/:id/activities` - Get timeline
+ - GET `/api/v1/workflows/:id/activities/:type` - Filter by type
+- [ ] Display user-friendly activity descriptions
+
+**Dependencies:** TASK-BE-301
+**Deliverable:** Activity logging system
+
+---
+
+### **SPRINT 5: Dashboard & Reporting**
+
+#### **TASK-BE-501: Dashboard Statistics APIs**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create dashboard service (`src/services/dashboard.service.ts`)
+- [ ] Implement dashboard statistics
+ - Total requests by user
+ - Pending approvals count
+ - Approved/rejected count
+ - TAT breach count
+ - Requests by priority
+ - Requests by status
+ - Average approval time
+- [ ] Create dashboard APIs
+ - GET `/api/v1/dashboard/stats` - Get statistics
+ - GET `/api/v1/dashboard/recent` - Recent activities
+ - GET `/api/v1/dashboard/pending-actions` - Pending count
+- [ ] Add date range filters
+- [ ] Cache dashboard data for performance
+
+**Dependencies:** TASK-BE-301
+**Deliverable:** Dashboard APIs with statistics
+
+---
+
+#### **TASK-BE-502: AI Conclusion Generation**
+**Priority:** Medium | **Estimated Time:** 6 hours
+- [ ] Setup AI service integration (OpenAI/Gemini)
+- [ ] Create AI service (`src/services/ai.service.ts`)
+ - Generate conclusion from workflow data
+ - Summarize work notes
+ - Extract key decision points
+ - Generate conclusion remark
+- [ ] Create conclusion APIs
+ - POST `/api/v1/workflows/:id/conclusion/generate` - Generate
+ - PUT `/api/v1/workflows/:id/conclusion` - Update
+ - GET `/api/v1/workflows/:id/conclusion` - Get
+- [ ] Allow initiator to edit AI-generated conclusion
+- [ ] Store both AI-generated and final remarks
+
+**Dependencies:** TASK-BE-402
+**Deliverable:** AI-powered conclusion generation
+
+---
+
+#### **TASK-BE-503: Workflow Closure**
+**Priority:** High | **Estimated Time:** 4 hours
+- [ ] Implement workflow closure endpoint
+ - PATCH `/api/v1/workflows/:id/close` - Close workflow
+- [ ] Closure logic:
+ - Only initiator can close after final approval
+ - Require conclusion remark (AI or manual)
+ - Update workflow status to CLOSED
+ - Set closure_date
+ - Send closure notifications to all participants
+ - Archive workflow data
+ - Log closure activity
+- [ ] Validate closure permissions
+
+**Dependencies:** TASK-BE-502
+**Deliverable:** Workflow closure functionality
+
+---
+
+### **SPRINT 6: Testing & Optimization**
+
+#### **TASK-BE-601: Unit Testing**
+**Priority:** High | **Estimated Time:** 10 hours
+- [ ] Setup Jest + ts-jest configuration
+- [ ] Write unit tests for services:
+ - Auth service tests (login, register, token)
+ - Workflow service tests (CRUD, submit)
+ - Approval service tests (approve, reject)
+ - TAT service tests (calculation, tracking)
+ - Notification service tests
+ - Document service tests
+ - Work note service tests
+- [ ] Achieve >80% code coverage
+- [ ] Test edge cases and error scenarios
+- [ ] Mock external dependencies
+
+**Dependencies:** All Sprint 1-5 tasks
+**Deliverable:** Comprehensive test suite
+
+---
+
+#### **TASK-BE-602: Integration Testing**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Setup Supertest for API testing
+- [ ] Test complete workflows:
+ - User registration → login → create workflow
+ - Workflow creation → submission → approval
+ - Multi-level approval flow
+ - Rejection workflow
+ - TAT tracking and notifications
+ - Document upload and retrieval
+- [ ] Test error handling and validation
+- [ ] Test authorization and permissions
+- [ ] Test pagination and filtering
+
+**Dependencies:** TASK-BE-601
+**Deliverable:** Integration test suite
+
+---
+
+#### **TASK-BE-603: API Documentation**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Setup Swagger/OpenAPI documentation
+- [ ] Document all API endpoints with:
+ - Request/response schemas
+ - Query parameters
+ - Request body structure
+ - Response codes
+ - Authentication requirements
+ - Example requests/responses
+- [ ] Host documentation at `/api-docs`
+- [ ] Create Postman collection
+
+**Dependencies:** All API tasks
+**Deliverable:** Complete API documentation
+
+---
+
+#### **TASK-BE-604: Performance Optimization**
+**Priority:** Medium | **Estimated Time:** 6 hours
+- [ ] Add database query optimization
+- [ ] Implement response caching (Redis optional)
+- [ ] Add database connection pooling
+- [ ] Optimize N+1 queries with eager loading
+- [ ] Add pagination to all list endpoints
+- [ ] Implement rate limiting per user
+- [ ] Add request/response compression
+- [ ] Performance testing and profiling
+
+**Dependencies:** TASK-BE-602
+**Deliverable:** Optimized backend performance
+
+---
+
+#### **TASK-BE-605: Deployment Setup**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create Dockerfile for backend
+- [ ] Create docker-compose.yml (backend + PostgreSQL)
+- [ ] Setup environment variables for production
+- [ ] Configure PM2 for process management
+- [ ] Setup database migration scripts
+- [ ] Create deployment scripts
+- [ ] Configure GCP Cloud Run (or VM)
+- [ ] Setup CI/CD pipeline (GitHub Actions)
+- [ ] Configure logging and monitoring
+
+**Dependencies:** TASK-BE-604
+**Deliverable:** Deployment-ready backend
+
+---
+
+## Frontend Tasks
+
+### **SPRINT 0: Frontend Setup & Infrastructure**
+
+#### **TASK-FE-001: Repository & Environment Setup**
+**Priority:** Critical | **Estimated Time:** 4 hours
+- [ ] Create `re-workflow-frontend` repository
+- [ ] Initialize React 19 project with Vite 6
+- [ ] Setup TypeScript 5.7 configuration
+- [ ] Setup folder structure as per architecture
+- [ ] Configure `tsconfig.json` with strict mode
+- [ ] Create `.env.example` for environment variables
+- [ ] Setup `.gitignore` for React projects
+- [ ] Initialize `package.json` with dependencies
+
+**Dependencies:** None
+**Deliverable:** Repository with React + TypeScript
+
+---
+
+#### **TASK-FE-002: UI Framework & Styling Setup**
+**Priority:** Critical | **Estimated Time:** 4 hours
+- [ ] Install Material-UI 6.3 (MUI)
+- [ ] Install @emotion for styling
+- [ ] Configure MUI theme (`src/assets/styles/theme.ts`)
+ - Primary/secondary colors
+ - Typography settings
+ - Breakpoints for responsive design
+- [ ] Create global CSS variables
+- [ ] Setup CSS reset and normalize
+- [ ] Configure responsive layout breakpoints
+
+**Dependencies:** TASK-FE-001
+**Deliverable:** UI framework configured
+
+---
+
+#### **TASK-FE-003: Redux Store & State Management**
+**Priority:** Critical | **Estimated Time:** 4 hours
+- [ ] Install Redux Toolkit 2.5 and React-Redux
+- [ ] Create Redux store (`src/redux/store.ts`)
+- [ ] Create typed hooks (`src/redux/hooks.ts`)
+- [ ] Create initial slices:
+ - authSlice (user, token, isAuthenticated)
+ - uiSlice (loading, errors, notifications)
+ - workflowSlice (workflows, currentWorkflow)
+ - approvalSlice (approvals, currentLevel)
+ - notificationSlice (notifications, unreadCount)
+ - documentSlice (documents)
+ - workNoteSlice (notes)
+ - participantSlice (participants, spectators)
+- [ ] Configure Redux DevTools
+- [ ] Setup persist for auth state (localStorage)
+
+**Dependencies:** TASK-FE-001
+**Deliverable:** Redux store configured
+
+---
+
+#### **TASK-FE-004: API Service Layer Setup**
+**Priority:** Critical | **Estimated Time:** 4 hours
+- [ ] Create Axios instance (`src/services/api.ts`)
+- [ ] Configure base URL from environment
+- [ ] Setup request interceptors (add JWT token)
+- [ ] Setup response interceptors (error handling)
+- [ ] Handle token refresh logic
+- [ ] Handle 401 unauthorized (redirect to login)
+- [ ] Create service files:
+ - `auth.service.ts`
+ - `workflow.service.ts`
+ - `approval.service.ts`
+ - `document.service.ts`
+ - `notification.service.ts`
+ - `workNote.service.ts`
+ - `participant.service.ts`
+ - `dashboard.service.ts`
+ - `user.service.ts`
+
+**Dependencies:** TASK-FE-003
+**Deliverable:** API service layer with interceptors
+
+---
+
+#### **TASK-FE-005: Routing & Navigation Setup**
+**Priority:** High | **Estimated Time:** 3 hours
+- [ ] Install React Router DOM 7.1
+- [ ] Create routing configuration (`src/routes/AppRoutes.tsx`)
+- [ ] Define all routes:
+ - `/login` - Login page
+ - `/register` - Registration page
+ - `/forgot-password` - Password reset request
+ - `/reset-password/:token` - Reset password
+ - `/dashboard` - Dashboard (protected)
+ - `/workflows/create` - Create request (protected)
+ - `/workflows/my-requests` - My requests (protected)
+ - `/workflows/open` - Open requests (protected)
+ - `/workflows/closed` - Closed requests (protected)
+ - `/workflows/:id` - Request detail (protected)
+ - `/unauthorized` - 403 page
+ - `/not-found` - 404 page
+- [ ] Create PrivateRoute component (auth check)
+- [ ] Create PublicRoute component (redirect if authenticated)
+
+**Dependencies:** TASK-FE-003
+**Deliverable:** Complete routing structure
+
+---
+
+#### **TASK-FE-006: Common Components Library**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Create reusable components:
+ - **Button** component (primary, secondary, danger variants)
+ - **Input** component (text, email, password, textarea)
+ - **Dropdown/Select** component
+ - **Modal** component (reusable dialog)
+ - **Card** component
+ - **Table** component with sorting
+ - **Tabs** component
+ - **Pagination** component
+ - **Loader/Spinner** component
+ - **Notification/Toast** component (react-toastify)
+ - **ErrorBoundary** component
+- [ ] Create component tests for each
+- [ ] Add TypeScript interfaces for props
+
+**Dependencies:** TASK-FE-002
+**Deliverable:** Reusable component library
+
+---
+
+#### **TASK-FE-007: Layout Components**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create Header component
+ - Logo and app name
+ - User profile dropdown
+ - Notification bell icon with count
+ - Logout button
+- [ ] Create Sidebar/Navigation component
+ - Dashboard link
+ - My Requests link
+ - Open Requests link
+ - Closed Requests link
+ - Raise New Request button
+ - Active route highlighting
+- [ ] Create Footer component
+- [ ] Create PageLayout component (header + sidebar + content)
+- [ ] Make layout responsive (mobile, tablet, desktop)
+
+**Dependencies:** TASK-FE-006
+**Deliverable:** Complete layout structure
+
+---
+
+### **SPRINT 1: SSO Authentication & User Management**
+
+#### **TASK-FE-101: SSO Callback Handler & Protected Routes**
+**Priority:** Critical | **Estimated Time:** 1 day | **Status:** ⏳ Pending
+- [ ] Create SSO Callback page (`src/pages/Auth/SSOCallback.tsx`)
+ - Handle OAuth2 callback from SSO
+ - Extract authorization code from URL params
+ - Call backend callback API (GET /api/v1/auth/callback?code=XXX)
+ - Receive JWT token from backend
+ - Store JWT in Redux + localStorage
+ - Redirect to dashboard on success
+ - Handle SSO errors (access denied, invalid code)
+ - Show loading spinner during authentication
+- [ ] Update route configuration (`src/routes/AppRoutes.tsx`)
+ - Add `/auth/callback` route (public)
+ - Add SSO redirect for unauthenticated users
+- [ ] Create PrivateRoute component
+ - Check if user authenticated (JWT exists)
+ - Redirect to SSO login if not authenticated
+ - Allow access if authenticated
+- [ ] Create PublicRoute component (optional)
+ - Redirect to dashboard if already authenticated
+- [ ] Test SSO flow end-to-end
+
+**Dependencies:** TASK-FE-004, TASK-FE-005
+**Deliverable:** Working SSO authentication flow
+
+**Note:** No login/signup/password reset pages needed (SSO handles everything)
+
+---
+
+#### **TASK-FE-102: Login Button & Logout Functionality**
+**Priority:** High | **Estimated Time:** 0.5 days | **Status:** ⏳ Pending
+- [ ] Create "Login with SSO" button on landing page
+ - Redirects to GET /api/v1/auth/login
+ - Backend redirects to SSO Bridge
+ - Simple button, no form needed
+- [ ] Implement logout functionality (Header component)
+ - Create logout Redux action
+ - Clear user state from Redux
+ - Clear JWT from localStorage
+ - Call POST /api/v1/auth/logout
+ - Redirect to SSO logout URL
+ - Show "Logged out successfully" message
+- [ ] Add logout button in user profile dropdown
+
+**Dependencies:** TASK-FE-101
+**Deliverable:** Login/logout functionality
+
+---
+
+#### **TASK-FE-103: User Profile & Header**
+**Priority:** Medium | **Estimated Time:** 1 day | **Status:** ⏳ Pending
+- [ ] Fetch current user from SSO (GET /api/v1/auth/me)
+ - Get user details (name, email, employee ID, department, phone)
+ - Display in Redux state
+ - Show in header dropdown
+- [ ] Create user profile dropdown in header
+ - User avatar/profile picture
+ - Display name and email
+ - Department name
+ - Employee ID
+ - Logout button
+- [ ] Create Edit Profile modal (limited fields)
+ - Update phone number (only editable field)
+ - Update profile picture
+ - Connect to PUT /api/v1/users/:id
+ - Other fields (name, email, employee ID) are read-only (from AD)
+- [ ] User profile page (optional)
+ - View complete profile
+ - See department, designation
+ - View workflow statistics
+
+**Dependencies:** TASK-FE-007, TASK-FE-101
+**Deliverable:** User profile display and limited editing
+
+**Note:** Most user info comes from Active Directory (read-only), only phone/picture editable
+
+---
+
+### **SPRINT 2: Core Workflow Creation**
+
+#### **TASK-FE-201: Create Request - Wizard Structure**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Create CreateRequest page (`src/pages/CreateRequest/CreateRequest.tsx`)
+- [ ] Implement 6-step wizard with stepper:
+ 1. Template Selection
+ 2. Basic Information
+ 3. Approval Workflow
+ 4. Participants & Access
+ 5. Documents & Attachments
+ 6. Review & Submit
+- [ ] Create WizardStepper component
+ - Progress indicator (1/6, 2/6, etc.)
+ - Active step highlighting
+ - Clickable steps (if previous steps complete)
+- [ ] Add Next/Previous navigation buttons
+- [ ] Save draft functionality (auto-save)
+- [ ] Store wizard state in Redux
+
+**Dependencies:** TASK-FE-007
+**Deliverable:** Wizard navigation structure
+
+---
+
+#### **TASK-FE-202: Step 1 - Template Selection**
+**Priority:** High | **Estimated Time:** 3 hours
+- [ ] Create Template Selection step
+- [ ] Show two options:
+ - Custom Request (Non-Templatized) - Enabled
+ - Template Request - Disabled (future scope)
+- [ ] Visual card-based selection
+- [ ] Require selection before proceeding
+- [ ] Save selection to Redux state
+- [ ] Add helpful description for each option
+
+**Dependencies:** TASK-FE-201
+**Deliverable:** Template selection step
+
+---
+
+#### **TASK-FE-203: Step 2 - Basic Information**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Create Basic Information step
+- [ ] Form fields:
+ - **Request Title** (max 500 chars, required)
+ - **Detailed Description** (rich text editor, required)
+ - Support bold, italic, underline
+ - Support tables, lists
+ - Support links
+ - **Priority Level** (radio buttons, required)
+ - Standard (working days)
+ - Express (calendar days)
+- [ ] Form validation (all fields required)
+- [ ] Rich text editor integration (Quill/Draft.js/TinyMCE)
+- [ ] Save to Redux state
+- [ ] Character count indicators
+
+**Dependencies:** TASK-FE-201
+**Deliverable:** Basic information form
+
+---
+
+#### **TASK-FE-204: Step 3 - Approval Workflow**
+**Priority:** Critical | **Estimated Time:** 10 hours
+- [ ] Create Approval Workflow step
+- [ ] Dynamic approval level creation (max 10 levels)
+- [ ] For each level:
+ - Level name/title input
+ - Approver selection with @mention/search
+ - TAT input (hours or days dropdown)
+ - Add/Remove level buttons
+- [ ] User search/tagging component
+ - Search users by name/email
+ - Display user dropdown with profile pic
+ - Select user as approver
+- [ ] Real-time TAT calculation
+ - Sum all level TATs
+ - Display total TAT prominently
+- [ ] Approval Flow Summary (read-only view)
+ - Show all levels in hierarchy
+ - Show approvers and TAT for each
+- [ ] TAT Summary widget
+- [ ] Validation (at least 1 approver, valid TAT)
+- [ ] Save approval hierarchy to Redux
+
+**Dependencies:** TASK-FE-203
+**Deliverable:** Approval workflow builder
+
+---
+
+#### **TASK-FE-205: Step 4 - Participants & Access**
+**Priority:** High | **Estimated Time:** 4 hours
+- [ ] Create Participants step
+- [ ] Add Spectators section
+ - @mention/search component (reuse from Step 3)
+ - Add multiple spectators
+ - Display added spectators with remove option
+- [ ] Display participant permissions
+ - Spectators can view and comment
+ - Spectators cannot approve
+- [ ] Save participants to Redux state
+- [ ] Validation (optional spectators)
+
+**Dependencies:** TASK-FE-204
+**Deliverable:** Participant management step
+
+---
+
+#### **TASK-FE-206: Step 5 - Documents & Attachments**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create Documents step
+- [ ] File upload component (react-dropzone)
+ - Drag-and-drop area
+ - Browse files button
+ - Multiple file upload
+ - File type validation (PDF, Word, Excel, PPT, images)
+ - File size validation (max 10MB per file)
+- [ ] Display uploaded files list
+ - File name, size, type
+ - Preview icon for PDF/images
+ - Remove file option
+- [ ] Google Docs/Sheets link section
+ - Input for Google Docs URL
+ - Input for Google Sheets URL
+ - Validate Google URLs
+- [ ] Upload progress indicators
+- [ ] Save file metadata to Redux (actual upload on submit)
+
+**Dependencies:** TASK-FE-205
+**Deliverable:** Document upload step
+
+---
+
+#### **TASK-FE-207: Step 6 - Review & Submit**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Create Review & Submit step
+- [ ] Display comprehensive summary:
+ - **Request Overview**
+ - Request type, priority, title
+ - **Basic Information**
+ - Description (formatted)
+ - Priority level
+ - **Approval Workflow**
+ - All levels with approvers and TAT
+ - Total TAT calculation
+ - **Participants**
+ - List of spectators
+ - **Documents**
+ - List of attached files
+ - Google Docs/Sheets links
+- [ ] Add Edit buttons for each section (go back to step)
+- [ ] Two action buttons:
+ - **Save as Draft** (POST /api/v1/workflows with is_draft=true)
+ - **Submit Request** (POST /api/v1/workflows + PATCH /submit)
+- [ ] Loading state during submission
+- [ ] Success notification and redirect to request detail
+- [ ] Error handling and display
+
+**Dependencies:** TASK-FE-206
+**Deliverable:** Review & submit workflow
+
+---
+
+#### **TASK-FE-208: Workflow Creation API Integration**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Connect wizard to backend APIs
+- [ ] Implement workflow creation flow:
+ 1. POST /api/v1/workflows (create draft)
+ 2. Upload documents (POST /api/v1/workflows/:id/documents)
+ 3. Add approval levels (POST /api/v1/workflows/:id/approvals)
+ 4. Add spectators (POST /api/v1/workflows/:id/participants)
+ 5. Submit workflow (PATCH /api/v1/workflows/:id/submit)
+- [ ] Handle API errors at each step
+- [ ] Show loading states
+- [ ] Implement retry logic
+- [ ] Clear wizard state after successful submission
+
+**Dependencies:** TASK-FE-207
+**Deliverable:** Fully integrated workflow creation
+
+---
+
+### **SPRINT 3: Request Management & Approval Actions**
+
+#### **TASK-FE-301: My Requests Page**
+**Priority:** Critical | **Estimated Time:** 8 hours
+- [ ] Create My Requests page (`src/pages/MyRequests/MyRequests.tsx`)
+- [ ] Fetch user's workflows (GET /api/v1/workflows/my-requests)
+- [ ] Display category tabs:
+ - Total
+ - In Progress
+ - Approved
+ - Rejected
+ - Draft
+- [ ] Request card component displaying:
+ - Request number (REQ-YYYY-00001)
+ - Title
+ - Priority badge (EXPRESS/STANDARD)
+ - Status badge (color-coded)
+ - Current approval level
+ - Submission date
+ - Estimated completion date
+- [ ] Implement search functionality
+- [ ] Implement filters (status, priority, date range)
+- [ ] Implement sorting (date, priority, status)
+- [ ] Implement pagination
+- [ ] Click to navigate to request detail
+
+**Dependencies:** TASK-FE-007
+**Deliverable:** My Requests listing page
+
+---
+
+#### **TASK-FE-302: Open & Closed Requests Pages**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create Open Requests page
+ - Fetch GET /api/v1/workflows/open
+ - Show requests assigned to user or involving user
+ - Same card layout as My Requests
+ - Filters and search
+- [ ] Create Closed Requests page
+ - Fetch GET /api/v1/workflows/closed
+ - Show completed workflows
+ - Display conclusion remarks
+ - Filters and search
+- [ ] Reuse request card component from TASK-FE-301
+- [ ] Add loading states
+- [ ] Handle empty states (no requests)
+
+**Dependencies:** TASK-FE-301
+**Deliverable:** Open and Closed request pages
+
+---
+
+#### **TASK-FE-303: Request Detail Page - Overview Tab**
+**Priority:** Critical | **Estimated Time:** 8 hours
+- [ ] Create Request Detail page (`src/pages/RequestDetail/RequestDetail.tsx`)
+- [ ] Fetch workflow details (GET /api/v1/workflows/:id)
+- [ ] Display request information:
+ - Request number
+ - Title
+ - Description (formatted HTML)
+ - Initiator name, department, contact
+ - Priority badge
+ - Status badge
+ - Created date
+ - Submission date
+- [ ] TAT Progress Bar component
+ - Visual progress bar (elapsed/total)
+ - Color-coded (green: on track, yellow: approaching, red: breached)
+ - Display remaining time
+ - Show TAT status text
+- [ ] Tab navigation:
+ - Overview (default)
+ - Workflow
+ - Documents
+ - Activity
+- [ ] Spectators list sidebar
+- [ ] Quick Actions sidebar (for approvers):
+ - Add Work Note
+ - Add Approver
+ - Add Spectator
+ - Approve Request
+ - Reject Request
+
+**Dependencies:** TASK-FE-301
+**Deliverable:** Request detail overview
+
+---
+
+#### **TASK-FE-304: Request Detail - Workflow Tab**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Create Workflow Tab component
+- [ ] Fetch approval hierarchy (GET /api/v1/workflows/:id/approvals)
+- [ ] Display approval levels in vertical timeline:
+ - Level number and name
+ - Approver name and designation
+ - TAT allocation (hours/days)
+ - Status indicator (Pending, In Progress, Approved, Rejected, Completed)
+ - Action date/timestamp
+ - Approver comments
+- [ ] Highlight current active level
+- [ ] Show TAT tracking for each level:
+ - Elapsed time
+ - Remaining time
+ - TAT status (on track, approaching, breached)
+ - Color-coded progress bars
+- [ ] Display completion checkmarks for approved levels
+- [ ] Show rejection reason if rejected
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Workflow timeline view
+
+---
+
+#### **TASK-FE-305: Request Detail - Documents Tab**
+**Priority:** High | **Estimated Time:** 5 hours
+- [ ] Create Documents Tab component
+- [ ] Fetch documents (GET /api/v1/workflows/:id/documents)
+- [ ] Display documents in list/grid view:
+ - File name
+ - File type icon
+ - File size
+ - Uploader name
+ - Upload timestamp
+ - Preview button (PDF/images only)
+ - Download button
+- [ ] Implement PDF preview modal (inline viewer)
+- [ ] Implement image preview modal (lightbox)
+- [ ] Download document (GET /api/v1/documents/:id/download)
+- [ ] Display Google Docs/Sheets links separately
+- [ ] Show empty state if no documents
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Documents tab with preview
+
+---
+
+#### **TASK-FE-306: Request Detail - Activity Tab**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Create Activity Tab component
+- [ ] Fetch activities (GET /api/v1/workflows/:id/activities)
+- [ ] Display activity timeline (reverse chronological):
+ - Event icon (color-coded by type)
+ - Event description
+ - User name (if user action)
+ - Timestamp (relative time: "2 hours ago")
+ - Metadata (if applicable)
+- [ ] Activity types:
+ - Request created
+ - Request submitted
+ - Approver added
+ - Spectator added
+ - Document uploaded
+ - Document deleted
+ - Work note added
+ - Approval/rejection
+ - TAT warning
+ - TAT breach
+ - Status change
+- [ ] Filter by activity type (optional)
+- [ ] Auto-refresh on page load
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Activity timeline view
+
+---
+
+#### **TASK-FE-307: Approve/Reject Modal**
+**Priority:** Critical | **Estimated Time:** 6 hours
+- [ ] Create Approve Request modal component
+ - Display request ID and title
+ - Mandatory comments field (max 500 chars)
+ - Character counter
+ - "Approve Request" button
+ - "Cancel" button
+- [ ] Create Reject Request modal component
+ - Display request ID and title
+ - Mandatory rejection reason (max 500 chars)
+ - Character counter
+ - "Reject Request" button (red/danger)
+ - "Cancel" button
+- [ ] Form validation (comments required)
+- [ ] Connect to APIs:
+ - PATCH /api/v1/workflows/:id/approvals/:levelId/approve
+ - PATCH /api/v1/workflows/:id/approvals/:levelId/reject
+- [ ] Show loading state during submission
+- [ ] Success notification
+- [ ] Refresh request detail after action
+- [ ] Handle errors (not authorized, already actioned, etc.)
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Approval/rejection modals
+
+---
+
+#### **TASK-FE-308: Add Work Note / Chat Component**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Create Work Notes component (chat interface)
+- [ ] Fetch work notes (GET /api/v1/workflows/:id/work-notes)
+- [ ] Display messages in chronological order:
+ - User avatar
+ - User name and role badge
+ - Message text (support line breaks)
+ - Timestamp (relative time)
+ - Reactions (emoji reactions)
+ - Attachments (if any)
+- [ ] Message composer at bottom:
+ - Text input (textarea, auto-expand)
+ - @mention autocomplete dropdown
+ - Attach file button
+ - Send button
+ - Character counter (max 2000 chars)
+- [ ] Implement @mention detection and autocomplete
+- [ ] Send message (POST /api/v1/workflows/:id/work-notes)
+- [ ] Upload attachments with messages
+- [ ] Implement reactions (POST /api/v1/work-notes/:id/reactions)
+- [ ] Scroll to bottom on new message
+- [ ] Auto-refresh messages (polling or websocket)
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Work notes chat interface
+
+---
+
+#### **TASK-FE-309: Add Approver/Spectator Modal**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Create "Add Approver" modal
+ - User search/autocomplete with @mention
+ - Dropdown showing matching users
+ - Display user name, email, department
+ - "Add" and "Cancel" buttons
+ - Connect to POST /api/v1/workflows/:id/approvals
+- [ ] Create "Add Spectator" modal
+ - Same UI as Add Approver
+ - Connect to POST /api/v1/workflows/:id/participants
+- [ ] Show success notification
+- [ ] Refresh request detail after adding
+- [ ] Handle errors (user already added)
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Add participant modals
+
+---
+
+### **SPRINT 4: Notifications & Dashboard**
+
+#### **TASK-FE-401: Notification System**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create NotificationBell component in header
+- [ ] Display unread notification count badge
+- [ ] Fetch notifications (GET /api/v1/notifications)
+- [ ] Create notification dropdown panel:
+ - List of recent notifications (max 10)
+ - Notification item with:
+ - Type icon
+ - Title
+ - Message
+ - Timestamp (relative)
+ - Read/unread indicator
+ - "View All" link
+ - "Mark All as Read" button
+- [ ] Click notification to:
+ - Mark as read (PATCH /api/v1/notifications/:id/read)
+ - Navigate to related request
+- [ ] Create full Notifications page (optional)
+- [ ] Implement polling for new notifications (every 30 sec)
+- [ ] Show toast notifications for high-priority alerts
+- [ ] Handle notification types:
+ - Approval assignment
+ - TAT warning
+ - TAT breach
+ - Work note mention
+ - Approval/rejection
+ - Request closure
+
+**Dependencies:** TASK-FE-007
+**Deliverable:** Notification system
+
+---
+
+#### **TASK-FE-402: Dashboard Page**
+**Priority:** Medium | **Estimated Time:** 8 hours
+- [ ] Create Dashboard page (`src/pages/Dashboard/Dashboard.tsx`)
+- [ ] Fetch dashboard statistics (GET /api/v1/dashboard/stats)
+- [ ] Display key metrics cards:
+ - Total Requests
+ - Pending Approvals
+ - Approved Requests
+ - Rejected Requests
+ - TAT Breached
+ - Avg. Approval Time
+- [ ] Create Recent Activities widget
+ - Fetch GET /api/v1/dashboard/recent
+ - Display last 10 activities
+- [ ] Create Pending Actions widget
+ - Fetch GET /api/v1/dashboard/pending-actions
+ - Show requests requiring user's action
+- [ ] Create charts (using Recharts):
+ - Requests by Status (pie chart)
+ - Requests by Priority (bar chart)
+ - Approval Trend (line chart over time)
+- [ ] Add date range filter
+- [ ] Make dashboard responsive
+
+**Dependencies:** TASK-FE-401
+**Deliverable:** Dashboard with statistics
+
+---
+
+#### **TASK-FE-403: Conclusion Remark UI**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Create Conclusion section in Request Detail
+- [ ] Show after final approval
+- [ ] Display AI-generated conclusion
+- [ ] For Initiator only:
+ - "Edit Conclusion" button
+ - Edit modal with textarea
+ - "Save" and "Cancel" buttons
+ - Connect to PUT /api/v1/workflows/:id/conclusion
+- [ ] For other users: Read-only view
+- [ ] Display conclusion in:
+ - Request detail page
+ - My Requests (approved)
+ - Open Requests
+ - Closed Requests
+- [ ] Show placeholder if no conclusion exists
+
+**Dependencies:** TASK-FE-303
+**Deliverable:** Conclusion remark UI
+
+---
+
+#### **TASK-FE-404: Workflow Closure UI**
+**Priority:** High | **Estimated Time:** 3 hours
+- [ ] Add "Close Request" button in request detail
+ - Only visible to initiator
+ - Only after final approval
+ - Requires conclusion remark
+- [ ] Create Close Request confirmation modal
+ - Display summary
+ - Show final conclusion
+ - "Confirm Close" button
+ - "Cancel" button
+- [ ] Connect to PATCH /api/v1/workflows/:id/close
+- [ ] Show success notification
+- [ ] Redirect to Closed Requests or stay on page
+- [ ] Update request status to CLOSED
+- [ ] Display closure date
+
+**Dependencies:** TASK-FE-403
+**Deliverable:** Workflow closure functionality
+
+---
+
+### **SPRINT 5: Polish & User Experience**
+
+#### **TASK-FE-501: Search & Filter Components**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Create SearchBar component (reusable)
+- [ ] Create FilterPanel component
+ - Status filter (checkboxes)
+ - Priority filter (checkboxes)
+ - Date range filter (date pickers)
+ - Department filter (dropdown)
+ - Initiator filter (user search)
+- [ ] Implement search logic (debounce 300ms)
+- [ ] Implement filter application
+- [ ] Add "Clear Filters" button
+- [ ] Show active filter count
+- [ ] Persist filters in URL query params
+- [ ] Apply to:
+ - My Requests
+ - Open Requests
+ - Closed Requests
+
+**Dependencies:** TASK-FE-301, TASK-FE-302
+**Deliverable:** Search and filter functionality
+
+---
+
+#### **TASK-FE-502: Responsive Design & Mobile**
+**Priority:** High | **Estimated Time:** 8 hours
+- [ ] Make all pages responsive
+- [ ] Test on breakpoints:
+ - Mobile (320px - 767px)
+ - Tablet (768px - 1023px)
+ - Desktop (1024px+)
+- [ ] Adjust layouts:
+ - Collapsible sidebar on mobile
+ - Hamburger menu
+ - Stack cards vertically on mobile
+ - Adjust table to cards on mobile
+ - Responsive modals
+- [ ] Test touch interactions
+- [ ] Optimize images and assets
+- [ ] Test on real devices
+
+**Dependencies:** All frontend tasks
+**Deliverable:** Fully responsive UI
+
+---
+
+#### **TASK-FE-503: Loading States & Error Handling**
+**Priority:** High | **Estimated Time:** 4 hours
+- [ ] Add loading skeletons for all data fetching
+ - Request list skeleton
+ - Request detail skeleton
+ - Dashboard skeleton
+- [ ] Create ErrorState component (empty state)
+- [ ] Create EmptyState component (no data)
+- [ ] Add error boundaries around major sections
+- [ ] Implement retry logic for failed requests
+- [ ] Show user-friendly error messages
+- [ ] Add toast notifications for actions
+- [ ] Handle network errors gracefully
+
+**Dependencies:** All data-fetching tasks
+**Deliverable:** Better UX with loading/error states
+
+---
+
+#### **TASK-FE-504: Accessibility (A11y)**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Add ARIA labels to interactive elements
+- [ ] Ensure keyboard navigation works
+- [ ] Add focus indicators
+- [ ] Test with screen readers
+- [ ] Ensure proper heading hierarchy
+- [ ] Add alt text to images
+- [ ] Ensure color contrast meets WCAG AA
+- [ ] Add skip navigation links
+- [ ] Test tab order
+
+**Dependencies:** All component tasks
+**Deliverable:** Accessible application
+
+---
+
+### **SPRINT 6: Testing & Deployment**
+
+#### **TASK-FE-601: Unit Testing**
+**Priority:** High | **Estimated Time:** 10 hours
+- [ ] Setup Vitest testing framework
+- [ ] Setup React Testing Library
+- [ ] Write component tests:
+ - Login component test
+ - Registration component test
+ - Workflow wizard tests
+ - Request card test
+ - Approval modal test
+ - Work notes test
+ - Notification test
+- [ ] Write Redux slice tests
+- [ ] Write utility function tests
+- [ ] Achieve >70% code coverage
+- [ ] Mock API calls
+
+**Dependencies:** All component tasks
+**Deliverable:** Component test suite
+
+---
+
+#### **TASK-FE-602: Integration Testing**
+**Priority:** High | **Estimated Time:** 6 hours
+- [ ] Test complete user flows:
+ - User registration → login flow
+ - Create workflow → submit flow
+ - Approve/reject workflow flow
+ - Add work note flow
+ - Upload document flow
+- [ ] Test navigation between pages
+- [ ] Test Redux state updates
+- [ ] Test API integration with mock server
+- [ ] Test error scenarios
+
+**Dependencies:** TASK-FE-601
+**Deliverable:** Integration test suite
+
+---
+
+#### **TASK-FE-603: Performance Optimization**
+**Priority:** Medium | **Estimated Time:** 4 hours
+- [ ] Implement code splitting with React.lazy
+- [ ] Optimize bundle size (tree shaking)
+- [ ] Lazy load images
+- [ ] Implement virtualization for long lists
+- [ ] Memoize expensive components (React.memo)
+- [ ] Optimize Redux selectors (reselect)
+- [ ] Add service worker for offline support (optional)
+- [ ] Compress assets
+- [ ] Analyze bundle with Vite build analyzer
+
+**Dependencies:** All frontend tasks
+**Deliverable:** Optimized frontend performance
+
+---
+
+#### **TASK-FE-604: Deployment Setup**
+**Priority:** High | **Estimated Time:** 4 hours
+- [ ] Create Dockerfile for frontend
+- [ ] Create nginx configuration
+- [ ] Setup environment variables for production
+- [ ] Configure production build (npm run build)
+- [ ] Setup CI/CD pipeline (GitHub Actions)
+- [ ] Configure GCP Cloud Run or Storage
+- [ ] Setup CDN for static assets
+- [ ] Configure HTTPS
+- [ ] Test production build locally
+
+**Dependencies:** TASK-FE-603
+**Deliverable:** Deployment-ready frontend
+
+---
+
+## Task Dependencies
+
+### Critical Path (Must be completed in order)
+
+```
+BACKEND CRITICAL PATH:
+TASK-BE-001 → TASK-BE-002 → TASK-BE-003 → TASK-BE-004
+ ↓
+TASK-BE-101 → TASK-BE-102 → TASK-BE-103
+ ↓
+TASK-BE-201 → TASK-BE-202 → TASK-BE-301 → TASK-BE-302
+ ↓
+TASK-BE-401 → TASK-BE-402
+
+FRONTEND CRITICAL PATH:
+TASK-FE-001 → TASK-FE-002 → TASK-FE-003 → TASK-FE-004
+ ↓
+TASK-FE-101 → TASK-FE-102
+ ↓
+TASK-FE-201 → TASK-FE-202 → ... → TASK-FE-207 → TASK-FE-208
+ ↓
+TASK-FE-301 → TASK-FE-303 → TASK-FE-307
+```
+
+### Parallel Tasks (Can be done simultaneously)
+
+**Sprint 0:**
+- TASK-BE-001 and TASK-FE-001 (both teams can setup repos)
+- TASK-BE-002 (DB) and TASK-FE-002 (UI framework)
+
+**Sprint 1:**
+- TASK-BE-103 (User APIs) and TASK-FE-103 (Password reset)
+
+**Sprint 3:**
+- TASK-FE-304, TASK-FE-305, TASK-FE-306 (all tabs can be done in parallel)
+
+**Sprint 5:**
+- TASK-FE-501, TASK-FE-502, TASK-FE-503, TASK-FE-504 (all polish tasks)
+
+---
+
+## Revised Timeline & Milestones (Week-Based with Current Status)
+
+### Updated Week-by-Week Breakdown
+
+| Week | Sprint | Backend Tasks | Backend Time | Frontend Tasks | Frontend Time | Status | Milestone |
+|------|--------|---------------|--------------|----------------|---------------|--------|-----------|
+| **Week 1** | Sprint 0 | BE-001 to BE-004 | 3 days | FE-001, FE-002, FE-006, FE-007 (UI) | 0 days (Figma) | 🔄 Both In Progress | UI extraction ongoing |
+| **Week 2** | Sprint 0+1 | BE-004 (Complete)
BE-101 Start | 2 days | FE-003, FE-004, FE-005
FE-101 Start | 4 days | 🔄 Current Week | Foundation + Auth Start |
+| **Week 3** | Sprint 1+2 | BE-101 to BE-103
BE-201 Start | 4 days | FE-101 to FE-104
FE-201 to FE-203 | 4 days | ⏳ Upcoming | Auth Complete + Workflow Start |
+| **Week 4** | Sprint 2 | BE-201, BE-202 | 4 days | FE-204 to FE-207 | 4 days | ⏳ Upcoming | Workflow wizard functional |
+| **Week 5** | Sprint 2+3 | BE-203, BE-204
BE-301 Start | 4 days | FE-208, FE-301, FE-302 | 4 days | ⏳ Upcoming | Workflow + Approvals Start |
+| **Week 6** | Sprint 3 | BE-301, BE-302 | 4 days | FE-303 to FE-306 | 4 days | ⏳ Upcoming | Approval flow working |
+| **Week 7** | Sprint 3+4 | BE-303, BE-401 | 4 days | FE-307 to FE-309, FE-401 | 4 days | ⏳ Upcoming | Approvals + Docs Start |
+| **Week 8** | Sprint 4+5 | BE-402, BE-403, BE-501 | 4 days | FE-402 to FE-404, FE-501 | 4 days | ⏳ Upcoming | Docs + Dashboard |
+| **Week 9** | Sprint 5+6 | BE-502, BE-503, BE-601 | 4 days | FE-502 to FE-504, FE-601 | 4 days | ⏳ Upcoming | Testing starts |
+| **Week 10** | Sprint 6 | BE-602 to BE-605 | 4 days | FE-602 to FE-604 | 4 days | ⏳ Upcoming | Testing + Deployment |
+
+**Revised Timeline:**
+- **Frontend:** 7-8 weeks (due to API integration work)
+- **Backend:** 8 weeks (as planned)
+- **Overall:** ~10 weeks total
+
+---
+
+## Task Estimation Summary (Week-Based)
+
+### Backend Tasks (Time Estimates in Days/Weeks)
+
+| Sprint | Task ID | Task Name | Estimated Time | Status |
+|--------|---------|-----------|----------------|--------|
+| **Sprint 0** | BE-001 | Repository Setup | 0.5 days | 🔄 In Progress |
+| | BE-002 | Database Schema | 1 day | ⏳ Pending |
+| | BE-003 | Backend Configuration | 0.5 days | ⏳ Pending |
+| | BE-004 | Sequelize ORM Setup | 1 day | ⏳ Pending |
+| | **Sprint 0 Total** | | **3 days** | |
+| **Sprint 1** | BE-101 | Authentication System | 2 days | ⏳ Pending |
+| | BE-102 | User Management APIs | 1 day | ⏳ Pending |
+| | BE-103 | User Profile | 1 day | ⏳ Pending |
+| | **Sprint 1 Total** | | **4 days** | |
+| **Sprint 2** | BE-201 | Workflow Creation APIs | 2 days | ⏳ Pending |
+| | BE-202 | Approval Hierarchy | 1.5 days | ⏳ Pending |
+| | BE-203 | Participant Management | 1 day | ⏳ Pending |
+| | BE-204 | Workflow Listing/Filtering | 1.5 days | ⏳ Pending |
+| | **Sprint 2 Total** | | **2 weeks (8 days)** | |
+| **Sprint 3** | BE-301 | Approval/Rejection Actions | 2 days | ⏳ Pending |
+| | BE-302 | TAT Tracking & Monitoring | 2 days | ⏳ Pending |
+| | BE-303 | Notification System | 2 days | ⏳ Pending |
+| | **Sprint 3 Total** | | **1.5 weeks (6 days)** | |
+| **Sprint 4** | BE-401 | Document Management | 2 days | ⏳ Pending |
+| | BE-402 | Work Notes & Chat | 2 days | ⏳ Pending |
+| | BE-403 | Activity Log System | 1 day | ⏳ Pending |
+| | **Sprint 4 Total** | | **1 week (5 days)** | |
+| **Sprint 5** | BE-501 | Dashboard Statistics | 1.5 days | ⏳ Pending |
+| | BE-502 | AI Conclusion Generation | 1.5 days | ⏳ Pending |
+| | BE-503 | Workflow Closure | 1 day | ⏳ Pending |
+| | **Sprint 5 Total** | | **4 days** | |
+| **Sprint 6** | BE-601 | Unit Testing | 2 days | ⏳ Pending |
+| | BE-602 | Integration Testing | 2 days | ⏳ Pending |
+| | BE-603 | API Documentation | 1 day | ⏳ Pending |
+| | BE-604 | Performance Optimization | 1.5 days | ⏳ Pending |
+| | BE-605 | Deployment Setup | 1.5 days | ⏳ Pending |
+| | **Sprint 6 Total** | | **2 weeks (8 days)** | |
+| **TOTAL BACKEND** | | **25 Tasks** | **~8 weeks (42 days)** | |
+
+---
+
+### Frontend Tasks (Time Estimates in Days/Weeks)
+
+| Sprint | Task ID | Task Name | Estimated Time | Status |
+|--------|---------|-----------|----------------|--------|
+| **Sprint 0** | FE-001 | Repository Setup | 0 days | ✅ Complete |
+| | FE-002 | UI Framework | 0 days | ✅ Complete |
+| | FE-003 | Redux Store Setup | 2 days | ❌ NOT STARTED |
+| | FE-004 | API Service Layer | 1 day | ❌ NOT STARTED |
+| | FE-005 | Route Guards | 1 day | ❌ NOT STARTED |
+| | FE-006 | Components (Figma UI) | 0 days (80% done) | 🔄 In Progress |
+| | FE-007 | Layout (Figma UI) | 0 days (80% done) | 🔄 In Progress |
+| | **Sprint 0 Actual** | | **1 week (4 days)** | **16% Done** |
+| **Sprint 1** | FE-101 | SSO Callback & Routes | 1 day | ⏳ Waiting for BE-101 |
+| | FE-102 | Login/Logout Buttons | 0.5 days | ⏳ Pending |
+| | FE-103 | User Profile Header | 1 day | ⏳ Pending |
+| | **Sprint 1 Total** | | **2.5 days** | **SSO: No login/signup screens** |
+| **Sprint 2** | FE-201 | Wizard Structure + Redux | 1 day | 🔄 UI Done, Need Redux |
+| | FE-202 | Template Selection | 0.5 days | 🔄 UI Done, Need Logic |
+| | FE-203 | Basic Info + Validation | 1 day | 🔄 UI Done, Need Validation |
+| | FE-204 | Approval Workflow + Logic | 2 days | 🔄 UI Done, Need TAT Logic |
+| | FE-205 | Participants + API | 1 day | 🔄 UI Done, Need API |
+| | FE-206 | Documents Upload + API | 1 day | 🔄 UI Done, Need Upload Logic |
+| | FE-207 | Review & Submit + API | 1 day | 🔄 UI Done, Need API |
+| | FE-208 | Full API Integration | 2 days | ❌ NOT STARTED |
+| | **Sprint 2 Revised** | | **2 weeks (9 days)** | **UI: 80%, Logic: 0%** |
+| **Sprint 3** | FE-301 | My Requests + API | 1.5 days | 🔄 UI Done, Need API |
+| | FE-302 | Open/Closed + API | 1 day | 🔄 UI Done, Need API |
+| | FE-303 | Request Detail + API | 2 days | 🔄 UI Done, Need API |
+| | FE-304 | Workflow Tab + API | 1 day | 🔄 UI Done, Need API |
+| | FE-305 | Documents Tab + API | 1 day | 🔄 UI Done, Need API |
+| | FE-306 | Activity Tab + API | 1 day | 🔄 UI Done, Need API |
+| | FE-307 | Approve/Reject + API | 1.5 days | 🔄 UI Done, Need API |
+| | FE-308 | Work Notes + Backend | 1 day | 🔄 UI + Partial Logic Done |
+| | FE-309 | Add Approver/Spectator | 1 day | 🔄 UI Done, Need API |
+| | **Sprint 3 Revised** | | **2 weeks (10 days)** | **UI: 80%, API: 0%** |
+| **Sprint 4** | FE-401 | Notification + Polling | 1.5 days | 🔄 UI Done, Need API |
+| | FE-402 | Dashboard + Charts | 2 days | 🔄 UI Done, Need API |
+| | FE-403 | Conclusion + AI | 1 day | 🔄 UI Done, Need API |
+| | FE-404 | Workflow Closure | 1 day | 🔄 UI Done, Need API |
+| | **Sprint 4 Revised** | | **1 week (5 days)** | **UI: 80%, API: 0%** |
+| **Sprint 5** | FE-501 | Search & Filter | 1 day | ⏳ Pending |
+| | FE-502 | Responsive Design | 1 day | ⏳ Pending |
+| | FE-503 | Loading/Error States | 0.5 days | ⏳ Pending |
+| | FE-504 | Accessibility (A11y) | 0.5 days | ⏳ Pending |
+| | **Sprint 5 Total** | | **3 days** | |
+| **Sprint 6** | FE-601 | Unit Testing | 2 days | ⏳ Pending |
+| | FE-602 | Integration Testing | 1 day | ⏳ Pending |
+| | FE-603 | Performance Optimization | 1 day | ⏳ Pending |
+| | FE-604 | Deployment Setup | 1 day | ⏳ Pending |
+| | **Sprint 6 Total** | | **1 week (5 days)** | |
+| **TOTAL FRONTEND** | | **40 Tasks** | **~7 weeks (35 days)** | **16% Complete (UI Only)** |
+
+---
+
+### ⚠️ REVISED FRONTEND EFFORT BREAKDOWN
+
+**Figma UI Extraction vs Actual Development:**
+
+| Work Category | Figma Extracted | Still Required | Total Time |
+|--------------|-----------------|----------------|------------|
+| **Visual UI Components** | 80% Done | 20% remaining | 1-2 days |
+| **Redux Store Setup** | 0% | 100% needed | 2-3 days |
+| **API Service Layer** | 0% | 100% needed | 1 day |
+| **Route Guards & Auth** | 0% | 100% needed | 1 day |
+| **Form Validations** | 0% | 100% needed | 3-4 days |
+| **API Integration (All Pages)** | 0% | 100% needed | 10-12 days |
+| **State Management Logic** | 0% | 100% needed | 5-6 days |
+| **Error Handling** | 0% | 100% needed | 2-3 days |
+| **Loading States** | 0% | 100% needed | 2-3 days |
+| **Testing** | 0% | 100% needed | 5 days |
+| **TOTAL** | **16%** | **84%** | **~35 days** |
+
+**Key Insight:**
+- Figma gave us the "look and feel" (16% of work)
+- We still need to build the "brain and connections" (84% of work)
+
+---
+
+## Task Summary
+
+### Backend Tasks Summary
+- **Sprint 0:** 4 tasks (Setup & Infrastructure)
+- **Sprint 1:** 3 tasks (Authentication)
+- **Sprint 2:** 4 tasks (Workflow Creation)
+- **Sprint 3:** 3 tasks (Approvals & Notifications)
+- **Sprint 4:** 3 tasks (Documents & Work Notes)
+- **Sprint 5:** 3 tasks (Dashboard & AI)
+- **Sprint 6:** 5 tasks (Testing & Deployment)
+
+**Total Backend Tasks:** 25 tasks
+
+### Frontend Tasks Summary
+- **Sprint 0:** 7 tasks (Setup & Components)
+- **Sprint 1:** 4 tasks (Authentication)
+- **Sprint 2:** 8 tasks (Workflow Wizard)
+- **Sprint 3:** 9 tasks (Request Management)
+- **Sprint 4:** 4 tasks (Notifications & Dashboard)
+- **Sprint 5:** 4 tasks (Polish & UX)
+- **Sprint 6:** 4 tasks (Testing & Deployment)
+
+**Total Frontend Tasks:** 40 tasks
+
+---
+
+## Notes for Development Team
+
+### Backend Team Notes
+1. **Standard Login First:** Implement email/password authentication before SSO integration
+2. **Database First:** Complete database schema before starting API development
+3. **Testing:** Write tests alongside development, not at the end
+4. **Documentation:** Document all APIs in Swagger as you build them
+5. **TAT Logic:** TAT calculation is critical - test thoroughly
+6. **Notifications:** Build notification system early as many features depend on it
+
+### Frontend Team Notes
+1. **Component Library First:** Build reusable components before pages
+2. **Redux Structure:** Plan Redux structure carefully to avoid refactoring
+3. **API Service Layer:** Keep all API calls in service files, not in components
+4. **Responsive from Start:** Build responsive layouts from the beginning
+5. **Accessibility:** Consider keyboard navigation and screen readers
+6. **Loading States:** Always show loading indicators for async operations
+
+### Key Integration Points
+1. **Authentication:** Backend must provide JWT tokens, frontend must store and send them
+2. **File Upload:** Backend accepts multipart/form-data, frontend uses FormData
+3. **TAT Display:** Backend sends TAT in hours, frontend converts to days/hours for display
+4. **Real-time Updates:** Use polling (every 30 sec) for notifications and work notes
+5. **Error Handling:** Backend returns consistent error format, frontend displays user-friendly messages
+
+---
+
+## Risk Management
+
+### High Risk Areas
+1. **TAT Calculation Logic:** Complex business rules for working days vs calendar days
+2. **Multi-level Approvals:** Ensure workflow progression logic is bulletproof
+3. **File Upload:** Large files, network issues, storage quotas
+4. **Real-time Notifications:** Polling vs WebSockets decision
+5. **AI Integration:** Third-party API dependency for conclusion generation
+
+### Mitigation Strategies
+1. **TAT:** Write comprehensive unit tests, create test scenarios document
+2. **Approvals:** State machine diagram, thorough testing of all paths
+3. **Files:** Implement chunked upload, progress indicators, retry logic
+4. **Notifications:** Start with polling, plan for WebSocket upgrade
+5. **AI:** Mock AI responses for development, have fallback to manual conclusion
+
+---
+
+## Definition of Done (DoD)
+
+### For Backend Tasks
+- [ ] Code written and follows TypeScript best practices
+- [ ] API endpoint tested with Postman/Insomnia
+- [ ] Unit tests written and passing (>80% coverage)
+- [ ] API documented in Swagger
+- [ ] Error handling implemented
+- [ ] Logging added for debugging
+- [ ] Code reviewed and merged to develop branch
+
+### For Frontend Tasks
+- [ ] Component/page implemented and styled
+- [ ] Responsive design tested (mobile, tablet, desktop)
+- [ ] Connected to backend API (if applicable)
+- [ ] Loading and error states handled
+- [ ] Component tests written (if reusable)
+- [ ] Accessibility considerations addressed
+- [ ] Code reviewed and merged to develop branch
+
+---
+
+## Getting Started
+
+### For Backend Developers
+1. Clone `re-workflow-backend` repository
+2. Install Node.js 22 LTS and PostgreSQL 16
+3. Run `npm install` to install dependencies
+4. Create `.env` file from `.env.example`
+5. Setup database with schema SQL file
+6. Start development: `npm run dev`
+7. Pick tasks from Sprint 0 and start building!
+
+### For Frontend Developers
+1. Clone `re-workflow-frontend` repository
+2. Install Node.js 22 LTS
+3. Run `npm install` to install dependencies
+4. Create `.env` file from `.env.example`
+5. Configure API base URL to backend
+6. Start development: `npm run dev`
+7. Pick tasks from Sprint 0 and start building!
+
+---
+
+## Communication & Coordination
+
+### Daily Standup Questions
+1. What did you complete yesterday?
+2. What will you work on today?
+3. Any blockers or dependencies?
+4. Any integration points with other tasks?
+
+### Weekly Sync
+1. Review sprint progress
+2. Demo completed features
+3. Discuss upcoming integration points
+4. Adjust timeline if needed
+
+### Tools
+- **Project Management:** Jira / Linear / Trello
+- **Communication:** Slack / Microsoft Teams
+- **Code Review:** GitHub Pull Requests
+- **API Testing:** Postman (shared collection)
+- **Documentation:** Confluence / Notion
+
+---
+
+---
+
+## 📊 Visual Timeline & Current Progress
+
+### Project Progress Overview
+
+```
+PROJECT START ─────────────────────────────────── PROJECT END
+ ↓ YOU ARE HERE (Week 2)
+
+Week 1: ████████░░░░ 80% 🔄 Frontend Sprint 0 - UI Only (No Functionality)
+Week 1: ███████░░░░░ 70% 🔄 Backend Sprint 0 In Progress
+
+Week 2: ██░░░░░░░░░░ 15% 🔄 Sprint 1 - Authentication (CURRENT)
+Week 3: ░░░░░░░░░░░░ 0% ⏳ Sprint 2 Part 1 - Workflow Creation
+Week 4: ░░░░░░░░░░░░ 0% ⏳ Sprint 2 Part 2 - Workflow Creation
+Week 5: ░░░░░░░░░░░░ 0% ⏳ Sprint 3 Part 1 - Approvals
+Week 6: ░░░░░░░░░░░░ 0% ⏳ Sprint 3 Part 2 - Approvals
+Week 7: ░░░░░░░░░░░░ 0% ⏳ Sprint 4 - Documents & Work Notes
+Week 8: ░░░░░░░░░░░░ 0% ⏳ Sprint 5 - Dashboard & AI
+Week 9: ░░░░░░░░░░░░ 0% ⏳ Sprint 6 Part 1 - Testing
+Week 10: ░░░░░░░░░░░░ 0% ⏳ Sprint 6 Part 2 - Deployment
+
+OVERALL PROGRESS: ██░░░░░░░░░░░░░░░░░░ 10% Complete (Mostly UI)
+
+⚠️ WARNING: 80% UI ≠ 80% Complete
+ - UI extraction is only 20% of total work
+ - 80% UI done = 16% of frontend complete
+ - Still need: Redux, API integration, validations, business logic
+```
+
+---
+
+### Sprint-by-Sprint Detailed Timeline
+
+#### 🔄 IN PROGRESS: Sprint 0 (Week 1-2) - Frontend
+**Status:** 80% UI EXTRACTED (Visuals Only)
+
+**What's Actually Complete:**
+- ✅ FE-001: Repository & Environment Setup (100%)
+- ✅ FE-002: UI Framework & Styling (Material-UI configured) (100%)
+- 🔄 FE-003: Redux Store & State Management (0% - NOT STARTED)
+- 🔄 FE-004: API Service Layer (0% - NOT STARTED)
+- 🔄 FE-005: Routing & Navigation Guards (0% - NOT STARTED)
+- ✅ FE-006: Common Components Library - UI Only (80% - Dummy Data)
+- ✅ FE-007: Layout Components - UI Only (80% - Dummy Data)
+
+**Achievement:**
+- ✅ Visual UI extracted from Figma (80% complete)
+- ✅ Mobile responsive design included
+- ✅ All packages installed and dependencies resolved
+- ❌ **But:** No Redux, no API calls, no validations, no business logic
+
+**Remaining Sprint 0 Work (1 week):**
+- Complete 20% UI extraction (1-2 days)
+- Setup Redux store and all slices (2-3 days)
+- Configure Axios service layer (1 day)
+- Implement route guards (1 day)
+- Add basic form validations (1-2 days)
+
+**Revised Sprint 0 Completion:** End of Week 2
+
+---
+
+#### 🔄 IN PROGRESS: Sprint 0 (Week 1) - Backend
+**Status:** 70% COMPLETE
+**Completed Tasks:**
+- ✅ BE-001: Repository & Environment Setup (70% done)
+
+**Remaining Tasks (0.5 weeks):**
+- ⏳ BE-001: Complete repository setup (30% remaining)
+- ⏳ BE-002: Database Setup & Schema (1 day)
+- ⏳ BE-003: Backend Configuration (0.5 days)
+- ⏳ BE-004: Sequelize ORM Setup (1 day)
+
+**Target Completion:** End of Week 1
+
+---
+
+#### 🔄 CURRENT: Sprint 1 (Week 2) - Authentication
+**Status:** ACTIVE THIS WEEK
+**Start Date:** Week 2 Day 1
+**Target Completion:** Week 2 End
+
+**Backend Tasks (4 days):**
+- ⏳ BE-101: User Authentication System (2 days)
+ - JWT configuration
+ - Register, login, password reset APIs
+ - Authentication middleware
+- ⏳ BE-102: User Management APIs (1 day)
+- ⏳ BE-103: User Profile Management (1 day)
+
+**Frontend Tasks (2 days):**
+- 🔄 FE-101: Login Page (0.5 days) - IN PROGRESS
+- ⏳ FE-102: Registration Page (0.5 days)
+- ⏳ FE-103: Forgot/Reset Password (0.5 days)
+- ⏳ FE-104: User Profile & Header (0.5 days)
+
+**Milestone:** Fully working authentication with login, registration, and user profile.
+
+---
+
+#### ⏳ UPCOMING: Sprint 2 (Weeks 3-4) - Workflow Creation
+**Duration:** 2 weeks
+**Frontend Advantage:** Wizard UI already complete from Figma!
+
+**Week 3 Tasks:**
+- Backend: BE-201 (Workflow APIs), BE-202 (Approval Hierarchy)
+- Frontend: Connect wizard steps to backend APIs (FE-203, FE-204)
+
+**Week 4 Tasks:**
+- Backend: BE-203 (Participants), BE-204 (Filtering)
+- Frontend: Complete wizard integration (FE-205 to FE-208)
+
+**Milestone:** Complete workflow creation wizard functional end-to-end.
+
+---
+
+#### ⏳ UPCOMING: Sprint 3 (Weeks 5-6) - Approvals & Actions
+**Duration:** 2 weeks
+**Frontend Advantage:** Request pages & modals already built!
+
+**Week 5 Tasks:**
+- Backend: BE-301 (Approval Actions), BE-302 (TAT Tracking)
+- Frontend: Connect request listing pages to APIs (FE-301 to FE-303)
+
+**Week 6 Tasks:**
+- Backend: BE-303 (Notifications)
+- Frontend: Connect tabs and modals (FE-304 to FE-309)
+
+**Special Note:** FE-308 (Work Notes) is ALREADY COMPLETE with full functionality! ✅
+
+**Milestone:** Full approval workflow operational with notifications.
+
+---
+
+#### ⏳ UPCOMING: Sprint 4 (Week 7) - Documents & Collaboration
+**Duration:** 1 week
+**Frontend Advantage:** UI already complete, only need API integration!
+
+**Backend Tasks (4 days):**
+- BE-401: Document Management (2 days)
+- BE-402: Work Notes APIs (2 days) - Frontend already has UI!
+- BE-403: Activity Log System (1 day)
+
+**Frontend Tasks (2 days):**
+- Connect document upload/preview to APIs
+- Connect work notes chat to backend
+- Wire up activity timeline
+
+**Milestone:** Documents and collaboration features working.
+
+---
+
+#### ⏳ UPCOMING: Sprint 5 (Week 8) - Dashboard & Polish
+**Duration:** 1 week
+
+**Backend Tasks:**
+- BE-501: Dashboard Statistics (1.5 days)
+- BE-502: AI Conclusion Generation (1.5 days)
+- BE-503: Workflow Closure (1 day)
+
+**Frontend Tasks:**
+- FE-501: Search & Filter Components (1 day)
+- FE-502: Responsive Design Polish (1 day)
+- FE-503: Loading & Error States (0.5 days)
+- FE-504: Accessibility Improvements (0.5 days)
+
+**Milestone:** Complete feature set with analytics.
+
+---
+
+#### ⏳ UPCOMING: Sprint 6 (Weeks 9-10) - Testing & Deployment
+**Duration:** 2 weeks
+
+**Week 9 - Testing:**
+- Unit tests (backend & frontend)
+- Integration tests
+- API documentation
+- Bug fixes
+
+**Week 10 - Deployment:**
+- Performance optimization
+- Production deployment setup
+- CI/CD pipeline
+- Final QA and go-live
+
+**Milestone:** Production deployment! 🚀
+
+---
+
+## 🎯 Critical Path & Priorities
+
+### THIS WEEK (Week 2) - Must Complete:
+1. **Backend Priority:**
+ - ✅ Complete BE-001 (finish repo setup)
+ - 🔥 BE-002: Database schema MUST be done (blocks everything)
+ - 🔥 BE-101: Authentication APIs (blocks frontend integration)
+
+2. **Frontend Priority:**
+ - 🔄 FE-101: Complete login page integration
+ - FE-102 to FE-104: Wire up remaining auth pages
+
+### NEXT WEEK (Week 3) - Prepare Now:
+- Review workflow creation requirements
+- Ensure backend workflow APIs design is ready
+- Frontend wizard UI is ready (already done ✅), just need backend connection
+
+---
+
+## 📈 Velocity & Progress Tracking (REALISTIC)
+
+### Completed Work:
+- **Frontend UI:** 80% complete (visual components only, NO functionality)
+ - Translation: 16% of total frontend work (UI is ~20% of effort)
+ - Still need: Redux, API integration, validations, state management
+- **Frontend Functionality:** 5% complete (work notes partial)
+- **Backend:** 10% complete (repo setup in progress)
+- **Overall Project:** 10% complete (mostly static UI)
+
+### ⚠️ Reality Check - What "80% UI" Means:
+**Completed:**
+- Visual components (buttons, inputs, cards, modals)
+- Layout and styling
+- Mobile responsive design
+- Dummy data display
+
+**NOT Completed (This is 84% of remaining work):**
+- Redux state management (0%)
+- API integration (0%)
+- Form validations (0%)
+- Error handling (0%)
+- Loading states (0%)
+- Business logic (0%)
+- Authentication (0%)
+- Route guards (0%)
+
+### Estimated Remaining:
+- **Backend:** ~8 weeks (42 days remaining)
+- **Frontend:** ~7-8 weeks (35 days remaining)
+ - Redux setup: 3 days
+ - API integration: 12 days
+ - Validations: 4 days
+ - State management: 6 days
+ - Error/Loading states: 5 days
+ - Testing: 5 days
+- **Overall:** ~10 weeks to production
+
+### Time Actually Saved:
+- **Frontend UI Extraction:** Saved ~1 week (not 2-3 weeks as initially thought)
+ - Figma generated HTML/CSS/basic JSX
+ - Still need all functionality (API, Redux, logic)
+- **Work Notes Feature:** UI done, partial functionality (emoji, doc selection)
+ - Still need: Backend API integration, @mentions, notifications
+ - Saved: ~2-3 days
+
+---
+
+## 🚨 Risks & Mitigation
+
+### Current Risks:
+1. **Backend Setup Delay:** If BE-002 (database) takes longer, it blocks everything
+ - **Mitigation:** Prioritize database schema completion this week
+
+2. **API Integration Complexity:** Frontend-backend integration may reveal issues
+ - **Mitigation:** Early API testing, clear documentation, Postman collections
+
+3. **TAT Calculation Logic:** Complex business rules for working days
+ - **Mitigation:** Dedicated unit tests, test scenarios document
+
+### Advantages We Have:
+1. ✅ Frontend UI 80% extracted from Figma (saves ~1 week)
+2. ✅ Mobile responsive design included (saves testing time)
+3. ✅ Work notes UI + partial functionality (saves 2-3 days)
+4. ✅ Clear requirements from documentation
+5. ✅ Modern tech stack (TypeScript, React 19, Node.js 22)
+6. ✅ No need to design UI (Figma already provided)
+
+### Challenges We Face:
+1. ❌ **False sense of completion:** UI looks done but needs 84% more work
+2. ❌ **Integration complexity:** Each page needs API + Redux + validation
+3. ❌ **Backend dependency:** Frontend blocked until APIs are ready
+4. ❌ **TAT logic complexity:** Working days calculation is non-trivial
+5. ⚠️ **SSO uncertainty:** May need to refactor auth later
+
+---
+
+## 📅 Key Dates & Milestones
+
+| Date | Week | Milestone | Status |
+|------|------|-----------|--------|
+| Oct 16-20 | Week 1 | Figma UI Extraction Started | 🔄 80% Complete (Visual Only) |
+| Oct 21-25 | Week 2 | Sprint 0 Complete (Foundation) | 🔄 IN PROGRESS |
+| Oct 28 - Nov 1 | Week 3 | Authentication Working | ⏳ Target |
+| Nov 4-8 | Week 4 | Workflow Creation Started | ⏳ Upcoming |
+| Nov 11-15 | Week 5 | Workflow Creation Complete | ⏳ Upcoming |
+| Nov 18-22 | Week 6 | Approvals 50% | ⏳ Upcoming |
+| Nov 25-29 | Week 7 | Approvals Complete | ⏳ Upcoming |
+| Dec 2-6 | Week 8 | Documents & Work Notes | ⏳ Upcoming |
+| Dec 9-13 | Week 9 | Dashboard & AI | ⏳ Upcoming |
+| Dec 16-20 | Week 10 | Testing Phase | ⏳ Upcoming |
+| Dec 23-27 | Week 11 | **PRODUCTION LAUNCH** 🚀 | ⏳ Revised Target |
+
+**Timeline Adjustment:** +1 week due to realistic frontend effort assessment
+
+---
+
+## 💡 Recommendations for Success
+
+### For Backend Team:
+1. **This Week:** Focus 100% on database schema (BE-002) - this is critical path
+2. **Next Week:** Authentication APIs must be solid for frontend integration
+3. **Use Swagger:** Document APIs as you build them
+4. **Test Early:** Use Postman collections for quick testing
+5. **Communication:** Sync with frontend daily on API contracts
+
+### For Frontend Team:
+1. **🔥 THIS WEEK (CRITICAL):** Complete Sprint 0 foundation
+ - Finish last 20% UI extraction (1-2 days)
+ - **Setup Redux store with ALL slices** (2-3 days) ← MUST DO
+ - **Configure Axios service layer** (1 day) ← MUST DO
+ - Implement route guards (1 day)
+ - Without these, you CANNOT integrate with backend!
+
+2. **Understand the Reality:**
+ - Having UI ≠ Having functionality
+ - Every page needs:
+ - Redux actions/reducers connected
+ - API service calls implemented
+ - Form validation logic
+ - Error handling
+ - Loading states
+ - Success/failure notifications
+ - Example: Login page needs ~1 day AFTER backend API is ready
+
+3. **Don't Underestimate Integration:**
+ - Each form needs validation (1-2 hours)
+ - Each API call needs error handling (1 hour)
+ - Each list needs loading skeleton (1 hour)
+ - Each action needs success/error toast (30 min)
+ - Total: API integration ≈ 30-40% of total frontend work
+
+4. **Prepare for Sprint 1:**
+ - Review auth API contracts from backend team
+ - Plan Redux auth flow (login → store token → redirect)
+ - Understand JWT storage strategy
+ - Plan form validation rules
+
+5. **Work Smart:**
+ - Create reusable hooks (useApi, useForm, useNotification)
+ - Create reusable validation functions
+ - Create reusable error handling
+ - Don't repeat code across pages
+
+### For Both Teams:
+1. **Daily Standup:** Quick 15-min sync every morning
+ - What did you complete?
+ - What are you working on today?
+ - Any blockers?
+ - Any dependencies on other team?
+
+2. **Integration Points:** Test API integration early and often
+ - Backend: Provide Postman collection with example requests
+ - Frontend: Test API calls as soon as endpoints are ready
+ - Don't wait until sprint end to integrate!
+
+3. **Code Review:** Review each other's code for consistency
+ - All PRs need 1 approval before merge
+ - Check for TypeScript errors
+ - Check for security issues
+ - Check for code duplication
+
+4. **Git Workflow:** Use feature branches, PR reviews mandatory
+ - Branch naming: `feature/TASK-BE-001-repo-setup`
+ - Commit messages: Follow conventional commits
+ - Squash commits before merge
+
+5. **Realistic Expectations:**
+ - ✅ You have good UI foundation (16% done)
+ - ❌ You're not 60% done (common misconception)
+ - 💪 You have 84% of challenging work ahead
+ - 🎯 Focus on quality, not speed
+ - 📅 10-11 weeks is realistic, don't rush
+
+---
+
+**Document Prepared By:** .NET Expert Team
+**Last Updated:** October 23, 2025
+**Status:** ✅ Updated with REALISTIC Progress Assessment
+**Total Estimated Duration:** 10-11 weeks (Target: End Dec 2025 / Early Jan 2026)
+**Current Progress:** 10% Complete (Week 2 of 11)
+**Frontend Reality:** 80% UI ≠ 80% Complete (Actually 16% complete)
+
+---
+
+## Quick Reference
+
+### Backend Ports
+- Development: `http://localhost:5000`
+- API Docs: `http://localhost:5000/api-docs`
+- Health Check: `http://localhost:5000/health`
+
+### Frontend Ports
+- Development: `http://localhost:3000`
+
+### Databases
+- PostgreSQL: `localhost:5432`
+- Database Name: `re_workflow_db`
+
+### Key Environment Variables
+**Backend:**
+- `NODE_ENV=development`
+- `PORT=5000`
+- `DB_HOST=localhost`
+- `JWT_SECRET=your_secret_key`
+
+**Frontend:**
+- `REACT_APP_API_BASE_URL=http://localhost:5000/api/v1`
+
+---
+
+## 🎯 FRONTEND DEVELOPER GUIDE: What to Build Each Week
+
+### ⚠️ REALITY CHECK BEFORE YOU START:
+
+**"We have 80% UI from Figma" does NOT mean "We're 80% done"**
+
+**What it ACTUALLY means:**
+- You have pretty buttons, inputs, and layouts (20% of total work)
+- You still need to build the "brain" (80% of total work):
+ - Redux state management
+ - API integration
+ - Form validations
+ - Error handling
+ - Loading states
+ - Business logic
+ - Testing
+
+**Current True Completion:** 16% (not 80%)
+
+---
+
+### 📅 Week-by-Week Frontend Build Plan
+
+#### **WEEK 2 (THIS WEEK - CRITICAL FOUNDATION)**
+
+**🔥 Priority 1: Complete UI Extraction (1-2 days)**
+- Finish remaining 20% components
+- Fix any styling bugs
+- Ensure mobile responsive works on all breakpoints
+- **Deliverable:** 100% UI extraction
+
+**🔥 Priority 2: Redux Store Setup (2-3 days) ← CANNOT SKIP**
+Create these files:
+1. `src/redux/store.ts` - Configure Redux store
+2. `src/redux/hooks.ts` - Typed useDispatch and useSelector
+3. `src/redux/slices/authSlice.ts` - User auth state
+4. `src/redux/slices/workflowSlice.ts` - Workflows state
+5. `src/redux/slices/approvalSlice.ts` - Approvals state
+6. `src/redux/slices/notificationSlice.ts` - Notifications state
+7. `src/redux/slices/documentSlice.ts` - Documents state
+8. `src/redux/slices/workNoteSlice.ts` - Work notes state
+9. `src/redux/slices/participantSlice.ts` - Participants state
+10. `src/redux/slices/uiSlice.ts` - UI state (modals, loading)
+
+**🔥 Priority 3: Axios Service Layer (1 day) ← CANNOT SKIP**
+Create these files:
+1. `src/services/api.ts` - Axios instance with interceptors
+2. `src/services/auth.service.ts` - Auth API calls
+3. `src/services/workflow.service.ts` - Workflow API calls
+4. `src/services/approval.service.ts` - Approval API calls
+5. `src/services/document.service.ts` - Document API calls
+6. `src/services/notification.service.ts` - Notification API calls
+7. `src/services/workNote.service.ts` - Work note API calls
+8. `src/services/participant.service.ts` - Participant API calls
+9. `src/services/dashboard.service.ts` - Dashboard API calls
+10. `src/services/user.service.ts` - User API calls
+
+**Priority 4: Route Guards (1 day)**
+- Create `PrivateRoute` component
+- Create `PublicRoute` component
+- Protect all authenticated routes
+
+**End of Week 2:** Foundation complete, ready for integration
+
+---
+
+#### **WEEK 3: Authentication Pages Integration**
+
+**Prerequisite:** Backend auth APIs must be ready (BE-101, BE-102)
+
+**Login Page (1 day):**
+- Connect form to Redux loginUser action
+- Add email validation (regex)
+- Add password validation (required)
+- Handle form submit
+- Call auth API via Redux thunk
+- Store JWT token in localStorage + Redux
+- Handle errors (401, network errors)
+- Show loading state on button
+- Redirect to dashboard on success
+- Add "Remember Me" functionality
+- **Deliverable:** Working login
+
+**Registration Page (0.5 days):**
+- Connect form to Redux registerUser action
+- Validate all fields (name, email, password, employee ID)
+- Password strength indicator
+- Confirm password match
+- Call register API
+- Show success message
+- Redirect to login
+- **Deliverable:** Working registration
+
+**Password Reset (0.5 days):**
+- Forgot password page with email input
+- Reset password page with new password
+- Connect to backend APIs
+- **Deliverable:** Working password reset
+
+**User Profile (0.5 days):**
+- Fetch current user from API
+- Display in header dropdown
+- Edit profile modal
+- Update profile API integration
+- **Deliverable:** Working profile management
+
+**End of Week 3:** Users can login, register, reset password, edit profile
+
+---
+
+#### **WEEKS 4-5: Workflow Creation Wizard (2 weeks)**
+
+**Week 4: Steps 1-3 (Core Workflow)**
+
+**Template Selection (0.5 days):**
+- Connect selection to Redux
+- Save choice in workflow state
+- Enable/disable based on selection
+
+**Basic Information (1 day):**
+- Connect form to Redux
+- Validate title (required, max 500 chars)
+- Validate description (required, max 5000 chars)
+- Integrate rich text editor
+- Validate priority selection
+- Save to Redux workflow state
+- **Complex:** Rich text editor integration
+
+**Approval Workflow Builder (2-3 days) ← MOST COMPLEX:**
+- Dynamic level creation (add/remove)
+- User search for @mention
+ - Call user search API as user types
+ - Display dropdown with results
+ - Handle selection
+- Validate each level:
+ - Level name (optional)
+ - Approver (required)
+ - TAT value (required, > 0)
+- **Real-time TAT calculation:**
+ - Sum all level TATs
+ - Calculate total hours/days
+ - Display prominently
+- Approval flow summary (live preview)
+- Save all levels to Redux
+- Validate max 10 levels
+- Validate unique approvers
+- **Challenge:** Complex form with dynamic fields + real-time calculation
+
+**Week 5: Steps 4-6 (Finalization)**
+
+**Participants & Access (1 day):**
+- User search for spectators
+- Add multiple spectators
+- Display as chips
+- Save to Redux
+- **Deliverable:** Spectator management
+
+**Documents Upload (1 day):**
+- Implement drag-drop (react-dropzone)
+- Validate file type
+- Validate file size (10MB)
+- Show upload progress
+- Multiple file upload
+- Google Docs/Sheets links
+- Save metadata to Redux
+- **Challenge:** File upload with progress tracking
+
+**Review & Submit (1 day):**
+- Display complete summary from Redux
+- Edit buttons (navigate back)
+- **Save as Draft:**
+ - Call POST /api/v1/workflows (is_draft=true)
+ - Save workflow ID
+ - Navigate to My Requests
+- **Submit Request:**
+ - Upload all documents (multiple API calls)
+ - Create workflow (POST /api/v1/workflows)
+ - Add approval levels (multiple POST calls)
+ - Add spectators (multiple POST calls)
+ - Submit workflow (PATCH /api/v1/workflows/:id/submit)
+ - Handle errors at each step
+ - Show progress indicator
+ - Navigate to request detail on success
+- **Challenge:** Multi-step API orchestration
+
+**API Integration & Testing (2 days):**
+- Connect all wizard steps to backend
+- Handle errors
+- Test complete flow end-to-end
+- Fix bugs
+- **Deliverable:** Working workflow creation
+
+**End of Week 5:** Users can create workflows with approvals, spectators, documents
+
+---
+
+#### **WEEKS 6-7: Request Management & Approval Actions (2 weeks)**
+
+**Week 6: Request Listing Pages (1 week)**
+
+**My Requests Page (1.5 days):**
+- Fetch workflows via Redux (GET /api/v1/workflows/my-requests)
+- Display loading skeleton while fetching
+- Handle empty state (no requests)
+- Handle error state
+- Implement tabs (Total, In Progress, Approved, Rejected, Draft)
+- Filter requests by tab
+- Implement search (debounced)
+- Implement filters (status, priority, date range)
+- Implement sorting
+- Implement pagination
+- Connect click to navigate to detail
+- **Deliverable:** Functional request listing
+
+**Open & Closed Requests (1 day):**
+- Similar to My Requests
+- Different API endpoints
+- Show conclusion remarks for closed requests
+- **Deliverable:** All listing pages working
+
+**Request Detail Overview (1.5 days):**
+- Fetch workflow details (GET /api/v1/workflows/:id)
+- Display all information
+- Fetch and display TAT status
+- Calculate TAT progress percentage
+- Color-code progress bar
+- Display spectators
+- Show quick actions (based on user role)
+- **Deliverable:** Request detail page
+
+**Week 7: Tabs & Actions (1 week)**
+
+**Workflow Tab (1 day):**
+- Fetch approval hierarchy
+- Display approval timeline
+- Show status for each level
+- Display TAT for each level
+- Show approver comments
+- **Deliverable:** Approval timeline view
+
+**Documents Tab (1 day):**
+- Fetch documents
+- Display document list
+- Implement PDF preview modal
+- Implement image preview modal
+- Implement download
+- **Deliverable:** Document viewing
+
+**Activity Tab (1 day):**
+- Fetch activities
+- Display timeline
+- Group by date
+- Filter by type
+- **Deliverable:** Activity timeline
+
+**Approve/Reject Modals (1.5 days):**
+- Create modal components
+- Validate mandatory comments
+- Call approve/reject APIs
+- Handle success/errors
+- Refresh page after action
+- **Deliverable:** Approval actions working
+
+**Add Approver/Spectator (0.5 days):**
+- User search
+- Call add APIs
+- Refresh page
+- **Deliverable:** Add participants working
+
+**End of Week 7:** Complete request management + approval actions
+
+---
+
+#### **WEEK 8: Documents, Work Notes & Dashboard**
+
+**Document Upload Integration (1 day):**
+- Connect upload to API
+- Show upload progress (0-100%)
+- Handle upload errors
+- **Deliverable:** Document upload working
+
+**Work Notes API Integration (1 day):**
+- Connect chat to backend API
+- Fetch messages
+- Send messages
+- Add reactions
+- Parse @mentions
+- **Deliverable:** Work notes fully functional
+
+**Dashboard (2 days):**
+- Fetch statistics API
+- Display metric cards
+- Integrate charts with real data
+- Fetch recent activities
+- Fetch pending actions
+- **Deliverable:** Working dashboard
+
+**End of Week 8:** Documents, collaboration, dashboard complete
+
+---
+
+#### **WEEK 9: Notifications, Filters & Polish**
+
+**Notification System (1 day):**
+- Fetch notifications from API
+- Display in bell dropdown
+- Mark as read
+- Implement polling (every 30 sec)
+- Toast for high-priority
+- **Deliverable:** Notifications working
+
+**Search & Filters (1 day):**
+- Implement search across pages
+- Implement filter panels
+- URL query params
+- **Deliverable:** Search/filter working
+
+**Conclusion & Closure (1 day):**
+- Connect to AI conclusion API
+- Edit functionality
+- Close workflow API
+- **Deliverable:** Workflow closure working
+
+**Responsive & Polish (1 day):**
+- Fix mobile issues
+- Add loading skeletons everywhere
+- Add error boundaries
+- Accessibility improvements
+
+**End of Week 9:** All features functional
+
+---
+
+#### **WEEK 10: Testing & Deployment**
+
+**Testing (3 days):**
+- Write unit tests for components
+- Write Redux slice tests
+- Integration tests
+- Fix bugs found during testing
+
+**Deployment (2 days):**
+- Production build
+- Docker setup
+- CI/CD pipeline
+- Deploy to GCP
+
+**End of Week 10:** Production ready! 🚀
+
+---
+
+## 📊 FINAL REALITY CHECK FOR STAKEHOLDERS
+
+### Common Misconceptions vs Reality:
+
+| Misconception | Reality | Impact |
+|---------------|---------|--------|
+| "80% UI = 80% done" | "80% UI = 16% done" | +6 weeks timeline |
+| "Just connect APIs" | "Build Redux, API layer, validations, logic" | +4 weeks effort |
+| "Work notes complete" | "Work notes UI done, need backend integration" | +1 week |
+| "6 weeks total" | "10-11 weeks realistic" | +4-5 weeks |
+| "Launch Dec 15" | "Launch Dec 27 / Early Jan" | +2 weeks |
+
+### Honest Timeline Assessment:
+
+**Optimistic (if everything goes perfect):** 9 weeks
+**Realistic (with normal challenges):** 10-11 weeks
+**Pessimistic (if issues arise):** 12-13 weeks
+
+**Recommended Target:** Early January 2026 (11-12 weeks)
+
+---
+
+## 💡 FINAL RECOMMENDATIONS
+
+### For Project Manager:
+1. **Set realistic expectations** with stakeholders
+2. **Communicate:** "UI looks done but needs integration work"
+3. **Timeline:** Plan for 10-11 weeks, not 6-8 weeks
+4. **Buffer:** Add 1-2 weeks buffer for unforeseen issues
+5. **Milestones:** Weekly demos to show actual progress
+
+### For Frontend Team Lead:
+1. **This week:** Complete Sprint 0 foundation (Redux + API layer)
+2. **Don't rush:** Build it right, don't cut corners
+3. **Reusability:** Create hooks and utilities to avoid duplication
+4. **Testing:** Test as you build, not at the end
+5. **Communication:** Daily sync with backend on API contracts
+
+### For Backend Team Lead:
+1. **This week:** Database schema is CRITICAL - blocks everything
+2. **Documentation:** Document APIs in Swagger as you build
+3. **Postman:** Share collection with frontend team
+4. **Testing:** Use Postman to test before frontend integration
+5. **Communication:** Notify frontend when APIs are ready
+
+### Success Criteria:
+
+**Week 2:** ✅ Foundation complete (Redux, API layer, DB)
+**Week 3:** ✅ Authentication working end-to-end
+**Week 5:** ✅ Can create and submit workflows
+**Week 7:** ✅ Can approve/reject workflows
+**Week 9:** ✅ All features functional
+**Week 11:** ✅ Production deployment
+
+---
+
+**🎉 YOU'VE GOT THIS! Focus on building quality software, one sprint at a time. Good luck! 🚀**
+
+---
+
+
+
+## 🎯 EXECUTIVE SUMMARY: Where We Stand (REALISTIC ASSESSMENT)
+
+### What's Actually Complete ✅
+1. **Frontend UI:** 80% extracted via Figma (visual components ONLY)
+ - ⚠️ This is just HTML/CSS/JSX with dummy data
+ - No functionality, no API calls, no state management
+2. **Frontend Packages:** All dependencies installed and resolved
+3. **Work Notes Feature:** UI complete + basic functionality (emoji, doc selection)
+ - Still needs: Backend API integration, @mentions, real data
+4. **Backend Repository:** 70% setup complete
+5. **Mobile Responsive:** All UI is responsive (320px - 1920px)
+
+### What's NOT Complete ❌ (Common Misconception)
+1. **Redux Store:** 0% - Not even created yet
+2. **API Service Layer:** 0% - Not configured
+3. **Form Validations:** 0% - All forms accept any input
+4. **API Integration:** 0% - Nothing connects to backend
+5. **Business Logic:** 0% - No TAT calculations, no workflows
+6. **Authentication:** 0% - Login UI exists but doesn't work
+7. **Route Guards:** 0% - All routes are publicly accessible
+8. **Error Handling:** 0% - No error messages
+9. **Loading States:** 0% - No spinners or skeletons
+
+### What's In Progress 🔄
+1. **Backend Setup:** Completing repository (30% remaining)
+2. **Frontend UI Extraction:** Completing last 20% of Figma extraction
+3. **Work Notes:** Adding remaining functionality
+
+### What's Critical This Week 🔥
+1. **Complete Frontend Sprint 0 (This Week):**
+ - ✅ Finish UI extraction (20% remaining) - 1-2 days
+ - 🔥 Setup Redux store with all slices - 2-3 days (CRITICAL)
+ - 🔥 Configure Axios service layer - 1 day (CRITICAL)
+ - 🔥 Implement route guards - 1 day
+ - Total: 4-5 days of work
+
+2. **Complete Backend Sprint 0 (This Week):**
+ - 🔥 BE-002: Database schema MUST be done - 1 day (BLOCKS EVERYTHING)
+ - BE-003: Backend configuration - 0.5 days
+ - BE-004: Sequelize ORM setup - 1 day
+
+3. **Start Sprint 1 (Next Week):**
+ - Backend: Auth APIs (BE-101)
+ - Frontend: Connect login/register pages
+
+### Time to Production 🚀
+- **Estimated:** 9 more weeks (10 weeks total)
+- **Target Launch:** End of December 2025 / Early January 2026
+- **Current Progress:** 10% complete (realistic)
+- **Confidence Level:** Medium (more work than initially thought)
+
+### Reality Check 📊
+**Initial Assumption:** "Figma UI = 60% complete"
+**Reality:** "Figma UI = 16% complete"
+
+**Why the Gap?**
+- Figma only gives you visual components (20% of work)
+- Still need to build:
+ - Redux state management (20% of work)
+ - API integration (30% of work)
+ - Validations & logic (20% of work)
+ - Testing & polish (10% of work)
+
+**Calculation:**
+- 80% of 20% = 16% total frontend work complete
+- 84% of frontend work still remaining
+
+### Key Success Factors 💪
+1. ✅ Frontend UI base ready (saves ~1 week)
+2. ✅ Mobile responsive from start (saves testing time)
+3. ✅ Clear requirements and documentation
+4. ✅ Modern, proven tech stack
+5. ❌ Still need significant integration work
+6. ⏳ Backend and frontend must sync closely
+
+### Immediate Next Steps (This Week & Next)
+
+#### **WEEK 2 (Current Week) - Complete Sprint 0**
+
+**Backend Priority (2.5 days):**
+1. 🔥 BE-002: Setup PostgreSQL database (1 day) ← CRITICAL - BLOCKS EVERYTHING
+ - Install PostgreSQL 16
+ - Create database
+ - Run schema SQL file (from documentation)
+ - Create all 15+ tables with indexes
+ - Setup triggers and views
+ - Verify database connection
+
+2. BE-003: Backend configuration (0.5 days)
+ - Complete Express.js setup
+ - Configure all middleware
+ - Setup Winston logger
+ - Create error handlers
+ - Test health check endpoint
+
+3. BE-004: Sequelize ORM setup (1 day)
+ - Configure Sequelize connection
+ - Create all TypeScript models
+ - Define model associations
+ - Test database queries
+
+**Frontend Priority (4 days):**
+1. 🔥 Complete UI extraction - 20% remaining (1-2 days)
+ - Finish any incomplete pages
+ - Fix any styling issues
+ - Ensure all dummy data displays correctly
+
+2. 🔥 FE-003: Setup Redux Store (2-3 days) ← CRITICAL
+ - Create `src/redux/store.ts`
+ - Create typed hooks (`src/redux/hooks.ts`)
+ - Create all Redux slices:
+ - authSlice (user, token, isAuthenticated)
+ - workflowSlice (workflows, currentWorkflow, drafts)
+ - approvalSlice (approvals, currentLevel)
+ - notificationSlice (notifications, unreadCount)
+ - documentSlice (documents, uploadProgress)
+ - workNoteSlice (notes, mentions)
+ - participantSlice (participants, spectators)
+ - uiSlice (loading, errors, modals)
+ - Test Redux DevTools
+ - Setup Redux persist for auth
+
+3. 🔥 FE-004: Configure Axios Service Layer (1 day) ← CRITICAL
+ - Create `src/services/api.ts` (Axios instance)
+ - Configure base URL from .env
+ - Setup request interceptor (add JWT token to headers)
+ - Setup response interceptor (handle errors)
+ - Handle token refresh logic (on 401)
+ - Create all service files:
+ - `auth.service.ts`
+ - `workflow.service.ts`
+ - `approval.service.ts`
+ - `document.service.ts`
+ - `notification.service.ts`
+ - `workNote.service.ts`
+ - `participant.service.ts`
+ - `dashboard.service.ts`
+ - `user.service.ts`
+
+4. FE-005: Implement Route Guards (1 day)
+ - Create `PrivateRoute` component
+ - Create `PublicRoute` component
+ - Protect all authenticated routes
+ - Redirect to login if not authenticated
+ - Redirect to dashboard if already logged in (for login page)
+
+**End of Week 2 Target:**
+- ✅ Backend: Database ready, ORM working, server running
+- ✅ Frontend: UI 100%, Redux configured, API layer ready, routes protected
+- ✅ Both ready for Sprint 1 (Authentication integration)
+
+---
+
+#### **WEEK 3 - Sprint 1: Authentication Integration**
+
+**Backend (4 days):**
+1. BE-101: Build authentication APIs (2 days)
+ - Register, login, logout, token refresh
+ - Password hashing with bcrypt
+ - JWT token generation
+ - Auth middleware
+
+2. BE-102: User management APIs (1 day)
+3. BE-103: User profile APIs (1 day)
+
+**Frontend (2.5 days - waiting for backend):**
+1. FE-101: Connect login page to backend (1 day)
+ - Call POST /api/v1/auth/login
+ - Store JWT in Redux + localStorage
+ - Handle errors
+ - Redirect on success
+
+2. FE-102: Connect registration page (0.5 days)
+3. FE-103: Connect password reset (0.5 days)
+4. FE-104: Connect user profile (0.5 days)
+
+**End of Week 3 Target:**
+- ✅ Users can register, login, logout
+- ✅ JWT authentication working
+- ✅ Protected routes functional
+- ✅ User profile management working
+
+---
+
+## 📞 Support & Communication
+
+### Team Collaboration
+- **Daily Standup:** 10:00 AM (15 minutes)
+- **Weekly Demo:** Friday 3:00 PM
+- **Integration Sync:** As needed (Slack/Teams)
+
+### Questions or Blockers?
+- **Backend Lead:** Escalate database or API design questions immediately
+- **Frontend Lead:** Escalate UI/UX or integration questions
+- **Both Teams:** Communicate early and often!
+
+### Success Metrics
+- **Sprint Velocity:** Track completed vs planned tasks weekly
+- **Code Quality:** Maintain >80% test coverage
+- **Integration Success:** All APIs tested before frontend integration
+- **Deployment Readiness:** All features tested end-to-end
+
+---
+
+**🎉 CONGRATULATIONS! You're off to a great start with 60% of frontend UI already complete! Let's build something amazing! 🚀**
+
+---
+
+Good luck with the development! 💪
+