No description
Add Tag, SpecialCake, Cake.Tags, Order.SpecialCakes types. Add migrations for tag, cake_tag, special_cake, special_cake_tag tables. Add store methods: GetTags, GetCakeTags, SaveCakeTags, CreateTag, GetSpecialCakes, GetSpecialCakeTags, SaveSpecialCakes, saveSpecialCakeTags. Load tags in GetCake/GetCakes, cascade tag saves in SaveCake. Remove debug log calls from ParsePrice. |
||
|---|---|---|
| .zed | ||
| config | ||
| logging | ||
| models | ||
| server | ||
| store | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| README.md | ||
| seed.go | ||
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
embedfor 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
- 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