Northeastern-Electric-Racing / Northeastern-Electric-Racing/FinishLine
BoM Epic
Nobody has claimed this yet.
- 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
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
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
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
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.
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)
Suggesting a change in budget to handle the exceeding costs ^
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.
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
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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