Fadhil Official Logo
Fadhil NuruzzamanSoftware Engineer
Fadhil Official Logo
Point of SalePersonal2024

EzCheckout: Point of Sale Web Application

EzCheckout is a case study for a point-of-sale web application, built around role-based access for admins and cashiers, with product management, cart-based transactions, and sales reporting in a single system.

Preview

Walk Through the Site

A scrollable look at the finished site, exactly as a visitor would browse it.

Desktop screenshot coming soon

Desktop

Mobile screenshot coming soon

Mobile

Tech Stack

Technologies Powering the Build

The tools and technologies that came together to bring this project to life.

HTML logo
CSS logo
JavaScript logo
ReactJs logo
Chakra UI logo
NodeJs logo
ExpressJs logo
MySQL logo
VSCode logo
HTTPie logo

Roles

A Skill-by-Skill Breakdown

Each project draws on a mix of disciplines, here's how they came together on this one.

Web Development

  • Designed the database schema for products, transactions, and roles.
  • Implemented JWT-based authentication and configurable role-based access control.
  • Built the REST API with Express and MySQL.
  • Managed application state with Redux for cart and transaction data.
  • Developed the cashier interface with React and Chakra UI.
  • Built core pages: home, product management, transaction history, and sales reports.

Web Design

  • Designed the UI/UX system from scratch, including font sizing and visual hierarchy.
  • Designed a fast, distraction-free checkout interface for cashiers.
  • Prioritized speed over decoration in the product search and cart UI.
  • Designed clear visual states for the multi-role login screens.
  • Designed simple, scannable layouts for transaction history and reports.

Graphic Design

  • Designed the logo and brand identity from scratch.
  • Selected the color palette and typography system.
  • Created basic UI icons for cart and transaction actions.
  • Created the site's favicon.
  • Compressed every image to WebP and under 200KB before upload, without a visible drop in quality.

Digital Marketing

  • Wrote clear, concise UI copy for buttons, labels, and status messages throughout the app.

Highlights

Behind the Scenes

A closer look at what the finished product offers, the obstacles along the way, and what came out of it.

Key Features

  • Fully responsive design across desktop and mobile devices.
  • Optimized images for fast loading.
  • JWT-based authentication.
  • Role-based access for admin and cashier accounts, with configurable permissions.
  • Admin dashboard for adding, removing, and managing cashier accounts, roles, and task permissions.
  • Product search and category filtering.
  • Add-to-cart with automatic transaction calculation.
  • Admin panel for adding new products to the catalog.
  • Transaction history and sales reports.

Challenges Faced

Configuring Role-Based Access

Admins needed the ability to define what cashiers could and couldn't access, so a configurable role and permission system was built instead of hardcoding two fixed roles.

Managing Cart State Across the App

Cart and transaction data needed to stay in sync across multiple components, so Redux was used to manage state predictably.

Keeping the Checkout Flow Fast

Cashier transactions needed to stay responsive even with a large product list, so instant product search and backend query optimization were applied.

Lessons Learned

  • Learned how much backend query design affects perceived speed in a high-frequency transaction flow.
  • Practiced designing role-based access control from scratch instead of relying on a framework default.
  • Learned how centralizing cart and transaction state in Redux simplified keeping the UI in sync across pages.

Impacts

Problems Solved After Launch

How this project changed things for the business and its users after launch.

Images under 200KB

Custom RBAC system

End-to-end full-stack project

Performance

Slow-Loading Pages From Unoptimized Images

Before

High-resolution images across the site, not just one section, risked slowing down every page.

After

Every image across the site is compressed to WebP and kept under 200KB, keeping pages fast without a visible drop in quality.

Improvement

A Concrete Demonstration of Role-Based Access Control

Before

There was no personal project demonstrating a configurable permission system, not just a basic login screen.

After

Admin-configurable roles and JWT-based authentication became a concrete demonstration of access-control design skills.

Improvement

End-to-End Retail Transaction Flow Simulation

Before

There was no personal case study covering a complete POS flow from product entry to transaction reporting.

After

EzCheckout became a portfolio reference demonstrating the ability to build a full-stack transaction system from scratch.