Northeastern-Electric-Racing / Northeastern-Electric-Racing/FinishLine

Retrospective Gantt Chart

Open
#4,146 0 comments 0 reactions 3 assignees View on GitHub

@laylasheikh is already working on this.

Since May 6, 2026.

stale
Dominant language
TypeScript
Stars
36
Forks
9
Avg merge
4d 21h
Merged PRs (30d)
11

Description

Overview

The Gantt Chart: Retrospective is a new viewing mode on the existing Gantt Chart page in FinishLine. It allows users to compare the originally planned dates of projects and work packages against the dates they were actually completed. This feature aims to give team heads and project leads a data-driven tool for evaluating past timeline accuracy and making better-informed scheduling decisions for future cars and components.

Stakeholders

Product Stakeholders: @seif744, Antara Raman, @laylasheikh, Madhav Sabu, @naishahmistry
Software Stakeholders: @chpy04, @walker-sean, @wavehassman
Reference Users: Team heads who use the Gantt Chart to plan and evaluate project timelines

User Stories

  1. As a team head, I want to toggle into Retrospective mode on the Gantt Chart so that I can compare originally planned dates against actual completion dates for projects and work packages in order to better estimate timelines for future cars.
  2. As a project lead, I want to see the original planned duration of each work package alongside its actual duration so that I can identify where my team consistently runs over or under schedule.
  3. As any user, I want the Retrospective toggle to be a personal view setting so that switching into it does not affect what other users see on their Gantt Chart.
  4. As any user, I want the search bar and filters to function the same way in Retrospective mode as they do in standard mode so that I can still narrow down which projects I'm viewing.

Success Metrics

The Retrospective feature will be considered successful when team heads are actively using it at the start of each new car cycle to reference past project durations when setting timelines. A secondary indicator of success is a reduction in significantly missed deadlines across teams, attributable to more accurate upfront scheduling informed by retrospective data.

Rollout Plan

Phase 1: Seed Data & Speed

  • Extensive stress-test seed data first, as the epic itself specifies -> this is the only way to verify the speed work actually works, not just "feels fine with 5 projects loaded"
  • Backend-driven filtering (a new request per filter change, returning only relevant data) instead of frontend filtering
  • Default filter to the latest car only
  • Re-render isolation: opening/editing one project must not re-render others
  • Smooth expand/collapse animation, fluid scroll, and drag-to-edit that snaps exactly to the release point with no delay

Phase 2: View Windows & Date Markers

  • Week/Month/Half Year/Year dropdown, each rendering elements proportionally with a minimum width floor, built on an abstracted time-window system so future ranges are easy to add
  • Full view/edit parity across all four windows
  • Date Markers modal: admin-settable, always-visible vertical lines for fixed dates (design freeze, SES submission, cost report, comp)

Phase 3: Bug Fixes

  • Sub-team filter (currently shows nothing) fixed to show that team's projects
  • Filtered results stack with no gaps left by filtered-out projects
  • Drag-to-edit "one-off" snap bug fixed
  • A work package blocked by two others no longer renders twice

Phase 4: Retrospective Mode

  • Toggle (personal/session-scoped, not shared across users), page title switches to red "Retrospective"
  • Dashed orange bounding box per bar showing the originally planned date range, labeled Original: MM/DD/YYYY – MM/DD/YYYY, alongside the actual bar and its actual dates
  • Search, filters, phase-color legend, and expand/collapse all behave identically to standard mode — which is exactly why this phase comes after Phase 3's filtering fixes, not before; Retrospective would otherwise inherit the same broken sub-team filter and gap-stacking bug into its own view.

Phase 5: Mobile

  • Built against the mobile epic's designs, applied to the now-stable, already-optimized desktop implementation from Phases 1–4 — placed last since building mobile against a codebase that's still being rewritten for speed would mean redoing the mobile layer twice.

For the most part, this feature should be rolled out continuously with incremental merges into Develop. Larger related tasks, such as speed improvements, may be broken into mini-feature branches to span multiple tickets, but for the most part, there shouldn't be any branches with more than 5 sub-tickets.

This feature needs to be completed, meaning we sit down and go through all the functionality together, by December 13. Only the required functionality needs to be done. This is a day before the start of the final exam period. This will give us the final exam period to make any last changes. It is up to you how to split up this time between the 5 phases.

Out of Scope

Editing or adjusting original or actual dates from within Retrospective mode
Any interaction with the dashed orange bounding boxes (they are view-only)
Aggregated retrospective analytics or summary reports (e.g., average delay per team)
Retrospective data export

Background/Context

Currently, FinishLine's Gantt Chart only shows the current state of project and work package timelines. There is no way for heads or leads to look back and compare how long something was originally planned to take versus how long it actually took. This means that when planning timelines for new cars or components, teams are largely relying on memory or external records rather than structured historical data within FinishLine. The Gantt Chart Retrospective mode centralizes this information directly in the tool teams already use, making it easy to reference past performance when setting future deadlines.

Acceptance Criteria & Mock-ups

Retrospective Toggle
A toggle is present in the top-left area of the Gantt Chart page header, next to the page title.
In standard (off) mode, the page title reads "Gantt Chart" and the toggle is inactive. Hovering over the toggle displays the label "Retrospective" above it, indicating what toggling it will do.
When the toggle is turned on, the page title changes to "Retrospective" and is styled in red to visually distinguish this mode from the standard view.
The toggle state is a personal view setting and it is tied to the individual user's session and does not affect any other user's view.

Retrospective View Layout
When Retrospective mode is active, each project and work package bar remains visible in its actual position on the timeline (reflecting the dates it was actually completed).
A dashed orange bounding box appears above each bar, spanning the originally planned start and end dates for that project or work package.
The originally planned date range is displayed as a label inside or adjacent to the dashed box in the format: Original: MM/DD/YYYY – MM/DD/YYYY.
The actual date range is displayed directly on the bar itself in the format: MM/DD/YYYY – MM/DD/YYYY.
If the actual dates match the original dates exactly, the dashed box and the bar will overlap. No special treatment is needed for this case beyond accurate rendering.
The dashed orange boxes are purely visual and there is no hover, click, or any other interaction associated with them.

Behavior Consistency
The search bar (Search Project by Name) functions identically in Retrospective mode as in standard mode.
The Filters button functions identically in Retrospective mode as in standard mode.
The color-coded phase legend (Install, Research, Design, Testing, Manufacturing) remains visible and unchanged in Retrospective mode.
Projects and work packages can still be expanded and collapsed in Retrospective mode the same way as in standard mode.

[Mockups]
Image 1: Standard Gantt Chart view with Retrospective hover label visible on toggle

Image

Image 2: Retrospective mode active: dashed orange boxes showing original dates, bars showing actual dates

Image

Image 3: Standard Gantt Chart view (no hover) for reference

Image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.