FireBOM traverses the web to generate a bill of materials from the following types of web pages:
- Vendor Web Page
- Project Part Web Page
- Project Assembly Web Page
From this information, FireBOM constructs a BOM:
Vendor Web Page
Vendor web pages are not under project control, but provide information such as: package cost, unit cost, units per package, part number, and description. With ongoing community involvement, more vendors will be supported. (E.g., Shapeways vendor page)
Project Part Web Page
A project part web page explains the function of a vendor part in the context of a project. Web pages that describe project parts use the
@Sources tag to mark the location of a bulleted list of vendor URLs. The first vendor listed is the primary vendor used for BOM generation. All other vendors listed are alternates. Part quantities can be specified by appending a number in parentheses. The default part quantity is 1. (E.g., FirePick description of Shapeways part).
Project Assembly Web Page
A project assembly web page defines a collection of parts and/or sub-assemblies with the help of the
@Required tag, which marks the location of a bulleted list of required parts and/or assemblies:
A project assembly web page can also have an
@Sources tag if the assembly is "a single part with some other stuff tacked on." (E.g., FirePick D7IH assembly page)
To create a bill of materials for your project, you'll need to tag your project web pages as described, above. For example:
- Annotate your public GitHub project wiki with FireBOM tags.
- Annotate your enterprise wiki with FireBOM tags. Host firebom.war on an enteprise server.
- Annotate your private project HTML files with FireBOM tags. Build a BOM using the FireBOM command line and "file://..." URLs.
Every now and then you'll see the dreaded "FireBOM unsupported vendor" warning. FireBOM is open source and you can add code to support a vendor. Send a pull request when you're done and we will all thank you!