User Guide

Overview

Inventory is a simple system for storing site inventories, categorised by buildings and rooms. It stores its data in a spreadsheet allowing for easy access & data portability.

Graphical User Interface

The Inventory Graphical User Interface is split into two sections:

  1. The navigation bar - shown at the top of the page
  2. The main content - shown below the navigation bar. This may be a either the welcome page, user guide, or the shown inventory items

These areas are highlighted below:



Navigation Bar

The navigation bar is itself split into 2 sections:

  1. Navigation links - shown to the left
  2. Actions - shown to the right. These are shown contextually, so that only relevant actions are available.

Actions may be disabled (they will appear greyed-out) at times, for example:

  1. Save Spreadsheets button - this will be disabled until the user modifies the Inventory file.
  2. Open Spreadsheets button - this will be disabled while creating a new file, or opening a file.

Main Content

The main content changes depending on which page Inventory is on, and what state the application is in (e.g. an inventory file is open).

Creating an Inventory File

To create a new Inventory file, you may either use the Graphical User Interface to create an empty file (recommended), or you may create your own XLSX document (see technical notes).

When creating a new Inventory file through the Graphical User Interface, you will be asked where you want to save the file.

Keyboard Shortcuts

Inventory supports a number of keyboard shortcuts to ease use of the software.

Shortcut Keys Description
F1 Shows the User Guide.
Ctrl+O (Linux, BSD, Windows) / Cmd+O (macOS) Opens an Inventory file.
Ctrl+S (Linux, BSD, Windows) / Cmd+S (macOS) Saves the currently open Inventory file.
Ctrl+Z (Linux, BSD, Windows) / Cmd+Z (macOS) Undoes the last performed action.
Ctrl+Shift+Z (Linux, BSD, Windows) / Cmd+Shift+Z (macOS) Redoes the last undone action.



Technical Notes

Inventory File Format

Inventory uses the XLSX format (Excel workbook) to store it's data, and is designed to allow users to modify the workbook directly - by adding new worksheets, or new columns to existing worksheets. Inventory does it's best to retain 'user defined' fields and sheets.

Inventory Worksheet

Inventory reads item data from a worksheet named Inventory. When Inventory reads this worksheet, it creates a mapping of columns so that user's can include/exclude headings and re-arrange them to suit them. This worksheet may contain the following columns:

Column Name Required / Optional Description
Building Required The name of the building, the room is situated within.
Floor Required The floor (0-indexed) of the building, the room is situated within.
Room Required The name of the room.
Room Number Optional The number or reference given to the room.
Name Required The name of the item.
Quantity Required The quantity of the item.
Description Optional The description of the item.

Browser Support

Inventory relies on the File System Access API which is currently (as of 19th April 2024) a draft specification proposed by Google editors.

Currently the only browser engine to implement this specification is Chromium, with WebKit (Apple) and Gecko (Mozilla) opposed to the proposed standard.

Practically this means the following browsers are supported by Inventory:

  • Google Chrome
  • Microsoft Edge
  • Opera

Open-Source Licences

Inventory uses the following open-source software:

Name Description Licence
Bulma CSS framework
The MIT License (MIT)

Copyright (c) 2023 Jeremy Thomas

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
SheetJS Library for reading spreadsheets
Copyright (C) 2012-present   SheetJS LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
@github/check-all Utility library for multiple checkbox selection
Copyright (c) 2018-2020 GitHub, Inc.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.