Browse Source

Create documentation

master
Skylar Ittner 1 year ago
commit
bbdd220107
10 changed files with 459 additions and 0 deletions
  1. 1
    0
      .gitignore
  2. 23
    0
      docs/API Documentation.md
  3. 28
    0
      docs/Items.md
  4. 33
    0
      docs/Locations and Categories.md
  5. 28
    0
      docs/Reports.md
  6. 71
    0
      docs/System Requirements.md
  7. 117
    0
      docs/images/docs-icon.svg
  8. 127
    0
      docs/images/logo.svg
  9. 17
    0
      docs/index.md
  10. 14
    0
      mkdocs.yml

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
site/

+ 23
- 0
docs/API Documentation.md View File

@@ -0,0 +1,23 @@
# API Documentation

The BinStack API is extremely simple to use. Requests can be sent via GET or POST, and responses are sent in JSON. POST requests are strongly recommended over GET for security reasons (i.e. GET request data, including API keys and plaintext passwords, is saved in server logs and browser history with little to no protection). You should only use GET requests for debugging purposes or if (for some awful reason) it is not possible to use POST for your use case.

## Request Structure

The API is typically located at `http(s)://binstack-url/api.php`.

All requests to the API must include a `username` and `password` argument corresponding to a valid user account. They must also include an `action`. The `action` specifies the type of request. Other arguments may or may not be needed, depending on the `action` specified. See the table below for valid actions and parameters.

## Response Structure

Responses to well-formed requests will have a `status` field containing the string `OK` or `ERROR`.
If `status` is `ERROR`, there will also be a field named `msg` containing a human-readable localized error message suitable for display to the user.
If `status` is `OK`, there may or may not be additional fields sent, depending on the `action`.

If the request is not well-formed (missing required arguments, invalid API key, or invalid `action`), the API will send a 4xx HTTP code and a JSON string, such as `"400 Bad Request"`, `"403 Unauthorized"`, or `"404 Not Found: the requested action is not available."`.

## Actions

| Action | Additional Arguments | Description
| ------------- | --------------------------------------- | -----------
| `ping` | None | Used to check if the server is online and responding. Responds with `{"status":"OK"}`.

+ 28
- 0
docs/Items.md View File

@@ -0,0 +1,28 @@
# Items

## Mobile Features

When using the mobile app, barcode buttons will appear next to some text boxes. You can tap the button to scan a barcode and automatically fill out the related text box.

## Finding Items

### Quick Lookup
From the BinStack Home, you can type an item name, barcode, or other item data to easily search your inventory.
### Items Page
The Items page is sortable and searchable. Type in the search box to filter the list of items. Click or tap on the table columns to sort by that column.

## Adding and Editing Items
You'll need to add at least one category and location before adding your first item to BinStack.

### Adding Item

On the Items page, click or tap the New Item button. The item name, category, and location are required. All other fields are optional. When you're done, press Save.

### Editing Item

On the Items page, find the item and press Edit. The item name, category, and location are required. All other fields are optional. When you're done, press Save.

### Deleting Item

On the Items page, find the item and press Edit. Press the Delete button.

+ 33
- 0
docs/Locations and Categories.md View File

@@ -0,0 +1,33 @@
# Locations and Categories

## Locations

Locations must have a name. You can also add a code and description. The code field is useful for labeling shelves with barcodes.

### Adding Location

On the Locations page, click or tap the New Location button. Type a location name, and optionally a code and description. When you're done, press Save.

### Editing Location

On the Locations page, find the location and press Edit. When you're done, press Save.

### Deleting Location

On the Locations page, find the location and press Edit. Press the Delete button. You will only be able to delete a location if there are no items in it.

## Categories

Item categories make it easier to sort items.

### Adding Category

On the Categories page, click or tap the New Category button. Type a category name. When you're done, press Save.

### Editing Category

On the Categories page, find the category and press Edit. When you're done, press Save.

### Deleting Category

On the Categories page, find the category and press Edit. Press the Delete button. You will only be able to delete a category if there are no items assigned to it.

+ 28
- 0
docs/Reports.md View File

@@ -0,0 +1,28 @@
# Reports

There are several reports you can generate, and a few different formats to choose from.

