Back to Portfolio

POS Application

A single, unified Point of Sale platform for NobleLife International that replaced four separate legacy PHP applications, bringing ordering, administration, reporting, and inventory into one secure, easy-to-use system.

Role
Full-Stack Developer
Client
NobleLife International (Internal)
Timeline
April 2025 – July 2025
Tech Stack
ASP.NET Core 8 Razor Pages MySQL EF Core

Overview

NLI-POS is the web-based system NobleLife International uses to run day-to-day sales operations across its offices. It handles the full order lifecycle, from customer records and order entry to payment, inventory, and reporting, in one application with role-based access for sales staff, managers, and administrators.

The Problem

NobleLife's previous system was built on legacy PHP 5 and had grown into four separate applications: one to take and record orders and customers, one for admin and maintenance, one for reports, and one for inventory.

Staff had to switch between apps to complete everyday work, each with its own login and interface. The aging PHP 5 platform was also hard to maintain and no longer supported, which made adding features and keeping the system secure increasingly difficult.

The Solution

I consolidated the four legacy apps into one ASP.NET Core application built with Razor Pages and MySQL. Ordering, customer records, administration, inventory, and reporting now share a single login, a single database, and a consistent interface, with role-based access controlling what each user can see and do. The rebuild also brought stronger security practices and a cleaner, more user-friendly experience for daily use.

Before

4 separate PHP 5 apps: POS, Admin, Reports, Inventory

After

1 unified ASP.NET Core app with shared login, data, and role-based access

Order Management

Streamlined checkout process with real-time order processing and receipt generation.

Inventory Tracking

Automated stock level updates and low-inventory alerts across all product categories.

Multi-location Support

Centralized management for multiple branches with localized data isolation and global reporting.

Customer Profiles

Integrated CRM features to track purchase history, loyalty points, and preferences.

Role-Based Access Control

Granular permissions for cashiers, managers, and administrators to ensure data security.

Operational Reporting

Comprehensive dashboards for daily sales, inventory turnover, and staff performance.

Screenshot Gallery

Architecture & Technical Highlights

Browser
ASP.NET Core 8 / Razor Pages
Services Layer
MySQL Database

Challenges & Solutions

Problem

Four independent apps with their own data and logic had to become one system without disrupting daily operations.

Approach

Mapped the responsibilities of each legacy app, designed one shared data model, and rebuilt each area as a module within the new application.

Result

One consistent system that staff use for ordering, administration, inventory, and reporting.

Problem

Reports lived in a separate app, so sales and inventory figures had to be pulled from different places.

Approach

Built a specialized reporting service using EPPlus and ClosedXML to generate pivot-style reports and Excel exports with time zone normalization for international offices.

Result

Reporting is now part of the same application, using the same data as ordering and inventory.

Results & Impact

PHP 5 → .NET 8
Platform upgraded to a supported, modern stack
4 → 1
Separate apps consolidated into one
1 login
Single sign-in for every module

This application is an internal tool for NobleLife International. The live system, production data, and source code are not public. Screenshots shown here use sample or redacted data to protect business confidentiality.

Back to Portfolio

Want something similar built for your business?

Let's build something great together