650 lines
8.4 KiB
Markdown
650 lines
8.4 KiB
Markdown
# Task EP.1.7 – My Day Workspace Foundation
|
||
|
||
**Status:** Foundation Implemented
|
||
|
||
**Priority:** Critical
|
||
|
||
**Type:** Workspace / Operational Dashboard / Productivity Foundation
|
||
|
||
---
|
||
|
||
# Depends On
|
||
|
||
* EP.1.1 Activity Domain Foundation
|
||
|
||
* EP.1.2 Activity Integration & Legacy Follow-up Adapter
|
||
|
||
* EP.1.3 Business Event Foundation
|
||
|
||
* EP.1.4 Projection Foundation & Delivery Reliability
|
||
|
||
* EP.1.4.1 Transactional Outbox Activation & Worker Runtime
|
||
|
||
* EP.1.5 Timeline Projection Foundation
|
||
|
||
* EP.1.6 Calendar Projection, Workspace & Big Calendar Foundation
|
||
|
||
* BU-R.0
|
||
|
||
* BU-R.0.1
|
||
|
||
* BU-R.1
|
||
|
||
* AR.1
|
||
|
||
* AR.2
|
||
|
||
* ENG.0
|
||
|
||
---
|
||
|
||
# Objective
|
||
|
||
Introduce the first operational workspace that users open every morning.
|
||
|
||
My Day becomes the single productivity workspace where Marketing, Sales, Managers, and Executives immediately understand:
|
||
|
||
* what must be done today
|
||
* what is overdue
|
||
* what is important
|
||
* what is blocked
|
||
* what is approaching
|
||
* what requires attention
|
||
|
||
without navigating through Lead, Opportunity, Quotation, Calendar, Timeline, and Approval individually.
|
||
|
||
My Day is **NOT** another business domain.
|
||
|
||
It is a read-oriented operational workspace.
|
||
|
||
---
|
||
|
||
# Business Outcome
|
||
|
||
When a Sales user logs in, the first screen should answer:
|
||
|
||
> What should I do next?
|
||
|
||
When a Manager logs in, the first screen should answer:
|
||
|
||
> Which team members require attention?
|
||
|
||
---
|
||
|
||
# Workspace Principles
|
||
|
||
## My Day never owns business data
|
||
|
||
My Day aggregates information.
|
||
|
||
It never becomes the source of:
|
||
|
||
* Activity
|
||
* Lead
|
||
* Opportunity
|
||
* Quotation
|
||
* Approval
|
||
* Calendar
|
||
|
||
---
|
||
|
||
## Activity remains the operational owner
|
||
|
||
Every actionable task ultimately resolves to Activity.
|
||
|
||
My Day never edits projection rows.
|
||
|
||
---
|
||
|
||
## Calendar owns scheduling
|
||
|
||
My Day consumes Calendar Projection.
|
||
|
||
Calendar remains responsible for scheduling.
|
||
|
||
---
|
||
|
||
## Timeline owns history
|
||
|
||
Timeline answers:
|
||
|
||
"What happened?"
|
||
|
||
My Day answers:
|
||
|
||
"What should happen next?"
|
||
|
||
---
|
||
|
||
# Review Required
|
||
|
||
Review:
|
||
|
||
* AGENTS.md
|
||
* Engineering Constitution
|
||
* Project Foundations
|
||
* Architecture Rules
|
||
* UI UX Rules
|
||
* LAYOUT.md
|
||
* AR.2 Workspace UI UX Design Note
|
||
* EP.1.5 Timeline
|
||
* EP.1.6 Calendar
|
||
* CRM Security
|
||
* Activity Domain
|
||
* Projection Runtime
|
||
|
||
UI review must use:
|
||
|
||
* ui-ux-pro-max
|
||
|
||
---
|
||
|
||
# Scope
|
||
|
||
# Part 1 — Workspace Route
|
||
|
||
Introduce
|
||
|
||
```text
|
||
/dashboard/crm/my-day
|
||
```
|
||
|
||
This becomes the default landing page for CRM users after login.
|
||
|
||
---
|
||
|
||
# Part 2 — Workspace Composition
|
||
|
||
The page is composed of widgets.
|
||
|
||
Widgets are independent read models.
|
||
|
||
Widgets never own business logic.
|
||
|
||
---
|
||
|
||
# Part 3 — Workspace Widget Registry
|
||
|
||
Introduce
|
||
|
||
WorkspaceWidgetRegistry
|
||
|
||
Each widget defines:
|
||
|
||
* id
|
||
* title
|
||
* priority
|
||
* icon
|
||
* permission
|
||
* visibility
|
||
* refresh strategy
|
||
* empty state
|
||
|
||
Widgets must be individually reusable.
|
||
|
||
---
|
||
|
||
# Part 4 — Default Widgets
|
||
|
||
Minimum widgets
|
||
|
||
## Today's Schedule
|
||
|
||
Consumes Calendar.
|
||
|
||
Shows:
|
||
|
||
* Meeting
|
||
* Visit
|
||
* Site Survey
|
||
* Follow-up
|
||
|
||
---
|
||
|
||
## Overdue Activities
|
||
|
||
Consumes Activity.
|
||
|
||
---
|
||
|
||
## Due Today
|
||
|
||
Consumes Calendar.
|
||
|
||
---
|
||
|
||
## Hot Projects
|
||
|
||
Consumes Opportunity.
|
||
|
||
Only projects currently flagged as Hot Project.
|
||
|
||
---
|
||
|
||
## Quotations Requiring Attention
|
||
|
||
Examples
|
||
|
||
* expiring soon
|
||
* pending approval
|
||
* returned for revision
|
||
|
||
---
|
||
|
||
## Pending Approvals
|
||
|
||
Consumes Approval.
|
||
|
||
---
|
||
|
||
## Recently Updated
|
||
|
||
Consumes Timeline.
|
||
|
||
---
|
||
|
||
## My Statistics
|
||
|
||
Examples
|
||
|
||
* Activities Today
|
||
* Meetings
|
||
* Visits
|
||
* Closed Activities
|
||
|
||
---
|
||
|
||
# Part 5 — Workspace Data Priority Matrix
|
||
|
||
Freeze rendering priority.
|
||
|
||
Example
|
||
|
||
Priority 1
|
||
|
||
Overdue
|
||
|
||
↓
|
||
|
||
Priority 2
|
||
|
||
Today's Meetings
|
||
|
||
↓
|
||
|
||
Priority 3
|
||
|
||
Today's Visits
|
||
|
||
↓
|
||
|
||
Priority 4
|
||
|
||
Approvals
|
||
|
||
↓
|
||
|
||
Priority 5
|
||
|
||
Quotation Expiring
|
||
|
||
↓
|
||
|
||
Priority 6
|
||
|
||
Expected Award
|
||
|
||
↓
|
||
|
||
Priority 7
|
||
|
||
Hot Project
|
||
|
||
↓
|
||
|
||
Priority 8
|
||
|
||
Upcoming Activities
|
||
|
||
Widgets should appear in business importance order.
|
||
|
||
---
|
||
|
||
# Part 6 — Add Activity
|
||
|
||
Primary workspace action.
|
||
|
||
Display
|
||
|
||
```text
|
||
+ Add Activity
|
||
```
|
||
|
||
Must reuse existing
|
||
|
||
Activity Form
|
||
|
||
Activity API
|
||
|
||
Activity Service
|
||
|
||
No duplicate Activity implementation.
|
||
|
||
Support
|
||
|
||
* Meeting
|
||
* Visit
|
||
* Follow-up
|
||
* Phone Call
|
||
* Reminder
|
||
* Internal Task
|
||
* Site Survey
|
||
|
||
Context-aware prefills:
|
||
|
||
* Customer
|
||
* Lead
|
||
* Opportunity
|
||
* Quotation
|
||
* selected Calendar date
|
||
|
||
---
|
||
|
||
# Part 7 — Quick Actions
|
||
|
||
Examples
|
||
|
||
Complete
|
||
|
||
Reschedule
|
||
|
||
Cancel
|
||
|
||
Open Activity
|
||
|
||
Open Customer
|
||
|
||
Open Opportunity
|
||
|
||
Open Quotation
|
||
|
||
Open Calendar
|
||
|
||
Actions must call source services.
|
||
|
||
---
|
||
|
||
# Part 8 — Workspace Filters
|
||
|
||
Support
|
||
|
||
* Today
|
||
* Tomorrow
|
||
* This Week
|
||
* User
|
||
* Team
|
||
* Branch
|
||
* Product
|
||
* Customer
|
||
* Activity Type
|
||
* Hot Project
|
||
|
||
---
|
||
|
||
# Part 9 — Workspace Layout
|
||
|
||
Suggested layout
|
||
|
||
```text
|
||
----------------------------------------------------
|
||
|
||
Good Morning
|
||
|
||
Summary KPIs
|
||
|
||
----------------------------------------------------
|
||
|
||
Today's Schedule
|
||
|
||
Overdue
|
||
|
||
Hot Projects
|
||
|
||
Pending Approvals
|
||
|
||
----------------------------------------------------
|
||
|
||
Quotation Attention
|
||
|
||
Recent Activity
|
||
|
||
----------------------------------------------------
|
||
|
||
Quick Actions
|
||
|
||
----------------------------------------------------
|
||
```
|
||
|
||
Must follow
|
||
|
||
LAYOUT.md
|
||
|
||
and
|
||
|
||
ui-ux-rules.md
|
||
|
||
---
|
||
|
||
# Part 10 — Personal vs Manager Mode
|
||
|
||
Personal
|
||
|
||
Shows
|
||
|
||
* own Activities
|
||
* own Calendar
|
||
* own Quotations
|
||
* own Approvals
|
||
|
||
Manager
|
||
|
||
Adds
|
||
|
||
* team workload
|
||
* overdue team Activities
|
||
* team Calendar
|
||
* team approvals
|
||
|
||
Uses existing CRM permissions.
|
||
|
||
---
|
||
|
||
# Part 11 — Widget Refresh
|
||
|
||
Widgets should refresh independently.
|
||
|
||
No full-page reload.
|
||
|
||
Reuse React Query.
|
||
|
||
---
|
||
|
||
# Part 12 — Empty States
|
||
|
||
Every widget must define
|
||
|
||
* loading
|
||
* empty
|
||
* permission denied
|
||
|
||
---
|
||
|
||
# Part 13 — Notification Entry Points
|
||
|
||
Widgets provide links into
|
||
|
||
* Calendar
|
||
* Timeline
|
||
* Activity
|
||
* Customer
|
||
* Opportunity
|
||
* Quotation
|
||
|
||
Notifications remain outside scope.
|
||
|
||
---
|
||
|
||
# Part 14 — Workspace Performance
|
||
|
||
Support
|
||
|
||
* lazy loading
|
||
* independent queries
|
||
* cached widgets
|
||
* bounded datasets
|
||
|
||
---
|
||
|
||
# Part 15 — Responsive Layout
|
||
|
||
Desktop
|
||
|
||
Tablet
|
||
|
||
Mobile
|
||
|
||
Mobile defaults to
|
||
|
||
Today's Schedule
|
||
|
||
---
|
||
|
||
# Part 16 — Workspace Security
|
||
|
||
Every widget must reuse
|
||
|
||
CRM Security Context
|
||
|
||
No widget bypasses permission.
|
||
|
||
---
|
||
|
||
# Part 17 — My Day UX Review
|
||
|
||
Review with
|
||
|
||
* ui-ux-pro-max
|
||
* LAYOUT.md
|
||
* ui-ux-rules.md
|
||
|
||
Review
|
||
|
||
* hierarchy
|
||
* density
|
||
* responsiveness
|
||
* accessibility
|
||
* dark mode
|
||
* keyboard
|
||
* empty state
|
||
* loading
|
||
* interaction consistency
|
||
|
||
---
|
||
|
||
# Part 18 — Workspace Analytics
|
||
|
||
Track
|
||
|
||
* widget usage
|
||
* quick action usage
|
||
* Add Activity usage
|
||
* completion rate
|
||
|
||
No sensitive business payload stored.
|
||
|
||
---
|
||
|
||
# Deliverables
|
||
|
||
1. My Day Workspace
|
||
2. Widget Registry
|
||
3. Workspace Layout
|
||
4. Today's Schedule Widget
|
||
5. Overdue Widget
|
||
6. Due Today Widget
|
||
7. Hot Project Widget
|
||
8. Pending Approval Widget
|
||
9. Quotation Attention Widget
|
||
10. Recent Activity Widget
|
||
11. My Statistics Widget
|
||
12. Add Activity Action
|
||
13. Quick Actions
|
||
14. Workspace Filters
|
||
15. Manager Mode
|
||
16. Widget Refresh Strategy
|
||
17. Responsive Layout
|
||
18. Workspace Analytics
|
||
19. My Day UX Review Report
|
||
20. EP.2.0 Readiness Report
|
||
|
||
---
|
||
|
||
# Constraints
|
||
|
||
Must preserve
|
||
|
||
* Activity ownership
|
||
* Calendar ownership
|
||
* Timeline ownership
|
||
* Opportunity ownership
|
||
* Quotation ownership
|
||
* Approval ownership
|
||
|
||
Must not introduce
|
||
|
||
* duplicate Activity
|
||
* duplicate Calendar
|
||
* duplicate Timeline
|
||
* duplicate Notification
|
||
|
||
No breaking API changes.
|
||
|
||
---
|
||
|
||
# Testing
|
||
|
||
* Widget rendering
|
||
* Widget refresh
|
||
* Permission
|
||
* Add Activity
|
||
* Quick Actions
|
||
* Filters
|
||
* Responsive
|
||
* Mobile
|
||
* Manager Mode
|
||
* Empty State
|
||
* Loading
|
||
* Dark Mode
|
||
* Accessibility
|
||
* Performance
|
||
|
||
---
|
||
|
||
# Acceptance Criteria
|
||
|
||
* My Day becomes the default operational workspace for CRM users.
|
||
* All widgets consume existing source domains or projections without introducing duplicate business logic.
|
||
* The primary **Add Activity** action reuses the existing Activity form, API, and service.
|
||
* Widgets refresh independently using React Query and do not require full-page reloads.
|
||
* Personal and Manager modes enforce existing CRM permissions and team visibility rules.
|
||
* The Workspace Widget Registry defines widget composition, priority, permissions, and refresh behavior.
|
||
* The Workspace Data Priority Matrix determines the display order of actionable information.
|
||
* UI follows `LAYOUT.md`, `ui-ux-rules.md`, and is reviewed with `ui-ux-pro-max`.
|
||
* Existing Activity, Calendar, Timeline, Approval, Dashboard, Reports, and Notification behavior remain unchanged.
|
||
|
||
---
|
||
|
||
# Success Criteria
|
||
|
||
ALLA OS gains a unified **My Day Operational Workspace** where users can start their day, understand priorities, create and manage Activities, and navigate seamlessly to Calendar, Timeline, Customers, Opportunities, Quotations, and Approvals from a single productivity-focused workspace.
|