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

BoM Epic

Open
#1,427 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Overview

Create a space where users can add and track the Bill of Materials along with the budget for projects

Stakeholders

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

User Story

As a NER Member, I want to be able to submit a particular BOM(Bill of Material) request. BOMs are a list of all parts and materials needed to complete a project that includes their costs, suppliers, and quantities. I want to easily be able to see it for the particular project instead of opening a new excel sheet every single time. More specifically, I want to provide part descriptions, manufacturers, links to online purchase options, and prices per quantity.

I want to specify the quantity needed per unit for each BoM item (e.g., individual pieces, packs, or specific measurements)

I want to track the status of each BOM item (Unordered, Ordered, Shipped, Received), and sort - filter BoM line items by specific attributes (e.g. status, manufactuer, quantity)

As an Engineer I want to easily organize and categorize the materials within a project, therefore introducing the idea of an assembly which can be considered a subcategory for a BoM. (For E.g. Motor Mounting is an Assembly of Transmission). I want to be able to access all the boms on one page by making the assemblies as drop downs.

Success Metrics

Once we have a working tabular prototype that is dynamic enough for the users

Rollout Plan

All at once

Out of Scope
  • Connection of BoM Items similar to each other in various projects
Background / Context

A BOM Link to a google spreadsheet already exists for every project. Our main goal is to integrate it into FinishLine and add more functionality for the users to play around with the BoM Items

Acceptance Criteria & Mock-ups

The Overview Page

image

The BoM should be shown in a tabular format. we have the status heading color coded to

Received: Green
Ordered: Orange
Shipped: Yellow
Unordered: Red

image

An assembly is a certain part of a Project. For example if we were to build a wheel as a project, our Assemblies could be the Brake, the spokes, the tyre and the rim.

The assembly should be a drop down which the user can open and close

image

Every BOM entry has a menu icon on the right which allows them to do 3 things. Edit a BoM (inline editing), Delete a BOM or Switch it to another assembly

image
At the Bottom of the BOM we have a few buttons. The first is a new entry Button, beside which we have add a New Assembly button and on the bottom right we have a way to see the total cost as well as budget of all the BoM items. It acts as a drop-down that allows us to see the costs of the whole BoM or just of a particular assembly

What happens if our costs exceed our budgets? A yellow warning icon pops up that lets the user know about the issue.

image
The way the user handles this is by going to actions and clicking on suggest budget increase. This should lead them to a prefilled new CR form, where they can request a budget change (shown below)

image
Suggesting a change in budget to handle the exceeding costs ^

image
Our New Entry button pops up a modal with all the information the user requires for inputting a new entry. NER PN and Notes are currently the optional fields that dont necessarily need to be filled in. While adding quantity we also give the user to put in units such as lb, volt, hz or a custom unit. This Entry form Also allows us to Choose an Assembly.

image
image
The Choose Assembly Drop down gives us the option of adding it to a current assembly, a completely new one or none at all. An add new assembly button will also be on the Overview screen and will lead to the modal in the bottom image. Allowing users to add a new assembly without necessarily adding a BoM entry

image
Here is the notes modal, which opens when we press on notes.

Tickets
Backend
  • #1479
  • #1509
  • #1510
  • #1511
  • #1519
  • #1520
  • #1521
  • #1522
  • #1523
  • #1524
  • #1525
  • #1526
  • #1527
  • #1528
Frontend
  • #1713
Fixes
  • #1723
  • Make units a select or string entry, create new unit on submit if it doesn't exist
  • #1877
  • Make manufacturers a select or string entry, create new manufacturer on submit if it doesn't exist
  • #1876
  • #1928
  • #1927
  • #1953
  • #1989
  • #1990
  • #2000
  • #2084
  • Delete Material Type Frontend
  • #2104
  • #2001
  • #2003
  • #2004
  • #2005
  • #2085
  • #2102
  • #2103
  • #2119
  • #2120
  • #2121
  • #2122
  • #2290

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.

Research direction

Start by reviewing the backend and frontend ticket lists, especially the unchecked items #1927 and #2120, then compare their status with the BOM acceptance criteria and mock-ups. The work is done when the remaining BOM functionality is implemented and the listed tabular, assembly, budgeting, editing, and filtering behavior is complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.