README.md
This commit is contained in:
parent
d250f6dd2c
commit
b3b572d24a
1 changed files with 37 additions and 2 deletions
39
README.md
39
README.md
|
|
@ -1,3 +1,38 @@
|
||||||
# order tracking app for a pastry shop
|
# Cake Order Tracker
|
||||||
|
|
||||||
I don't remember what cake-order-tracker stood for
|
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:**
|
||||||
|
```bash
|
||||||
|
go run main.go
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue