About This Project
Zenly used to run on three separate applications: one for the shop, one for finance, and one for HR. Each had its own login and its own data, so staff moved between tools all day and the numbers rarely matched at the end of the month. ZenlyBright brings all of it into one place — selling and stock across outlets, attendance and payroll, purchase orders and expenses, all behind a single login. The shop side has already moved over and is running on the new system, with the rest following. I own the project end to end.
Tech Stack
- Golang
- Echo
- GORM
- PostgreSQL
- React 19
- Mantine v9
- TanStack Query
- Zustand
- Vite
- Docker
Key Features
- Monorepo consolidating three previously separate applications
- Clean architecture per domain module, each independently wired
- POS: cashier, per-outlet stock, transactional checkout, preorder, retur, delivery
- HRD: attendance with face recognition, kasbon, payroll, and reporting
- Finance: purchase orders, expenses, configurable report types
- JWT in an httpOnly cookie instead of localStorage, hardening against XSS
- Excel and PDF generation server-side with excelize and fpdf
- One-command Docker Compose bring-up for the whole stack