Skip to content

theluqmn/whouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

103d5a0 · · Mar 26, 2026

History

28 Commits
Mar 25, 2026
Mar 25, 2026
Mar 26, 2026
Mar 25, 2026
Mar 26, 2026
Mar 23, 2026
Mar 25, 2026

Repository files navigation

Whouse

An inventory management system.

Features

Note

Whouse is a work-in-progress. What you see at the moment may not the final product.

Server

A REST server developed in Go using the echo library.

The following is the REST API routes that are implemented:

Method Endpoint Params Description
GET / Check if the server is up
GET /items id (optional) Get the JSON of a specific item (or all)
POST /items id, name, description (optional), class, data, amount, unit (optional) Create a new item
DELETE /items id Delete an item
POST /stock id, amount Set the amount of stock for an item
POST /stock/flow id, amount Change the amount of stock for an item (+/-)
  • No authentication required.
  • The server runs on localhost:8080/.
  • The SQLite3 file is generated on the same directory as the server instance.

Client

A simple CLI that allows you to interact with the server.

Below are the functions available:

Command Description
item create Create a new item
item list List down all items
exit Exit the program
  • Inputs for prompts (such as in item create) are case-sensitive.
  • Numbers are accepted as inputs.
  • Input validation is only done on the server, hence you will only know if the inputs are valid once you filled everything.

Deployment

  1. Run go run main.go to start the server.
  2. Access the client on a separate terminal session by running go run client/client.go.

Notes

  • Language: go
  • Libraries used:
    1. sqlite3
    2. echo
  • Licensed under the MIT License.

To-do

  • full function parity between server and client
  • logging on the server side
  • formatted tables for the list
  • checkout/receipt system similar to my old project ReceiptGen

Developed by theluqmn. 100% human-written code.