mirror of
https://github.com/hay-kot/homebox.git
synced 2024-11-22 00:25:43 +00:00
docs: Fix a bunch of grammar and spelling, rephrased some sentences to be more readable (#635)
This commit is contained in:
parent
9edbda3daa
commit
10c030a56b
4 changed files with 33 additions and 33 deletions
|
@ -1,16 +1,16 @@
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
## We Develop with Github
|
## We Develop with GitHub
|
||||||
|
|
||||||
We use github to host code, to track issues and feature requests, as well as accept pull requests.
|
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
|
||||||
|
|
||||||
## Branch Flow
|
## Branch Flow
|
||||||
|
|
||||||
We use the `main` branch as the development branch. All PRs should be made to the `main` branch from a feature branch. To create a pull request you can use the following steps:
|
We use the `main` branch as the development branch. All PRs should be made to the `main` branch from a feature branch. To create a pull request, you can use the following steps:
|
||||||
|
|
||||||
1. Fork the repository and create a new branch from `main`.
|
1. Fork the repository and create a new branch from `main`.
|
||||||
2. If you've added code that should be tested, add tests.
|
2. If you've added code that should be tested, add tests.
|
||||||
3. If you've changed API's, update the documentation.
|
3. If you've changed APIs, update the documentation.
|
||||||
4. Ensure that the test suite and linters pass
|
4. Ensure that the test suite and linters pass
|
||||||
5. Issue your pull request
|
5. Issue your pull request
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ We use the `main` branch as the development branch. All PRs should be made to th
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
There is a devcontainer available for this project. If you are using VSCode, you can use the devcontainer to get started. If you are not using VSCode, you can need to ensure that you have the following tools installed:
|
There is a devcontainer available for this project. If you are using VSCode, you can use the devcontainer to get started. If you are not using VSCode, you need to ensure that you have the following tools installed:
|
||||||
|
|
||||||
- [Go 1.19+](https://golang.org/doc/install)
|
- [Go 1.19+](https://golang.org/doc/install)
|
||||||
- [Swaggo](https://github.com/swaggo/swag)
|
- [Swaggo](https://github.com/swaggo/swag)
|
||||||
|
@ -31,27 +31,27 @@ If you're using `taskfile` you can run `task --list-all` for a list of all comma
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
If you're using the taskfile you can use the `task setup` command to run the required setup commands. Otherwise you can review the commands required in the `Taskfile.yml` file.
|
If you're using the taskfile, you can use the `task setup` command to run the required setup commands. Otherwise, you can review the commands required in the `Taskfile.yml` file.
|
||||||
|
|
||||||
Note that when installing dependencies with pnpm you must use the `--shamefully-hoist` flag. If you don't use this flag you will get an error when running the the frontend server.
|
Note that when installing dependencies with pnpm you must use the `--shamefully-hoist` flag. If you don't use this flag, you will get an error when running the frontend server.
|
||||||
|
|
||||||
### API Development Notes
|
### API Development Notes
|
||||||
|
|
||||||
start command `task go:run`
|
start command `task go:run`
|
||||||
|
|
||||||
1. API Server does not auto reload. You'll need to restart the server after making changes.
|
1. API Server does not auto reload. You'll need to restart the server after making changes.
|
||||||
2. Unit tests should be written in Go, however end-to-end or user story tests should be written in TypeScript using the client library in the frontend directory.
|
2. Unit tests should be written in Go, however, end-to-end or user story tests should be written in TypeScript using the client library in the frontend directory.
|
||||||
|
|
||||||
### Frontend Development Notes
|
### Frontend Development Notes
|
||||||
|
|
||||||
start command `task: ui:dev`
|
start command `task: ui:dev`
|
||||||
|
|
||||||
1. The frontend is a Vue 3 app with Nuxt.js that uses Tailwind and DaisyUI for styling.
|
1. The frontend is a Vue 3 app with Nuxt.js that uses Tailwind and DaisyUI for styling.
|
||||||
2. We're using Vitest for our automated testing. you can run these with `task ui:watch`.
|
2. We're using Vitest for our automated testing. You can run these with `task ui:watch`.
|
||||||
3. Tests require the API server to be running and in some cases the first run will fail due to a race condition. If this happens just run the tests again and they should pass.
|
3. Tests require the API server to be running, and in some cases the first run will fail due to a race condition. If this happens, just run the tests again and they should pass.
|
||||||
|
|
||||||
## Publishing Release
|
## Publishing Release
|
||||||
|
|
||||||
Create a new tag in github with the version number vX.X.X. This will trigger a new release to be created.
|
Create a new tag in GitHub with the version number vX.X.X. This will trigger a new release to be created.
|
||||||
|
|
||||||
Test -> Goreleaser -> Publish Release -> Trigger Docker Builds -> Deploy Docs + Fly.io Demo
|
Test -> Goreleaser -> Publish Release -> Trigger Docker Builds -> Deploy Docs + Fly.io Demo
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
Using the CSV import is the recommended way for adding items to the database. It is always going to be the fastest way to import any large amount of items and provides the most flexibility when it comes to adding items.
|
Using the CSV import is the recommended way for adding items to the database. It is always going to be the fastest way to import any large number of items and provides the most flexibility when it comes to adding items.
|
||||||
|
|
||||||
**Current Limitations**
|
**Current Limitations**
|
||||||
|
|
||||||
- Imports only supports importing items, locations, and labels
|
- Imports only support importing items, locations, and labels
|
||||||
- Imports and Exports do not support attachments. Attachments must be uploaded after import
|
- Imports and Exports do not support attachments. Attachments must be uploaded after import
|
||||||
- CSV Exports do not support nested path exports (e.g. `Home / Office / Desk`) and will only export the Items direct parent, (though imports _do_ support nested paths)
|
- CSV Exports do not support nested path exports (e.g. `Home / Office / Desk`) and will only export the Items direct parent, (though imports _do_ support nested paths)
|
||||||
- Cannot specify item-to-item relationships (e.g. `Item A` is a child of `Item B`)
|
- Cannot specify item-to-item relationships (e.g. `Item A` is a child of `Item B`)
|
||||||
|
@ -16,13 +16,13 @@ Using the CSV import is the recommended way for adding items to the database. It
|
||||||
|
|
||||||
## CSV Reference
|
## CSV Reference
|
||||||
|
|
||||||
Below are the supported columns. They are case sensitive, can be in any ordered or can be omitted unless otherwise specified.
|
Below are the supported columns. They are case-sensitive, can be in any ordered or can be omitted unless otherwise specified.
|
||||||
|
|
||||||
### Special Syntax Columns
|
### Special Syntax Columns
|
||||||
|
|
||||||
`HB.import_ref`
|
`HB.import_ref`
|
||||||
|
|
||||||
: Import Refs are unique strings that can be used to deduplicate imports. Before an item is imported, we check the database for a matching ref. If the ref exists, we skip creation of that item.
|
: Import Refs are unique strings that can be used to deduplicate imports. Before an item is imported, we check the database for a matching ref. If the ref exists, we skip the creation of that item.
|
||||||
|
|
||||||
* String Type
|
* String Type
|
||||||
* Max 100 Characters
|
* Max 100 Characters
|
||||||
|
@ -52,7 +52,7 @@ Below are the supported columns. They are case sensitive, can be in any ordered
|
||||||
### Standard Columns
|
### Standard Columns
|
||||||
|
|
||||||
| Column | Type | Description |
|
| Column | Type | Description |
|
||||||
| -------------------- | ------------- | --------------------------------------------- |
|
|----------------------|---------------|-----------------------------------------------|
|
||||||
| HB.quantity | Integer | The quantity of items to create |
|
| HB.quantity | Integer | The quantity of items to create |
|
||||||
| HB.name | String | Name of the item |
|
| HB.name | String | Name of the item |
|
||||||
| HB.asset_id | AssetID | Asset ID for the item |
|
| HB.asset_id | AssetID | Asset ID for the item |
|
||||||
|
@ -76,7 +76,7 @@ Below are the supported columns. They are case sensitive, can be in any ordered
|
||||||
**Type Key**
|
**Type Key**
|
||||||
|
|
||||||
| Type | Format |
|
| Type | Format |
|
||||||
| ------- | --------------------------------------------------- |
|
|---------|-----------------------------------------------------|
|
||||||
| String | Max 255 Characters unless otherwise specified |
|
| String | Max 255 Characters unless otherwise specified |
|
||||||
| Date | YYYY-MM-DD |
|
| Date | YYYY-MM-DD |
|
||||||
| Boolean | true or false, yes or no, 1 or 0 - case insensitive |
|
| Boolean | true or false, yes or no, 1 or 0 - case insensitive |
|
||||||
|
|
|
@ -15,19 +15,19 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Homebox is the inventory and organization system built for the Home User! With a focus on simplicity and ease of use, Homebox is the perfect solution for your home inventory, organization, and management needs. While developing this project I've tried to keep the following principles in mind:
|
Homebox is the inventory and organization system built for the Home User! With a focus on simplicity and ease of use, Homebox is the perfect solution for your home inventory, organization, and management needs. While developing this project, I've tried to keep the following principles in mind:
|
||||||
|
|
||||||
- _Simple_ - Homebox is designed to be simple and easy to use. No complicated setup or configuration required. Use either a single docker container, or deploy yourself by compiling the binary for your platform of choice.
|
- _Simple_ - Homebox is designed to be simple and easy to use. No complicated setup or configuration required. Use either a single docker container, or deploy yourself by compiling the binary for your platform of choice.
|
||||||
- _Blazingly Fast_ - Homebox is written in Go which makes it extremely fast and requires minimal resources to deploy. In general idle memory usage is less than 50MB for the whole container.
|
- _Blazingly Fast_ - Homebox is written in Go, which makes it extremely fast and requires minimal resources to deploy. In general idle memory usage is less than 50MB for the whole container.
|
||||||
- _Portable_ - Homebox is designed to be portable and run on anywhere. We use SQLite and an embedded Web UI to make it easy to deploy, use, and backup.
|
- _Portable_ - Homebox is designed to be portable and run on anywhere. We use SQLite and an embedded Web UI to make it easy to deploy, use, and backup.
|
||||||
|
|
||||||
## Project Status
|
## Project Status
|
||||||
|
|
||||||
Homebox is currently in early-active development and is currently in **beta** stage. This means that the project may still be unstable and clunky. Overall we are striving to not introduce any breaking changes and have checks in place to ensure migrations and upgrades are smooth. However, we do not guarantee that there will be no breaking changes. We will try to keep the documentation up to date as we make changes.
|
Homebox is currently in early active development and is currently in **beta** stage. This means that the project may still be unstable and clunky. Overall, we are striving to not introduce any breaking changes and have checks in place to ensure migrations and upgrades are smooth. However, we do not guarantee that there will be no breaking changes. We will try to keep the documentation up to date as we make changes.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Create and Manage _Items_ by provided a name and description - That's it! Homebox requires only a few details to be provided to create an item, after that you can specify as much detail as you want, or hide away some of the things you won't ever need.
|
- Create and Manage _Items_ by providing a name and a description - That's it! Homebox requires only a few details to be provided to create an item, after that you can specify as much detail as you want, or hide away some of the things you won't ever need.
|
||||||
- Optional Details for Items include
|
- Optional Details for Items include
|
||||||
- Warranty Information
|
- Warranty Information
|
||||||
- Sold To Information
|
- Sold To Information
|
||||||
|
@ -40,17 +40,17 @@ Homebox is currently in early-active development and is currently in **beta** st
|
||||||
- Bill of Materials Export
|
- Bill of Materials Export
|
||||||
- QR Code Label Generator
|
- QR Code Label Generator
|
||||||
- Organize _Items_ by creating _Labels_ and _Locations_ and assigning them to items.
|
- Organize _Items_ by creating _Labels_ and _Locations_ and assigning them to items.
|
||||||
- Multi-Tenant Support - All users are placed inside of a group and can only see items that are apart of their group. Invite family members to your group, or share an instance among friends!
|
- Multi-Tenant Support - All users are placed in a group and can only see items in their group. Invite family members to your group, or share an instance among friends!
|
||||||
|
|
||||||
|
|
||||||
## Why Not Use Something Else?
|
## Why Not Use Something Else?
|
||||||
|
|
||||||
There are a lot of great inventory management systems out there, but none of them _really_ fit my needs as a home user. Snipe-IT is a fantastic product that has so many robust features and management options that it's easy to become overwhelmed and confused. I wanted something that was simple and easy to use that didn't require a lot of cognitive overhead to manage. I primarily built this to organize my IOT devices and save my warranty and documentation information in a central, searchable location.
|
There are a lot of great inventory management systems out there, but none of them _really_ fit my needs as a home user. Snipe-IT is a fantastic product that has so many robust features and management options which makes it easy to become overwhelmed and confused. I wanted something that was simple and easy to use that didn't require a lot of cognitive overhead to manage. I primarily built this to organize my IOT devices and save my warranty and documentation information in a central, searchable location.
|
||||||
|
|
||||||
### Spreadsheet
|
### Spreadsheet
|
||||||
|
|
||||||
That's a fair point. If your needs can be fulfilled by a Spreadsheet, I'd suggest using that instead. I've found spreadsheets get pretty unwieldy when you have a lot of data and it's hard to keep track of what's where. I also wanted to be able to search and filter my data in a more robust way than a spreadsheet can provide. I also wanted to leave to door open for more advanced features in the future like maintenance logs, moving label generators, and more.
|
That's a fair point. If your needs can be fulfilled by a Spreadsheet, I'd suggest using that instead. I've found spreadsheets get pretty unwieldy when you have a lot of data, and it's hard to keep track of what's where. I also wanted to be able to search and filter my data in a more robust way than a spreadsheet can provide. I also wanted to leave the door open for more advanced features in the future like maintenance logs, moving label generators, and more.
|
||||||
|
|
||||||
### Snipe-It?
|
### Snipe-It?
|
||||||
|
|
||||||
Snipe-It is the gold standard for IT management. If your use-case is to manage consumables and IT physical infrastructure I highly suggest you look at Snipe-It over Homebox, it's just more purpose built for that use case. Homebox is, in contrast, purpose built for the home user, which means that we try to focus on keeping things simple and easy to use. Lowering the friction for creating items and managing them is a key goal of Homebox which means you lose out on some of the more advanced features. In most cases this is a good trade-off.
|
Snipe-It is the gold standard for IT management. If your use-case is to manage consumables and IT physical infrastructure, I highly suggest you look at Snipe-It over Homebox, it's just more purpose built for that use case. Homebox is, in contrast, purpose built for the home user, which means that we try to focus on keeping things simple and easy to use. Lowering the friction for creating items and managing them is a key goal of Homebox which means you lose out on some of the more advanced features. In most cases, this is a good trade-off.
|
|
@ -12,7 +12,7 @@ Custom fields are a great way to add any extra information to your item. The fol
|
||||||
Custom fields are appended to the main details section of your item.
|
Custom fields are appended to the main details section of your item.
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
Homebox Custom Fields also have special support for URLs. Provide a URL (`https://google.com`) and it will be automatically converted to a clickable link in the UI. Optionally, you can also use markdown syntax to add a custom text to the button. `[Google](https://google.com)`
|
Homebox Custom Fields also have special support for URLs. Provide a URL (`https://google.com`) and it will be automatically converted to a clickable link in the UI. Optionally, you can also use Markdown syntax to add a custom text to the button. `[Google](https://google.com)`
|
||||||
|
|
||||||
## Managing Asset IDs
|
## Managing Asset IDs
|
||||||
|
|
||||||
|
@ -20,26 +20,26 @@ Homebox provides the option to auto-set asset IDs, this is the default behavior.
|
||||||
|
|
||||||
Example ID: `000-001`
|
Example ID: `000-001`
|
||||||
|
|
||||||
Asset IDs are partially managed by Homebox, but have a flexible implementation to allow for unique use cases. ID's are non-unique at the database level so there is nothing stopping a user from manually setting duplicate IDs for various items. There are two recommended approaches to manage Asset IDs
|
Asset IDs are partially managed by Homebox, but have a flexible implementation to allow for unique use cases. IDs are non-unique at the database level, so there is nothing stopping a user from manually setting duplicate IDs for various items. There are two recommended approaches to manage Asset IDs:
|
||||||
|
|
||||||
### 1. Auto Incrementing IDs
|
### 1. Auto Incrementing IDs
|
||||||
|
|
||||||
This is the default behavior and likely to one to experience the most consistent behavior. Whenever creating or importing an item, that items receives the next available ID. This is the most consistent approach and is recommended for most users.
|
This is the default behavior likely to experience the most consistency. Whenever creating or importing an item, that item receives the next available ID. This is recommended for most users.
|
||||||
|
|
||||||
### 2. Auto Incrementing ID's with Reset
|
### 2. Auto Incrementing IDs with Reset
|
||||||
|
|
||||||
In some cases you may want to skip some items such as consumables, or items that are loosely tracked. In this case, we recommend that you leave auto-incrementing ID's enabled _however_ when you create a new item that you want to skip, you can go to that item and reset the ID to 0. This will remove it from the auto-incrementing sequence and the next item will receive the next available ID.
|
In some cases, you may want to skip some items such as consumables, or items that are loosely tracked. In this case, we recommend that you leave auto-incrementing IDs enabled _however_ when you create a new item that you want to skip, you can go to that item and reset the ID to 0. This will remove it from the auto-incrementing sequence, and the next item will receive the next available ID.
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
If you're migrating from an older version there is a action on the users profile page to assign IDs to all items. This will assign the next available ID to all items in the order of creation. You should _only_ do this once during the migration process. You should be especially cautious of this action if you're using the reset feature described in option number 2
|
If you're migrating from an older version, there is an action on the user's profile page to assign IDs to all items. This will assign the next available ID to all items in order of their creation. You should __only do this once__ during the migration process. You should be especially cautious with this if you're using the reset feature described in [option number 2](#2-auto-incrementing-ids-with-reset)
|
||||||
|
|
||||||
## QR Codes
|
## QR Codes
|
||||||
|
|
||||||
:octicons-tag-24: 0.7.0
|
:octicons-tag-24: 0.7.0
|
||||||
|
|
||||||
Homebox has a built-in QR code generator that can be used to generate QR codes for your items. This is useful for tracking items with a mobile device. You can generate a QR code for any item by clicking the QR code icon in the top right of the item details page. The same can be done for the Labels and Locations page. Currently support is limited to generating one off QR Codes.
|
Homebox has a built-in QR code generator that can be used to generate QR codes for your items. This is useful for tracking items with a mobile device. You can generate a QR code for any item by clicking the QR code icon in the top right of the item details page. The same can be done for the Labels and Locations page. Currently, support is limited to generating one-off QR Codes.
|
||||||
|
|
||||||
However, the API endpoint is available for generating QR codes on the fly for any item (or any other data) if you provide a valid API key in the query parameters. An example url would look like `/api/v1/qrcode?data=https://homebox.fly.dev/item/{uuid}`. Currently the easiest way to get an API token is to use one from an existing URL of the QR Code in the API key, but this will be improved in the future.
|
However, the API endpoint is available for generating QR codes on the fly for any item (or any other data) if you provide a valid API key in the query parameters. An example url would look like `/api/v1/qrcode?data=https://homebox.fly.dev/item/{uuid}`. Currently, the easiest way to get an API token is to use one from an existing URL of the QR Code in the API key, but this will be improved in the future.
|
||||||
|
|
||||||
:octicons-tag-24: v0.8.0
|
:octicons-tag-24: v0.8.0
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue