No description
Find a file
2026-06-15 14:56:08 +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 trying to fix price 2026-06-15 13:45:28 +02:00
server moved the date picker to header 2026-06-15 14:56:08 +02:00
store dev env with a seed 2026-06-11 09:23:26 +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 trying to fix price 2026-06-15 13:45:28 +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