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

Bay Dashboard

Open
#4,147 0 comments 0 reactions 4 assignees View on GitHub

@prachaseris-max is already working on this.

Since May 6, 2026.

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

Description

Overview

The Bay is a central location where the car is manufactured and tested, as well as a general place for working and collaboration. This initiative aims to centralize key information, as well as foster a encouraging and fun environment while members work in the Bay. The Bay dashboard will showcase important events on the calendar, reminders, important countdowns, and celebrate and motivate members.

Stakeholders

Product Stakeholder: @risahilinski , @pallavishankarr, @jiyaabhan, @prachaseris-max, @naishahmistry
Software Stakeholder: @walker-sean , @chpy04, @wavehassman
Reference Users: William Laroche, Samuel Ehlers, Lauren Cummings

User Story

  1. As a general member, I want to see how many days there are until competition as well as other relevant events and announcements.
  2. As a project lead/team lead, I want to see any overdue work packages that are critical priorities
  3. As a head, I want to be able to edit the dashboard through the link to update any deadlines, as well as display the most important information

Success Metrics

The success of the bay dashboard will be evident when overdue work packages decrease, documents are submitted well in advance, and members are motivated by the physical display of a countdown to competition.

Rollout Plan

Phase 1: Core Dashboard Shell & Basic Admin Config

  • Public, unauthenticated dashboard view rendering the Big/Medium/Small widget grid across the three example layouts
  • Basic Admin Tools: default config page with a live preview, single-widget-per-slot selection, Save/Undo/Clear, and "remove all" falling back to the default preview (with notifications on both selection and removal)

Phase 2: Core Widgets

  • Countdown widget (configurable start/end date; defaults to counting up with no end date)
  • Calendar endpoint retrieve events for next N days, w/o login
  • Calendar single event display, works for large and medium
  • Calendar widget large
  • Calendar widget medium
  • Overdue Work Packages widget, reusing the existing overdue-WP data already used elsewhere in FinishLine
  • Text-field widget with a pencil-icon edit modal

These are the three widgets Success Metrics actually ties value to (overdue WPs decreasing, documents submitted early, motivation from the countdown) -> this is the non-negotiable floor for the semester. If time runs short anywhere, everything past Phase 2 is expendable before this is.

Phase 3: Widget Stacking & Tier List

  • Widget stacking (multiple widgets per slot) with rotation-speed control and the dot-indicator UI
  • Tier List widget: ranks heads/leads by their team's overdue-WP count

Phase 4: External Integrations

  • MBTA Tracker: new third-party integration with MBTA's real-time API
  • Appreciations-channel feed widget
  • @bay-dashboard Slack mention-listener: needs new inbound Slack event-listening infrastructure, since today's integration only sends messages out
  • Mobile calendar widget variant

Each of these will get its own branch off of develop. You can either create branches off of that for each part or have developers continue to work on the same branch. Either way, phase 1 should be totally completed and then merged into develop instead of merging in each ticket at a time. When the last ticket for a phase is ready to be merged in, we will cover the use cases during our weekly meeting in that phase to make sure it is working correctly.

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; any of the additives are a bonus. 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 4 phases.

Out of Scope

One aspect that was outside the scope of this project was directly integrating the dashboard into FinishLine. While many members felt that there is important information that is displayed here that would be helpful on the FinishLine home page, we were not able to directly include it. In order to access the dashboard, a user would need to access the direct web link.

Background / Context

The TV in the bay is only used when a member is screen sharing, resulting in it often being off and unused. The bay dashboard will act as a dynamic way to display important information relevant to all members who visit the bay. The feature is able to be dynamically edited in the FinishLine Admin tools, and will be displayed on a web link. This link will be projected on the TV via a Raspberry Pi.

Acceptance Criteria & Mock-ups

Dashboard

Below are three possible configurations for the dashboard. The exact layout will be further explained under admin tools.

Image
  • Big Widget - Calendar | Medium Widget - Overdue Work Packages | Small Widget - Celebrations
  • Input mobile calendar version
  • Each widget stays in the same location on the screen. The grey boxes can be edited in admin tools. The countdown always stays. The specific countdown and dates can be edited in admin tools
  • One small widget can be a text field. Another small widget option links to slack in the appreciations channel. Another small widget can be @bay-dashboard. When this is tagged in slack, that message will automatically show up on this widget, no matter which channel it is tagged in
Image
  • Big Widget - Tier List | Medium Widget - Calendar | Small Widget - Celebrations
  • Tier list is only of heads and above. It is based on how many overdue work packages their team has and automatically categorizes them and their team into that tier.
Image
  • Big Widget - Tier list | Medium Widget - MBTA Tracker | Small Widget - Celebrations
  • MBTA tracker shows when the next Green Line or Orange Line is. Can be linked to google or apple maps or transit app.
Admin Tools
Image
  • This is the default Admin Tools. In the preview, that is going to be the default dashboard page.
Image
  • This is for the countdown. It determines the start and end date.
  • For example, for FHE countdown, set the start date at the previous competition date, and end date for the upcoming competition date
  • If you do not set an end date, the counter will default to counting up.
  • For example, this can be used to track days since the bay has been cleaned
Image
  • When you open all the options for widgets, this is the full selection of widgets. The ones highlighted in red are the selected ones on the preview.
Image Image Image Image
  • For each widget size, you can stack widgets. When you select a widget, it highlights red, and a notification will pop up. On the preview, it will have dots on the bottom middle of the widget, displaying which widget option it is on. For example, if the calendar widget was selected on the 2nd, it will be the second dot, and if it's being displayed, it will be a black dot.
Image
  • Below the preview, there is a section to determine how fast the stack rotates.
Image
  • The user has the option to undo, clear, save their edits
Image
  • The user can remove all the widgets. If they save with a blank preview, it automatically goes to the default preview. There are also notifications when they remove widgets.
  • The default preview should consist of:
  • Large Widget: Calendar
  • Medium Widget: MBTA Tracker, Overdue Work Packages
  • Small Widget: Appreciations, @bay-dashboard Slack Channel
  • Countdown should be for both FHE/FSAE Competitions
Image
  • Any text field should have a pencil icon in the corner that allows the message to be edited
  • Once the pencil is selected, this modal will appear to edit the message

Out of scope, but could be fun: Bets that are user-entered and voted bets on various NER related things:
For example, how long until bay looks dirty again? And anyone on FL can enter a number. Or over/under 1 leads @channels ping on Sunday? And the user puts over or under.

Timeline

(September 9 - 14)

Phase 1 (Sep 14 - October 12)
Phase 2 (October 12 - November 9)
Phase 3 (November 9 - December 1)
Phase 4 (December 1 - December 13)
  • @bay-dashboard slack mention widget
  • backend for getting MBTA data
  • MBTA widget

Tickets

  • #4438
  • #4450
  • #4442
  • #4443
  • #4439
  • #4440
  • #4441
  • #4445
  • #4446
  • #4447
  • #4448
  • #4449
  • #4444
  • #4451
  • #4452
  • #4453
  • #4454
  • #4455
  • #4513
  • #4514

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.