From 00dcafb155974e105b1036f1098f75a147c759f8 Mon Sep 17 00:00:00 2001 From: Kevin Christen Date: Thu, 7 Nov 2024 21:23:38 +0100 Subject: [PATCH] add initial code --- Dockerfile | 33 ++++ README.md | 69 ++++++++ database.go | 358 +++++++++++++++++++++++++++++++++++++++ go.mod | 38 +++++ go.sum | 83 ++++++++++ main.go | 359 ++++++++++++++++++++++++++++++++++++++++ screenshots/additem.png | Bin 0 -> 23849 bytes screenshots/editbox.png | Bin 0 -> 33500 bytes screenshots/home.png | Bin 0 -> 39952 bytes screenshots/qr.png | Bin 0 -> 36098 bytes screenshots/search.png | Bin 0 -> 34476 bytes templates/boxes.tmpl | 252 ++++++++++++++++++++++++++++ templates/content.tmpl | 300 +++++++++++++++++++++++++++++++++ templates/footer.tmpl | 9 + templates/header.tmpl | 23 +++ 15 files changed, 1524 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 database.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 screenshots/additem.png create mode 100644 screenshots/editbox.png create mode 100644 screenshots/home.png create mode 100644 screenshots/qr.png create mode 100644 screenshots/search.png create mode 100644 templates/boxes.tmpl create mode 100644 templates/content.tmpl create mode 100644 templates/footer.tmpl create mode 100644 templates/header.tmpl diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..121c4f3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM golang:alpine as builder-base +LABEL builder=true multistage_tag="witb" +RUN apk add --no-cache upx ca-certificates tzdata gcc g++ + +FROM builder-base as builder-modules +LABEL builder=true multistage_tag="witb" +ARG TARGETARCH +WORKDIR /build +COPY go.mod . +COPY go.sum . +RUN go mod download +RUN go mod verify + +FROM builder-modules as builder +LABEL builder=true multistage_tag="witb" +ARG TARGETARCH +WORKDIR /build +ADD ./templates ./templates +COPY *.go . +RUN ls -l /build +RUN go env -w CGO_ENABLED=1 +#CGO_ENALBED=1 GOOS=linux GOARCH=${TARGETARCH} -ldflags '-s -w -extldflags="-static"' +RUN GOARCH=${TARGETARCH} go build -o witb +RUN upx --best --lzma witb + +FROM alpine:3.17 +WORKDIR /app + +COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +COPY --from=builder /build/templates /app/templates +COPY --from=builder /build/witb /app/ +CMD ["/app/witb"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1e97a32 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# What's in the Box (WITB) + +__What's in the Box__ is a simple storage organization solution aimed to help you identify stuff that you've stored in physical locations such as boxes or containers. + +It was made because I have not found any such solution myself to keep track of what items are stored where. + +## How does it work + +__What's in the Box__ is a web app written in Golang which communicates with a SQLite database to store boxes and the boxes' contents. You add boxes and contents to your liking. Each box also shows you a QR-Code which you can print out and attach to your boxes. Upon scanning the code, it will open the box in the browser and show you the contents. + +### What can it do + +Currently __What's in the Box__ supports the following operations: + +- Create a box with a name and a label +- Show you a QR-Code that when scanned opens the related box in the web app. +- Edit names and labels of boxes +- Delete boxes and all items associated to the box +- Search for boxes by name or label +- Add items to boxes (with quanitites) +- Edit items in boxes (Change name and quantities) +- Move items to another box +- Delete items from boxes + +### What it can't do (yet) + +As of yet, it does not have a fully fleshed-out REST API to support scipted/automated operations, although this is planned for future releases. Most of the tasks still need to be executed in the web interface. + +### Out-of-scope + +- There are no plans to add authentication to the app since it is designed to be run at home in your own network. If you want to expose it to the internet, make sure to add at least a authentication proxy in front of it or access it via a VPN. +- There is no plans for this app to handle TLS on its own. If you wanna secure the connection you must run this behind a reverse proxy where TLS will be terminated. + +### Planned + +- Full REST API to support all operations available in the web interface +- Add more attributes to items such as expiration dates for foods. +- Prometheus Metrics (Track Total Items, Total Boxes, other potential metrics) + +## Setup + +The app is designed to run inside a container although building and running it on your own is also possible. + +### Environment variables + +| Variable | Description | Default | +|---------- |--------------------------------------------------------------- |--------------- | +| PORT | Port for the web interface | 8088 | +| DB | Path to the database (will be generated if it does not exist) | /tmp/boxes.db | +| HTTP_SECURE_SCHEMA | Used to correctly set http schema [http / https] for the QR code generation | 0 | + + + +## Screenshots + +Home screen +![home](screenshots/home.png) + +Edit a box +![edit-box](screenshots/editbox.png) + +Add content to a box +![add-item](screenshots/additem.png) + +Search for boxes by name or label +![search-boxes](screenshots/search.png) + +Show qr code for box +![qr](screenshots/qr.png) \ No newline at end of file diff --git a/database.go b/database.go new file mode 100644 index 0000000..08ec825 --- /dev/null +++ b/database.go @@ -0,0 +1,358 @@ +package main + +import ( + "database/sql" + "encoding/json" + "fmt" + "log" + "time" +) + +type Database struct { + DBFilePath string +} + +// Define a custom nullable string type for JSON marshaling +type JSONNullString struct { + sql.NullString +} + +// MarshalJSON customizes JSON encoding for JSONNullString +func (ns JSONNullString) MarshalJSON() ([]byte, error) { + if ns.Valid { + return json.Marshal(ns.String) + } + return json.Marshal(nil) +} + +type Box struct { + ID int `json:"id"` + Name string `json:"name"` + Label JSONNullString `json:"label"` + CreatedAt time.Time `json:"created_at"` +} + +type BoxContent struct { + BoxID int + BoxName string + BoxLabel sql.NullString + ContentID sql.NullInt64 + Name sql.NullString + Quantity sql.NullInt64 + AddedAt sql.NullTime +} + +func (d *Database) Init() *sql.DB { + + db, err := sql.Open("sqlite3", d.DBFilePath) + if err != nil { + log.Fatal(err) + } + + createTable := ` + CREATE TABLE IF NOT EXISTS boxes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT, + label TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + CREATE TABLE IF NOT EXISTS contents ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + box_id INTEGER, + name TEXT, + quantity INTEGER, + added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (box_id) REFERENCES boxes(id) + );` + + if _, err := db.Exec(createTable); err != nil { + log.Fatalf("Could not create table: %v", err) + } + return db +} + +func (d *Database) GetBoxesTotal(db *sql.DB) (int, error) { + query := `SELECT COUNT(*) AS box_count FROM boxes;` + var boxCount int + + err := db.QueryRow(query).Scan(&boxCount) + if err != nil { + return 0, err + } + return boxCount, nil +} + +func (d *Database) GetBoxesPaginated(db *sql.DB, page int, pageSize int) ([]Box, error) { + offset := (page * pageSize) / pageSize + + query := `SELECT id, name, label, created_at FROM boxes ORDER BY created_at DESC LIMIT ? OFFSET ?` + + rows, err := db.Query(query, pageSize, offset) + if err != nil { + return nil, err + } + defer rows.Close() + + var boxes []Box + for rows.Next() { + var box Box + if err := rows.Scan(&box.ID, &box.Name, &box.Label, &box.CreatedAt); err != nil { + return nil, err + } + boxes = append(boxes, box) + } + + if err := rows.Err(); err != nil { + return nil, err + } + return boxes, nil +} + +func (d *Database) GetBoxesByTextV0(db *sql.DB, searchText string) ([]Box, error) { + query := ` + SELECT id, name, label, created_at + FROM boxes + WHERE name LIKE '%' || ? || '%' + OR label LIKE '%' || ? || '%';` + + rows, err := db.Query(query, searchText, searchText) + if err != nil { + return nil, err + } + defer rows.Close() + + var boxes []Box + for rows.Next() { + var box Box + if err := rows.Scan(&box.ID, &box.Name, &box.Label, &box.CreatedAt); err != nil { + return nil, err + } + boxes = append(boxes, box) + } + + if err := rows.Err(); err != nil { + return nil, err + } + return boxes, nil +} + +func (d *Database) GetBoxes(db *sql.DB) ([]Box, error) { + query := `SELECT id, label, name, created_at FROM boxes` + rows, err := db.Query(query) + if err != nil { + log.Fatal(err) + } + defer rows.Close() + + var boxes []Box + for rows.Next() { + var box Box + if err := rows.Scan(&box.ID, &box.Label, &box.Name, &box.CreatedAt); err != nil { + return nil, err + } + if !box.Label.Valid { + box.Label.String = "unlabeled" + } + boxes = append(boxes, box) + } + if err := rows.Err(); err != nil { + return nil, err + } + return boxes, nil +} + +func (d *Database) GetBoxContent(db *sql.DB, boxID int) ([]BoxContent, error) { + query := ` + SELECT + boxes.id AS box_id, + boxes.name AS box_name, + boxes.label AS box_label, + contents.id AS content_id, + contents.name AS content_name, + contents.quantity AS content_quantity, + contents.added_at AS content_added_at + FROM + boxes + LEFT JOIN + contents ON boxes.id = contents.box_id + WHERE + boxes.id = ? + ORDER BY contents.added_at DESC` + + rows, err := db.Query(query, boxID) + if err != nil { + log.Fatalln(err) + } + defer rows.Close() + + var boxContents []BoxContent + for rows.Next() { + var content BoxContent + if err := rows.Scan(&content.BoxID, &content.BoxName, &content.BoxLabel, &content.ContentID, &content.Name, &content.Quantity, &content.AddedAt); err != nil { + return nil, err + } + if !content.BoxLabel.Valid { + content.BoxLabel.String = "unlabeled" + } + boxContents = append(boxContents, content) + } + if err := rows.Err(); err != nil { + return nil, err + } + return boxContents, nil +} + +func (d *Database) UpdateBoxContent(db *sql.DB, contentID int, newName string, newQuantity int) error { + query := `UPDATE contents SET name = ?, quantity = ? WHERE id = ?` + result, err := db.Exec(query, newName, newQuantity, contentID) + if err != nil { + return err + } + rowsAffected, err := result.RowsAffected() + + if err != nil { + return err + } + if rowsAffected == 0 { + return fmt.Errorf("no content found with id %d", contentID) + } + return nil +} + +func (d *Database) CreateBox(db *sql.DB, name string, label string) error { + query := `INSERT INTO boxes (name, label) VALUES (?, ?)` + result, err := db.Exec(query, name, label) + if err != nil { + return err + } + boxId, err := result.LastInsertId() + if err != nil { + return err + } + log.Println(boxId) + return nil +} + +func (d *Database) DeleteBox(db *sql.DB, id int) error { + // Start a transaction + tx, err := db.Begin() + if err != nil { + return err + } + // Defer a rollback in case something fails. + defer func() { + if err != nil { + tx.Rollback() + } + }() + + // First, delete all contents associated with the box + deleteContentsQuery := `DELETE FROM contents WHERE box_id = ?` + _, err = tx.Exec(deleteContentsQuery, id) + if err != nil { + return fmt.Errorf("failed to delete contents: %w", err) + } + + // Then, delete the box itself + deleteBoxQuery := `DELETE FROM boxes WHERE id = ?` + _, err = tx.Exec(deleteBoxQuery, id) + if err != nil { + return fmt.Errorf("failed to delete box: %w", err) + } + + // Commit the transaction + err = tx.Commit() + if err != nil { + return fmt.Errorf("failed to commit transaction: %w", err) + } + return nil +} + +func (d *Database) UpdateBox(db *sql.DB, id int, newName string, newLabel string) error { + query := `UPDATE boxes SET name = ?, label = ? WHERE id = ?` + result, err := db.Exec(query, newName, newLabel, id) + if err != nil { + return err + } + rowsAffected, err := result.RowsAffected() + + if err != nil { + return err + } + if rowsAffected == 0 { + return fmt.Errorf("no box found with id %d", id) + } + return nil +} + +func (d *Database) CreateItem(db *sql.DB, boxId int, name string, quantity int) error { + query := `INSERT INTO contents (name, quantity, box_id) VALUES (?, ?, ?)` + result, err := db.Exec(query, name, quantity, boxId) + if err != nil { + return err + } + contentId, err := result.LastInsertId() + if err != nil { + return err + } + log.Println(contentId) + return nil +} + +func (d *Database) MoveItem(db *sql.DB, sourceBoxID, destBoxID, contentId int) error { + query := ` + UPDATE contents + SET box_id = ? + WHERE box_id = ? AND id = ?` + + // Start a transaction + tx, err := db.Begin() + if err != nil { + return err + } + // Defer a rollback in case something fails. + defer func() { + if err != nil { + tx.Rollback() + } + }() + + _, err = tx.Exec(query, destBoxID, sourceBoxID, contentId) + if err != nil { + return err + } + // Commit the transaction + err = tx.Commit() + if err != nil { + return fmt.Errorf("failed to commit transaction: %w", err) + } + return nil +} + +func (d *Database) DeleteItem(db *sql.DB, id int) error { + // Start a transaction + tx, err := db.Begin() + if err != nil { + return err + } + // Defer a rollback in case something fails. + defer func() { + if err != nil { + tx.Rollback() + } + }() + + // Delete item from box + deleteContentsQuery := `DELETE FROM contents WHERE id = ?` + _, err = tx.Exec(deleteContentsQuery, id) + if err != nil { + return fmt.Errorf("failed to delete contents from box: %w", err) + } + + // Commit the transaction + err = tx.Commit() + if err != nil { + return fmt.Errorf("failed to commit transaction: %w", err) + } + return nil +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..04e9f16 --- /dev/null +++ b/go.mod @@ -0,0 +1,38 @@ +module witb + +go 1.23.2 + +require ( + github.com/gin-gonic/gin v1.10.0 + github.com/mattn/go-sqlite3 v1.14.24 + github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e +) + +require ( + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + golang.org/x/arch v0.8.0 // indirect + golang.org/x/crypto v0.23.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..1f34e39 --- /dev/null +++ b/go.sum @@ -0,0 +1,83 @@ +github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= +github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= +github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM= +github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= +golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/main.go b/main.go new file mode 100644 index 0000000..e06b6b5 --- /dev/null +++ b/main.go @@ -0,0 +1,359 @@ +package main + +import ( + "database/sql" + "encoding/base64" + "fmt" + "html/template" + "log" + "math" + "net/http" + "os" + "strconv" + + "time" + + "github.com/gin-gonic/gin" + _ "github.com/mattn/go-sqlite3" + "github.com/skip2/go-qrcode" +) + +var ( + version = "v0.5" + database Database + client *sql.DB + secure bool +) + +// Initialize Database and return sql connection to client +func init() { + database = Database{ + DBFilePath: getEnv("DB", "/tmp/boxes.db"), + } + client = database.Init() + var err error + secure, err = strconv.ParseBool(getEnv("HTTP_SECURE_SCHEMA", "0")) + if err != nil { + secure = false + } +} + +// Template function to pretty print time data types as string +func formatAsDate(t time.Time) string { + year, month, day := t.Date() + return fmt.Sprintf("%d/%02d/%02d", year, month, day) +} + +// Handle setting of variables of env var is not set +func getEnv(key, defaultValue string) string { + value := os.Getenv(key) + if len(value) == 0 { + return defaultValue + } + return value +} + +// Get all boxes and return html page +func getBox(c *gin.Context) { + + pageStr := c.DefaultQuery("page", "1") + page, err := strconv.Atoi(pageStr) + if err != nil || page < 1 { + page = 1 + } + // Define items per page + const itemsPerPage = 5 + offset := (page - 1) * itemsPerPage + totalItems, err := database.GetBoxesTotal(client) + boxes, err := database.GetBoxesPaginated(client, offset, itemsPerPage) + totalPages := int(math.Ceil(float64(totalItems) / float64(itemsPerPage))) + + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not get boxes"}) + return + } + c.HTML(http.StatusOK, "boxes.tmpl", gin.H{ + "boxes": boxes, + "version": version, + "CurrentPage": page, + "TotalPages": totalPages, + }) +} + +// Get all box contents for a certain box and return html page +func getBoxContent(c *gin.Context) { + idParam := c.Params.ByName("id") + id, err := strconv.Atoi(idParam) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid ID for getting box content"}) + return + } + contents, err := database.GetBoxContent(client, id) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not get box contents"}) + return + } + + // User opened an invalid box. + if len(contents) == 0 { + c.JSON(http.StatusNotFound, gin.H{"fail": "box does not exist"}) + return + } + + var png []byte + currentURL := c.Request.Host + c.Request.RequestURI + schema := "http://" + if secure { + schema = "https://" + } + log.Println(schema) + log.Println(currentURL) + fullURL := schema + currentURL // Or "https://" if using HTTPS + png, err = qrcode.Encode(fullURL, qrcode.Medium, 156) // 256x256 image + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to generate QR code"}) + return + } + qrCodeBase64 := "data:image/png;base64," + base64.StdEncoding.EncodeToString(png) + qrCodeSafeURL := template.HTML(`QR Code`) + c.HTML(http.StatusOK, "content.tmpl", gin.H{ + "QRCode": qrCodeSafeURL, + "contents": contents, + }) +} + +func updateBoxContent(c *gin.Context) { + boxidParam := c.Params.ByName("boxid") + boxid, err := strconv.Atoi(boxidParam) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Box ID"}) + return + } + + idParam := c.Params.ByName("id") + id, err := strconv.Atoi(idParam) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid ID for box content"}) + return + } + c.Request.ParseForm() + name := c.PostForm("item_name") + quantityString := c.PostForm("item_amount") + + quantity, err := strconv.Atoi(quantityString) + if err != nil { + log.Println(err) + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Quantity"}) + return + } + + err = database.UpdateBoxContent(client, id, name, quantity) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not get boxes contents"}) + return + } + c.Redirect(http.StatusFound, fmt.Sprintf("/box/%d", boxid)) +} + +func createBox(c *gin.Context) { + c.Request.ParseForm() + name := c.PostForm("item_name") + label := c.PostForm("item_label") + err := database.CreateBox(client, name, label) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not create new box"}) + return + } + query, exists := c.GetQuery("page") + if !exists { + c.Redirect(http.StatusFound, fmt.Sprintf("/")) + } else { + c.Redirect(http.StatusFound, fmt.Sprintf("/?page=%s", query)) + } + +} + +func deleteBox(c *gin.Context) { + type DeleteRequest struct { + ID string `json:"id" binding:"required"` + } + var req DeleteRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + boxid, err := strconv.Atoi(req.ID) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Box ID"}) + return + } + err = database.DeleteBox(client, boxid) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not delete box"}) + return + } + c.JSON(http.StatusOK, gin.H{ + "message": "box deleted", + "id": req.ID, + }) +} + +func updateBox(c *gin.Context) { + idParam := c.Params.ByName("boxid") + id, err := strconv.Atoi(idParam) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid ID for box"}) + return + } + c.Request.ParseForm() + name := c.PostForm("item_name") + label := c.PostForm("item_label") + + err = database.UpdateBox(client, id, name, label) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not edit box"}) + return + } + c.Redirect(http.StatusFound, "/") +} + +func createItem(c *gin.Context) { + boxidParam := c.Params.ByName("boxid") + boxid, err := strconv.Atoi(boxidParam) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Box ID for new item"}) + return + } + c.Request.ParseForm() + name := c.PostForm("item_name") + quantityString := c.PostForm("item_amount") + quantity, err := strconv.Atoi(quantityString) + if err != nil { + log.Println(err) + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Quantity for item"}) + return + } + err = database.CreateItem(client, boxid, name, quantity) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not create new item in box"}) + return + } + c.Redirect(http.StatusFound, fmt.Sprintf("/box/%d", boxid)) +} + +func deleteItem(c *gin.Context) { + type DeleteRequest struct { + ID string `json:"id" binding:"required"` + } + var req DeleteRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + itemId, err := strconv.Atoi(req.ID) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid Item ID"}) + return + } + err = database.DeleteItem(client, itemId) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not delete item"}) + return + } + c.JSON(http.StatusOK, gin.H{ + "message": "item deleted", + "id": req.ID, + }) +} + +func apiGetBox(c *gin.Context) { + query := c.DefaultQuery("search", "") + boxes, err := database.GetBoxesByTextV0(client, query) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{ + "message": "could not query boxes. Internal Server Error.", + }) + return + } + if len(boxes) == 0 { + boxes = make([]Box, 0) + } + c.JSON(http.StatusOK, gin.H{ + "message": "success", + "count": len(boxes), + "result": boxes, + }) + +} + +func moveItem(c *gin.Context) { + type MoveRequest struct { + TargetBox int `json:"targetBox" binding:"required"` + SourceBox int `json:"sourceBox" binding:"required"` + SourceItem int `json:"sourceItem" binding:"required"` + } + var req MoveRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + err := database.MoveItem(client, req.SourceBox, req.TargetBox, req.SourceItem) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, gin.H{"fail": "could not move item"}) + return + } + c.JSON(http.StatusOK, gin.H{ + "message": "item moved", + "id": req.SourceItem, + "oldBoxId": req.SourceBox, + "newBoxId": req.TargetBox, + }) +} + +func main() { + + router := gin.Default() + // Register helper functions for pagination + router.SetFuncMap(template.FuncMap{ + "formatAsDate": formatAsDate, + "add": func(a, b int) int { return a + b }, + "sub": func(a, b int) int { return a - b }, + "seq": func(start int, end int) []int { + s := make([]int, end-start+1) + for i := range s { + s[i] = start + i + } + return s + }, + }) + + router.LoadHTMLGlob("templates/*") + router.GET("/", getBox) + + // Group all Box endpoints together + box := router.Group("/box") + box.DELETE("/delete", deleteBox) + box.POST("/create", createBox) + box.POST("/:boxid/edit/:id", updateBoxContent) + box.POST("/:boxid/edit", updateBox) + box.POST("/:boxid/create", createItem) + box.GET("/:id", getBoxContent) + + router.DELETE("/item", deleteItem) + + apiV0 := router.Group("/api/v0") + apiV0.GET("/box", apiGetBox) + apiV0.PATCH("/item/move", moveItem) + + router.Run(fmt.Sprintf("0.0.0.0:%s", getEnv("PORT", "8088"))) +} diff --git a/screenshots/additem.png b/screenshots/additem.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3eff489dc5e50706780fa977cd69b4e3ab8dc8 GIT binary patch literal 23849 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 B=B@w$ literal 0 HcmV?d00001 diff --git a/screenshots/home.png b/screenshots/home.png new file mode 100644 index 0000000000000000000000000000000000000000..431b9912e91ef74056b660e3bbf95f487a841fd2 GIT binary patch literal 39952 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

