No description
Find a file
bronkuu 5a5372b831 templates, handlers, CSS, JS: special cakes UI, HTMX nav, dashboard overhaul
Special cakes UI: overlay drawer, basket integration, catalogue tag
filter, form parsing, JS save/edit/remove.
HTMX navigation: MainContent component, nav links with hx-get,
handlers return partial on HX-Request.
Dashboard: metrics grid, CakeBreakdown, OrderRow with status select,
CakeCounts/OrderCounts, torty filter, tort badge, results-pane.
Collapsible sidebar: toggle button, localStorage, CSS transitions.
Location field: dropdown replaced with pill toggle.
Inline style cleanup: moved to CSS classes (tag-grid, grow, icon.sm,
header-actions, toggle-group, success-icon, etc.).
Dead CSS removal: pagination, status-chip, badge-pill, login-page.
Helpers: exported CakeTitle/OrderTitle, added tagNames, tagIDsComma,
orderItemsDesc, specialCakeDetail, removed unused helpers.
2026-06-15 18:50:21 +02:00
.zed added zed action 2026-06-14 21:26:44 +02:00
config small improvements 2026-06-11 09:10:27 +02:00
logging switched to log.Print 2025-06-23 12:13:22 +02:00
models tags and special cakes: models, migrations, store layer 2026-06-15 18:49:21 +02:00
server templates, handlers, CSS, JS: special cakes UI, HTMX nav, dashboard overhaul 2026-06-15 18:50:21 +02:00
store status workflow and seed with special cakes 2026-06-15 18:49:49 +02:00
.gitignore move to templ 2026-06-11 08:48:01 +02:00
go.mod move to templ 2026-06-11 08:48:01 +02:00
go.sum move to templ 2026-06-11 08:48:01 +02:00
main.go dev env with a seed 2026-06-11 09:23:26 +02:00
README.md Update README.md 2026-06-11 09:24:35 +02:00
seed.go status workflow and seed with special cakes 2026-06-15 18:49:49 +02:00

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.

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.

Tech Stack

  • Backend: Go (Golang)
  • Database: SQLite
  • Frontend: HTMX, Go HTML Templates, CSS, JavaScript
  • Tooling: Versioned SQL Migrations, Go Toolchain

Architectural Highlights

1. Database Persistence

The system implements a versioned migration system. The schema handles relationships between orders and products via join tables, ensuring integrity through the database/sql package's transaction support.

2. Separation of Concerns

  • /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.

Installation and Running

  1. Run the application:
go run main.go

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