## Generating Reports

Go to the Reports/Export page. Select a report type and format, then press Generate Report. You will be prompted to download a file containing the report, or, in the case of the HTML web page format, a new browser tab will open with the report.

## Report Types

* Items
* All items in the database.
* Categories
* List of categories.
* Locations
* List of locations.
* Understocked Items
* List of items where the available quantity is less than the needed quantity.


## Report Formats

* CSV text file
* A Comma Seperated Values file, where each record is on a new line and columns are seperated with commas. Viewable in most text editors and spreadsheet applications.
* ODS spreadsheet
* An Open Document Format spreadsheet. Can be used in LibreOffice Calc, Excel, and all spreadsheet applications that follow modern standards for document file format.
* HTML web page
* A HTML table. Viewable in web browsers and some office applications, such as LibreOffice Writer.

+ 71
- 0
docs/System Requirements.md View File

@@ -0,0 +1,71 @@
# System Requirements

BinStack (and the other Business Apps) are tested and officially supported on the following configurations. Other systems may be supported at our discretion, possibly with an additional support fee. AccountHub and the other business apps should work on any sane Linux/PHP/MySQL based web server, even if it is not within the requirements shown here.

## Server

### Minimum Hardware

The Business Apps are very lightweight on server resources. The minimum supported hardware is a $35 Rasperry Pi 3 (1.2 GHz quad-core ARM CPU, 1GB RAM, 100Mbps Ethernet). Cloud VPS servers with as little as 512 MB RAM are fine too.

### Software and Operating System

* Server Operating System
* Ubuntu 16.04
* PHP
* 7.0
* 7.1
* Database
* MySQL 5.7+
* MariaDB 10.0+
* Web Server
* Apache 2.4

### Recommended Software
For best performance, security, and ease of administration, we recommend installing the following on your server:

* Google's ModPageSpeed Apache module (on-the-fly caching and bandwidth optimization)
* PHP's opcache (cached compiled PHP code for faster execution)
* Fail2ban (if using SSH or other remote administration methods)
* PHPMyAdmin (web-based MySQL/MariaDB server administration)
* LetsEncrypt (automatic free SSL encryption setup)

## Client

The Business Apps are web-based and built with modern technologies. This means any machine capable of running a standards-compliant, modern, up-to-date web browser will run the Business Apps just fine.

### Officially Supported Operating Systems
Note: This list is incomplete, as any OS capable of running one of the browsers from the list below will suffice.

* Linux
* Ubuntu Linux 14.04, 16.04, and supported non-LTS releases
* Ubuntu Derivatives (such as Linux Mint)
* Debian 8 or 9
* Android
* 5.0+ with Chrome, or
* Any supported by Firefox, or
* Any supported by the Business Apps for Mobile client

### Supported Operating Systems
Any other operating system running a supported browser is also supported, but we may not provide support for issues not directly related to the Business Apps.

### Supported Screen Resolutions
All screens with a viewport (the portion of the screen showing the app, in contrast to window borders, status bars, etc) having a resolution greater than 300x400 pixels will work, assuming use of a supported browser.

### Supported Web Browsers
* Mozilla Firefox (54+)
* Chrome/Chromium (latest and latest-1)
* Chrome WebView, AOSP WebView (Android 5.0+)

### Unsupported Web Browsers
While we do not support the following browsers, they will likely still work. You won't break anything by trying.

* Edge
* Safari
* Opera

### Known Incompatable Browsers
These browsers are known to lack support for CSS rules, JavaScript APIs, and other technology required to run the Business Apps.

* Opera Mini
* Internet Explorer

