Northeastern-Electric-Racing / FinishLine

Our project management dashboard, v5
https://finishlinebyner.com
GNU Affero General Public License v3.0
26 stars 7 forks source link

Design Review Calendar #1744

Open MWalve opened 11 months ago

MWalve commented 11 months ago

Overview

The Design Review Calendar (DRC) serves as a feature for members to schedule and track design reviews for work packages in projects. Design Reviews are meetings where related stakeholders of a project come together to discuss changes and updates to the work package being reviewed.

Stakeholders

Product Stakeholder: @MWalve, Neha Chandran, Amrutha Hari Software Stakeholder: @RChandler234 , @Peyton-McKee Reference Users: Sofia Varner, Walter Stadolnik

User Story

  1. As the creator of the Design Review, I want to check the schedule of the invitees throughout the semester, so that I can conduct the design review meeting without any scheduling conflicts.
  2. As a creator of the Design Review, I want to ping attendees upon scheduling and make sure they confirm their availability.
  3. As an invitee, I want to get a notification about the upcoming meeting on slack and confirm my availability on FinishLine.
  4. As a Technical Head who is invited to the meeting, I want the ability to extend the invitations to other members whom I believe should participate, so there is better knowledge sharing.
  5. As a member on FinishLine I want to view all the upcoming design reviews on a calendar with the ability to view their members, timings and location.
  6. As a Team Head, I want to be able to track the progress of the ongoing work by monitoring the number of design review meetings held in a specific timeframe, so that I can assess the team’s success and identify areas of improvement.

Success Metrics

A complete workflow all the way from when a user wants to schedule a review till after the meeting is complete.

Rollout Plan

This feature is planned to be done by March 18th. We will release this to prod around then. Eboard and Heads can experiment with this feature for the next 1/2 months before the competition to start working out any bugs. The feature will be expected to begin full adoption by Summer 2024

Out of Scope

Any advanced integration with Google Calendar (to sync the NER calendar to the FinishLine calendar) or any other calendars (outside of simply sending an email with an invite to the Design Review)

Background / Context

Design Reviews are being conducted frequently where all stakeholders of a particular work package come together to discuss updates being done on the WP. So far it was a manual process wherein communications would happen between slack and when2meet.

To make this more efficient and more centralized, we're integrating a calendar into FinishLine that will aid in scheduling and tracking user attendees.

Acceptance Criteria & Mock-ups

Attached is a Figma link with the flows (interactive prototypes between screens) regarding each small feature in the whole DRC. For every feature explained I will point to the flow number to view. In the link you can change the options to fit to screen. https://www.figma.com/proto/OHAnZBzFaBykyrI4I4PkSR/Untitled?type=design&node-id=3-417&t=7XUrkUtI7BMEIksA-1&scaling=contain&page-id=0%3A1&starting-point-node-id=3%3A417&show-proto-sidebar=1&mode=design

Here is a view of the homepage of the calendar with no design reviews scheduled image

  1. There are multiple ways a Design review can be scheduled from FinishLine. a. Clicking on the plus sign for each day b. Clicking on a button from the work package page/from the actions menu --------------------------CHECK FLOW 2, 3 and 4 (Click on the 17th's add button)-------------------------- Clicking on either to schedule one opens a modal that allows you to select and/or change

    • the required/optional attendees
    • the date
    • the time of the design review
    • and the team

    Once you ping attendees a slack message is sent on the team channel pinging all the attendees to confirm their schedule. It will take them to their settings page. image

  2. Here is the revised look of the settings screen image image

    The settings are divided in 2 tabs. Details and Preferences. The Details tab will have all the member details and the preferences will have the member financial and DRC scheduling preferences.

    We ask the user for 2 inputs. Their google account to view notify about upcoming DR’s and a Personal Zoom link of with their northeastern ID.

    There is also a button that allows a member to input in their weekly availability (which can be edited anytime). As the Design Review has been created and this user is an attendee they would be required to confirm if they are available for the time they DR has been scheduled for. ------------------------------------CHECK FLOW 7--------------------------------------------------------

  3. The pinged attendees are lead to their settings page, instead of seeing the edit availabilty button, they see a confirm availability button which they can just confirm. Once all the users have confirmed/not confirmed their availability the creator of the Design Review is notified on slack to go and finalize the review.

image

As there still needs to be a way for the creator to check the status of if each of the attendees has confirmed or not, in the unconfirmed DR's button on the homepage we can see who has or has not confirmed their status.

image

image

--------------------------------- CHECK FLOW 5 and click on the button on the top right -------------------------

The creators DR information is saved and they can go back to the homepage screen, double click on the design review in question and click on the edit icon which will take them to the scheduling page

image

This page is where they officially see everyone’s confirmation for the ping which they got on slack. They can decide to cancel the edit or finalize and also view if any other design reviews are happening on the same day in the same location by looking at the logo. A warning is given if the creator does not have their zoom link input which means they will need to go to the settings page to input their preference details.

Clicking finalize brings upon another modal tells the creator to add a google doc link for the design review, select whether they want it to be in person or online and location if the in person time is selected.

clicking finalize once more officially puts the design review on the calendar homepage. where all members can view it.

image ------------------------------------- CHECK FLOW 5 ---------------------------------------------------

  1. Once the design review is completed the creator can go back to the homepage and edit/change any attendees that ended up attending the design review. The design review can be marked complete and will be locked. The creator can then do 3 things
    1. Schedule another DR on the same Work Package, this will take them back to the modal to schedule attendees
    2. Stage gate - This button would be greyed out and will only be clickable if the DR is marked complete and if the Deliverables and Expected Activities are checked off
    3. Reqest delay to WP - Goes to the change request page to change the deadline

---------------------- CHECK FLOW 2 -> Click on the red DR allocation, and then try clicking on the 3 buttons at the bottom.

The Heads of each team have an extra button to view the attendees in the admin tools.

image image

Tickets

Post-MVP

RChandler234 commented 10 months ago

Schema

Calendar

Design_Review[]

Design_Review_Status (enum)

UNCONFIRMED, CONFIRMED, SCHEDULED, DONE

Design_Review_Team (enum)

ELECTRICAL, SOFTWARE, MECHANICAL

Design_Review

dateScheduled: DateTime dateCreated: DateTime userCreated: User status: Design_Review_Status teamType: Design_Review_Team requiredMembers: User[] optionalMembers: User[] confirmedMembers: User[] deniedMembers: User[] location?: String (optional) online: boolean inPerson: boolean zoomLink?: String (optional) attendees: User[] dateDeleted?: DateTime (optional) userDeleted?: User (optional) docTemplateLink?: String (optional)

Schedule_Settings

personalGmail: String personalZoomLink: String availability: Availability

Availability

mondayAvailability: DateTime[] tuesdayAvailability: DateTime[] wednesdayAvailability: DateTime[] thursdayAvailability: DateTime[] fridayAvailability: DateTime[] saturdayAvailability: DateTime[] sundayAvailability: DateTime[]

add to User

requiredDesignReviews: DesignReview[] attendedDesignReviews: DesignReview[] scheduleSettings: Schedule_Settings

Backend Endpoints

Hooks