Yl@4WDB9Q?g> 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 z

!LU9aK%Eq0V9;aM3hO83vDzg0gJ@QXN&f?wXT@NfBB1o~spsK6q{vzYqv>0MT* zXkf!-U`6t{?$OlK%Z2zY2?go>t)>0X3GBep|Gy#D{=Z8T_Uv4J*32fcsvhzl4G~06 zIuU0^?U>~&pg*r)+=y;rjHD03r$icumjj3=;D9!6eCF!cq<>MYA(cv&=MG!s_RInALBZlq{e0_}G@F9URvK@jDTKjkkhC4%`PXM1_~qJ=~Db%3`8(mI7*2f=23{gm`gQ`EQw z!p|rGGxCly14xtp4`=#cWXD`GG$6O}B`2HR_VPON{3n+2U!D4|!+%@;zs&8wVQ&AjnSa^Lf98Sywa)zSeDi;EX3jvI XDw8aXJND`qF^!VEx*S^O^@slfwiuI- literal 0 HcmV?d00001 diff --git a/templates/boxes.tmpl b/templates/boxes.tmpl new file mode 100644 index 0000000..1b11355 --- /dev/null +++ b/templates/boxes.tmpl @@ -0,0 +1,252 @@ +{{template "header".}} +

+

What's in the Box

+

Keep track of your storage box contents

+ {{ .version }} +
+
+
+ + + + + + + +{{template "footer"}} diff --git a/templates/content.tmpl b/templates/content.tmpl new file mode 100644 index 0000000..e5acec9 --- /dev/null +++ b/templates/content.tmpl @@ -0,0 +1,300 @@ +{{template "header" . }} + +
+

{{ (index .contents 0).BoxName }}

+

+ {{ (index .contents 0).BoxLabel.String }} +

+ + +
+ {{ .QRCode }} +
+
+ Note: When scanned, this QR-Code will open this page. Print it out and attach it to your box. +
+
+
+
+
+
+
+
  • +

    Contents

    + +
  • +
    +
    +
      + {{range $content := .contents}} + {{ if $content.ContentID.Valid }} +
    • +
      +
      {{ $content.Name.Value }}
      + Amount: {{ $content.Quantity.Value }} +
      + +

       

      + +

       

      + +
    • + {{ else }} + +

      It's empty here...

      + {{end}} + {{end}} +
    +
    + + + + + + +{{template "footer"}} diff --git a/templates/footer.tmpl b/templates/footer.tmpl new file mode 100644 index 0000000..5984fec --- /dev/null +++ b/templates/footer.tmpl @@ -0,0 +1,9 @@ +{{define "footer"}} + + + + +{{end}} diff --git a/templates/header.tmpl b/templates/header.tmpl new file mode 100644 index 0000000..8f8afab --- /dev/null +++ b/templates/header.tmpl @@ -0,0 +1,23 @@ +{{define "header" }} + + + + + + + + + + + + +{{end}} \ No newline at end of file

    96AShUS_BGqf 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