diff --git a/README.md b/README.md index acaefd8..d03c7f5 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,20 @@ # Cake Order Tracker -A lightweight, robust order management system built with Go and SQLite. This project focuses on a clean monolithic architecture, transactional data integrity, and a high-performance, single-binary deployment model. +A lightweight, robust order management system. ## Key Features -* **Order Lifecycle Management:** Full CRUD operations for products and customer orders with SQL transactions to ensure data consistency. -* **Live Asynchronous Search:** Real-time order filtering by date range utilizing **HTMX** for partial DOM updates and reduced server payload. -* **Custom Authentication:** Secure session-based authentication featuring salted password hashing and middleware-based route protection. -* **Embedded Assets:** Single-binary deployment utilizing Go `embed` for HTML templates, static assets (HTMX, FontAwesome), and SQL migrations. -* **Interactive Client-Side Logic:** Dynamic order composition with real-time total price calculation using vanilla JavaScript and HTML5 templates. +* **Order Lifecycle Management:** Full CRUD operations for products and customer orders. +* **Search:** Order filtering by date range, and keyword search. +* **Easy Deployment:** Single-binary deployment utilizing Go, along with a single database file. +* **Interactive Client-Side Logic:** Dynamic order composition with real-time total price calculation. ## Tech Stack -* **Backend:** Go (Golang) +* **Backend:** Go * **Database:** SQLite -* **Frontend:** HTMX, Go HTML Templates, CSS, JavaScript -* **Tooling:** Versioned SQL Migrations, Go Toolchain +* **Frontend:** HTMX, Templ, CSS, JavaScript +* **Tooling:** Versioned SQL Migrations, Go Toolchain, Templ ## Architectural Highlights @@ -27,21 +26,35 @@ The system implements a versioned migration system. The schema handles relations * **/models**: Pure data structures for cross-package communication. * **/store**: Encapsulated data persistence layer containing all SQL logic and migrations. -* **/server**: HTTP routing, handler logic, and multi-entry template rendering. -* **/auth**: Dedicated security layer providing middleware for session validation. +* **/server**: HTTP routing, handler logic, and template rendering. ## Installation and Running -1. **Run the application:** +### **Run the application:** ```bash -go run main.go +git clone git.bronku.xyz/bronku/cake-order-tracker +cd cake-order-tracker +go generate && go run . ``` -## todo: -- [ ] search orders by id, customer name, phone -- [ ] one click satus change -- [ ] overview for cakes to do for a certain time period -- [ ] today, this week, this month quick select buttons (should change the selected dates in calendar) -- [ ] better price handling (decinal places and such) -- [ ] cake tags -- [ ] special cake orders \ No newline at end of file +### Deployment +1. Build the application +``` bash +git clone git.bronku.xyz/bronku/cake-order-tracker +cd cake-order-tracker +go generate && go build . +``` + +2. Install the binary +```bash +# shouldn't be necessary if the binary was built on the same machine +sudo chmod +x cake-order-tracker + +# move to a diractory you have in $PATH +sudo mv cake-order-tracker /usr/local/bin +``` + +3. Setup a systemd service (if yyou don't use systemd, then you probably don't need any instructions) +``` +# it is recommended to create a dedicated user +sudo useradd