414 lines
5.1 KiB
Markdown
414 lines
5.1 KiB
Markdown
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.
|