+ 117
- 0
docs/images/docs-icon.svg View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 511.99999 511.99999"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="docs-icon.svg"
inkscape:export-filename="/home/skylar/Documents/Assets/Graphics/docs-icon.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="52.220574"
inkscape:cy="225.3771"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="107"
inkscape:window-y="1024"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-540.36219)">
<rect
y="593.73596"
x="56"
height="50"
width="400"
id="rect4187"
style="fill:#00b0ff;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:#9e9e9e;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1"
id="rect4150"
width="380"
height="50"
x="76"
y="683.25037" />
<rect
style="fill:#9e9e9e;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1"
id="rect4154"
width="380"
height="50"
x="76"
y="953.25037" />
<g
id="g4162"
style="fill:#bdbdbd">
<rect
style="fill:#bdbdbd;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1"
id="rect4148"
width="320"
height="50"
x="136"
y="773.25037" />
<circle
r="12.5"
cy="798.25037"
cx="101.19038"
id="path4160"
style="fill:#bdbdbd;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
transform="translate(40,90.000002)"
id="g4162-3"
style="fill:#bdbdbd">
<rect
style="fill:#bdbdbd;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1"
id="rect4148-6"
width="280"
height="50"
x="136"
y="773.25037" />
<circle
r="12.5"
cy="798.25037"
cx="101.19038"
id="path4160-7"
style="fill:#bdbdbd;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:5, 5;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</g>
</svg>

+ 127
- 0
docs/images/logo.svg View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 512.00001 512.00001"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="logo.svg"
inkscape:export-filename="/home/skylar/Documents/Projects/Assets/SimpleInventory/logo_64.png"
inkscape:export-xdpi="11.25"
inkscape:export-ydpi="11.25">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="-135.9681"
inkscape:cy="352.66131"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-540.36216)">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804"
id="rect4726"
width="512"
height="512"
x="0"
y="540.36218"
rx="50"
ry="50" />
<g
id="g4241"
transform="translate(0,22.223356)">
<rect
ry="20"
rx="20"
y="837.27594"
x="92.609116"
height="100"
width="100"
id="rect4163"
style="opacity:1;fill:#4caf50;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804" />
<rect
ry="20"
rx="20"
y="837.27594"
x="206"
height="100"
width="100"
id="rect4163-3"
style="opacity:1;fill:#4caf50;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804" />
<rect
ry="20"
rx="20"
y="837.27594"
x="319.3909"
height="100"
width="100"
id="rect4163-3-7"
style="opacity:1;fill:#4caf50;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804" />
</g>
<g
id="g4237"
transform="translate(0,19.543226)">
<rect
ry="20"
rx="20"
y="727.60065"
x="149.30457"
height="100"
width="100"
id="rect4163-5"
style="opacity:1;fill:#4caf50;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804" />
<rect
ry="20"
rx="20"
y="727.60065"
x="262.69543"
height="100"
width="100"
id="rect4163-3-3"
style="opacity:1;fill:#00e676;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804" />
</g>
<rect
style="opacity:1;fill:#4caf50;fill-opacity:1;stroke:none;stroke-width:50;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804"
id="rect4163-5-5"
width="100"
height="100"
x="206"
y="634.78845"
rx="20"
ry="20" />
</g>
</svg>

+ 17
- 0
docs/index.md View File

@@ -0,0 +1,17 @@
# BinStack

BinStack is the easy way to keep track of your business assets. Never wander in search of the stapler again.

## Features

* __Asset Tracking__
* Easily manage locations, tag numbers, assigned users, and other important item properties.

* __Fully Searchable__
* Start typing in the search box to instantly filter hundreds of results down to only a few. Sorting also built in.

* __Autofill__
* You don't need to remember category codes or usernames. Just start typing and BinStack will figure out what you're looking for.

* __Mobile-ready__
* Take inventory or find what you need on the go. BinStack looks and works great on modern smartphones and tablets. You can even scan barcodes with your phone camera to look up and add items (when paired with the Netsyms Business app).

+ 14
- 0
mkdocs.yml View File

@@ -0,0 +1,14 @@
site_name: BinStack Docs
theme:
name: 'material'
logo: 'images/logo.svg'
favicon: 'images/docs-icon.svg'
feature:
tabs: false
palette:
primary: 'green'
accent: 'green'
site_author: Netsyms Technologies
repo_name: 'Business/BinStack'
repo_url: 'https://source.netsyms.com/Business/BinStack'
copyright: Copyright &copy; 2018 Netsyms Technologies. All rights reserved. Copying is allowed for instructional purposes (such as creating an internal user help document) as long as credit is given and this copyright notice is included. For other purposes, or if you are selling a product containing copied material, please <a href="https://netsyms.com/contact" target="_BLANK">contact us</a> for permission.

Loading…
Cancel
Save