Initial commit
This commit is contained in:
+413
@@ -0,0 +1,413 @@
|
||||
Add a lightweight scheduling system to the existing FeedBack production tracking platform.
|
||||
|
||||
IMPORTANT:
|
||||
This is NOT enterprise scheduling.
|
||||
Do NOT build Microsoft Project.
|
||||
Do NOT build ShotGrid resource planning.
|
||||
|
||||
The goal is:
|
||||
|
||||
* simple visual scheduling
|
||||
* artist workload visibility
|
||||
* drag-and-drop planning
|
||||
* lightweight production coordination
|
||||
|
||||
Think:
|
||||
“Trello timeline view for VFX tasks.”
|
||||
|
||||
The complexity level should match the existing kanban implementation.
|
||||
|
||||
---
|
||||
|
||||
# CORE GOAL
|
||||
|
||||
Allow producers/supervisors to:
|
||||
|
||||
* assign tasks to artists
|
||||
* schedule when tasks should be worked on
|
||||
* visualize artist workload
|
||||
* see upcoming deadlines
|
||||
* drag tasks around visually
|
||||
|
||||
The scheduling system should integrate directly with:
|
||||
|
||||
* existing Tasks
|
||||
* existing Artists/Users
|
||||
* existing Due Dates
|
||||
* existing Kanban workflow
|
||||
|
||||
---
|
||||
|
||||
# IMPORTANT PRODUCT PRINCIPLE
|
||||
|
||||
Scheduling is:
|
||||
|
||||
* lightweight planning
|
||||
* not time tracking
|
||||
* not timesheets
|
||||
* not attendance management
|
||||
|
||||
We are ONLY planning:
|
||||
|
||||
* who works on what
|
||||
* when
|
||||
* for roughly how long
|
||||
|
||||
---
|
||||
|
||||
# NEW PAGE
|
||||
|
||||
Add:
|
||||
|
||||
```plaintext id="9m0ynj"
|
||||
/schedule
|
||||
```
|
||||
|
||||
Add navigation item:
|
||||
|
||||
```plaintext id="9cxij0"
|
||||
Schedule
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# SCHEDULING MODEL
|
||||
|
||||
Each task already has:
|
||||
|
||||
* assignedArtistId
|
||||
* estimatedHours
|
||||
* dueDate
|
||||
|
||||
Add:
|
||||
|
||||
* scheduledStartDate
|
||||
* scheduledEndDate
|
||||
|
||||
Optional:
|
||||
|
||||
* scheduleNotes
|
||||
|
||||
---
|
||||
|
||||
# ARTIST WORKLOAD ASSUMPTION
|
||||
|
||||
Assume:
|
||||
|
||||
```plaintext id="sls7sz"
|
||||
8 working hours per day
|
||||
```
|
||||
|
||||
Use estimatedHours to determine task duration visually.
|
||||
|
||||
Example:
|
||||
|
||||
```plaintext id="1o9r76"
|
||||
16 estimated hours
|
||||
= 2 scheduled work days
|
||||
```
|
||||
|
||||
Keep calculations simple.
|
||||
|
||||
---
|
||||
|
||||
# MAIN UI
|
||||
|
||||
The scheduling page should be a hybrid:
|
||||
|
||||
* kanban
|
||||
* timeline/calendar
|
||||
|
||||
Layout:
|
||||
|
||||
```plaintext id="8fys2r"
|
||||
Artists vertically
|
||||
Dates horizontally
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```plaintext id="ltm7d0"
|
||||
Mon Tue Wed Thu Fri
|
||||
|
||||
Chris [SH010 Comp------]
|
||||
|
||||
Sarah [SH020 Roto--]
|
||||
|
||||
Mike [Asset Car Model----]
|
||||
```
|
||||
|
||||
This should feel:
|
||||
|
||||
* visual
|
||||
* fast
|
||||
* draggable
|
||||
* uncluttered
|
||||
|
||||
---
|
||||
|
||||
# TASK CARDS
|
||||
|
||||
Each scheduled task block should show:
|
||||
|
||||
* shot/asset code
|
||||
* task type
|
||||
* task status
|
||||
* due date
|
||||
* estimated hours
|
||||
|
||||
Optional:
|
||||
|
||||
* latest version indicator
|
||||
* review status badge
|
||||
|
||||
Color coding:
|
||||
|
||||
* TODO
|
||||
* IN_PROGRESS
|
||||
* INTERNAL_REVIEW
|
||||
* CLIENT_REVIEW
|
||||
* CHANGES
|
||||
* DONE
|
||||
|
||||
---
|
||||
|
||||
# DRAG AND DROP
|
||||
|
||||
Use:
|
||||
|
||||
* dnd-kit
|
||||
|
||||
Allow:
|
||||
|
||||
* drag tasks between artists
|
||||
* resize tasks across days
|
||||
* move tasks along timeline
|
||||
|
||||
When dragged:
|
||||
|
||||
* update scheduledStartDate
|
||||
* update scheduledEndDate
|
||||
* update assignedArtistId if moved to another artist row
|
||||
|
||||
Use optimistic updates.
|
||||
|
||||
---
|
||||
|
||||
# SCHEDULING RULES
|
||||
|
||||
Simple rules only.
|
||||
|
||||
## WARNING STATES
|
||||
|
||||
Highlight:
|
||||
|
||||
* overdue tasks
|
||||
* tasks ending after due date
|
||||
* artist overload
|
||||
|
||||
Example overload:
|
||||
|
||||
```plaintext id="qff2t0"
|
||||
Artist scheduled > 8h/day
|
||||
```
|
||||
|
||||
Use visual indicators only.
|
||||
DO NOT block scheduling.
|
||||
|
||||
---
|
||||
|
||||
# FILTERS
|
||||
|
||||
Add:
|
||||
|
||||
* project filter
|
||||
* artist filter
|
||||
* task status filter
|
||||
|
||||
Optional:
|
||||
|
||||
* department filter
|
||||
|
||||
---
|
||||
|
||||
# TASK SOURCE
|
||||
|
||||
The schedule should ONLY display:
|
||||
|
||||
* tasks with assigned artists
|
||||
OR
|
||||
* tasks with scheduled dates
|
||||
|
||||
Unscheduled tasks remain in kanban/backlog.
|
||||
|
||||
---
|
||||
|
||||
# BACKLOG PANEL
|
||||
|
||||
Add optional side panel:
|
||||
|
||||
```plaintext id="o0lm45"
|
||||
Unscheduled Tasks
|
||||
```
|
||||
|
||||
Allow dragging tasks:
|
||||
|
||||
* from backlog
|
||||
* onto artist schedule
|
||||
|
||||
This is VERY useful.
|
||||
|
||||
---
|
||||
|
||||
# REVIEW INTEGRATION
|
||||
|
||||
Scheduling should integrate with review flow.
|
||||
|
||||
Example:
|
||||
|
||||
```plaintext id="hr4lxg"
|
||||
Task enters CLIENT_REVIEW
|
||||
→ visually marked on schedule
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```plaintext id="4f8pl5"
|
||||
Task enters CHANGES
|
||||
→ warning badge appears
|
||||
```
|
||||
|
||||
This creates production awareness.
|
||||
|
||||
---
|
||||
|
||||
# KANBAN INTEGRATION
|
||||
|
||||
The schedule and kanban should share:
|
||||
|
||||
* same task objects
|
||||
* same statuses
|
||||
* same assignments
|
||||
|
||||
Changing status in:
|
||||
|
||||
* kanban
|
||||
* task page
|
||||
* review flow
|
||||
|
||||
should instantly reflect in schedule.
|
||||
|
||||
Example:
|
||||
|
||||
```plaintext id="rmy3ud"
|
||||
CLIENT_REVIEW
|
||||
→ DONE
|
||||
```
|
||||
|
||||
Task visually updates in schedule immediately.
|
||||
|
||||
---
|
||||
|
||||
# DASHBOARD WIDGETS
|
||||
|
||||
Add:
|
||||
|
||||
* Artist Utilization
|
||||
* Tasks Due This Week
|
||||
* Overloaded Artists
|
||||
* Upcoming Reviews
|
||||
|
||||
Simple summaries only.
|
||||
|
||||
---
|
||||
|
||||
# UI REQUIREMENTS
|
||||
|
||||
The scheduler should feel:
|
||||
|
||||
* modern
|
||||
* clean
|
||||
* cinematic
|
||||
* dark mode first
|
||||
|
||||
Inspiration:
|
||||
|
||||
* Linear roadmap
|
||||
* Trello timeline
|
||||
* Notion timeline
|
||||
* Monday.com timeline
|
||||
|
||||
BUT:
|
||||
simpler and faster.
|
||||
|
||||
Avoid:
|
||||
|
||||
* giant grids
|
||||
* enterprise clutter
|
||||
* complex dependencies
|
||||
* gantt-chart nightmares
|
||||
|
||||
---
|
||||
|
||||
# IMPLEMENTATION PLAN
|
||||
|
||||
## PHASE 1 — DATABASE
|
||||
|
||||
1. Add scheduling fields to Task
|
||||
2. Add indexes for schedule queries
|
||||
3. Add task duration helpers
|
||||
|
||||
---
|
||||
|
||||
## PHASE 2 — BASIC TIMELINE
|
||||
|
||||
1. Build schedule page
|
||||
2. Artist rows
|
||||
3. Date columns
|
||||
4. Render scheduled tasks
|
||||
|
||||
---
|
||||
|
||||
## PHASE 3 — DRAG/DROP
|
||||
|
||||
1. Move tasks
|
||||
2. Resize durations
|
||||
3. Reassign artists
|
||||
4. Optimistic updates
|
||||
|
||||
---
|
||||
|
||||
## PHASE 4 — BACKLOG
|
||||
|
||||
1. Unscheduled task panel
|
||||
2. Drag from backlog to schedule
|
||||
3. Quick scheduling
|
||||
|
||||
---
|
||||
|
||||
## PHASE 5 — POLISH
|
||||
|
||||
1. Filters
|
||||
2. Overload indicators
|
||||
3. Review status badges
|
||||
4. Utilization summaries
|
||||
|
||||
---
|
||||
|
||||
# IMPORTANT
|
||||
|
||||
Keep this system intentionally lightweight.
|
||||
|
||||
The ideal workflow should feel like:
|
||||
|
||||
```plaintext id="xmv8lx"
|
||||
Create task
|
||||
→ Assign artist
|
||||
→ Drag onto schedule
|
||||
→ Artist uploads version
|
||||
→ Review
|
||||
→ Approve
|
||||
```
|
||||
|
||||
That simplicity is the product advantage.
|
||||
Reference in New Issue
Block a user