← Back to portfolioENGINEERING CASE STUDY / PERSONAL PROJECT

Thisara POS.
One workflow. Many moving parts.

A full-stack point-of-sale application connecting checkout, inventory, orders, staff permissions and branch-specific access.

MY ROLEFull-stack developer
PROJECT2024 — present
DEPLOYMENTAWS Lightsail · Docker · Nginx
THE CHALLENGE

A sale is more than a checkout.

An order affects stock, receipts and reporting. A pending order needs its own lifecycle. A staff member should work within the right branch and permissions.

This project brings those concerns together in an Angular interface backed by ASP.NET Core. V1 established the core POS workflow; V2 adds branch-aware operations and a broader order lifecycle.

C#AngularASP.NET CoreEF CoreMySQL (V2)Docker
INSIDE THE WORKFLOW

Rules that connect the application.

01

Checkout & inventory

The checkout handles cart items, quantities, sale prices and payment-method recording, with cash-change calculation. Stock deduction and insufficient-stock checks connect the sale to inventory.

02

Pending orders & reserved stock

Orders can be saved, completed or voided. Automatic pending-order expiry releases reserved stock, giving incomplete orders a defined lifecycle.

03

Permissions & branch boundaries

Staff authentication and role-based permissions govern access. Branch selection and branch-specific data access scope operations to the selected branch. Inactive-branch access blocking is implemented.

04

History, reporting & receipts

Order history includes filtering, sorting, pagination and details. Daily, weekly and monthly reports sit alongside revenue, today’s orders and low-stock alerts. Receipts support 58 mm, 80 mm and A4 layouts.

DELIVERY & EVOLUTION

From V1 to branch-aware V2.

V1 used ASP.NET Core, Angular and SQL Server, with JWT authentication and role-based authorization. The CV documents xUnit and Jasmine/Karma tests and a GitHub Actions deployment pipeline for that version.

The inspected V2 production configuration uses a MySQL 8.4 database, separate API and frontend containers, and loopback-bound application ports. The application is hosted at pos.thisara.dev ↗.

LET’S CONNECT

Have a role in mind?

I’d love to hear about your team and what you’re building.