Dynamic Product Catalog
Display products from PostgreSQL with pricing, descriptions, inventory availability, categories, featured status, and product images stored through Supabase Storage.
A full-stack e-commerce platform combining a customer storefront with a role-protected administration system for products, categories, inventory, customers, orders, and live sales analytics.

Case Study Overview
Many e-commerce portfolio projects stop at product listings and a shopping interface. Nivaroa was designed as a complete commerce system with both customer-facing and administrative workflows.
The project needed to handle authentication, role-based access, relational product data, inventory, customer accounts, order activity, product media, and business analytics while keeping the storefront and administration concerns clearly separated.
The goal was to build the project using patterns that reflect real production applications rather than relying on static data or a frontend-only implementation.
Case Study Overview
Nivaroa combines a responsive customer storefront with a dedicated admin portal backed by Supabase and PostgreSQL.
Customers can browse products, explore collections, search and filter the catalog, authenticate, and interact with store content.
Administrators have a separate interface for managing products, categories, inventory, customers, orders, fulfillment states, and sales information.
Live database records feed the administration dashboard so metrics such as revenue, order volume, inventory, customer activity, and sales trends are calculated from actual application data rather than hardcoded values.
Display products from PostgreSQL with pricing, descriptions, inventory availability, categories, featured status, and product images stored through Supabase Storage.
Organize the catalog using relational categories with unique slugs and support for parent-child category relationships.
Add, edit, delete, publish, feature, categorize, and manage inventory for products through a dedicated administration interface.
Authenticate users with Supabase Auth and separate application roles through a profiles model so customers and administrators can have different permissions.
View registered accounts, distinguish administrators from customers, inspect order activity, total spending, joined dates, and recent order information.
Track store orders through operational states including pending review, processing, shipped, and delivered.
Calculate revenue, monthly and yearly sales, order totals, average order value, inventory data, and sales trends from live Supabase records.
Store product media separately from relational product records and generate product image URLs for use throughout the storefront and admin portal.
Provide a modern storefront with featured products, hero promotions, catalog search, filtering, sorting, collection browsing, and stock availability.
Detailed views of production user journeys, UI components, and system architecture.




Technical Architecture
Nivaroa uses Next.js 16 and TypeScript for the application layer, with Supabase providing authentication, PostgreSQL, and object storage.
Authentication data is managed by Supabase Auth while application-specific information such as names and roles is stored separately in the public profiles table.
Products reference categories through PostgreSQL foreign keys, while customers, orders, and order items form the transactional side of the application.
Server-side Supabase clients and authorization checks are used for protected administrative workflows, while Row Level Security provides database-level access control.
Case Study Overview
Development started with the application data model rather than the storefront UI alone.
Supabase migrations were used to create and evolve PostgreSQL tables, relationships, foreign keys, and constraints. Categories were created before products so product records could safely reference category IDs.
Authentication was then separated from authorization by allowing Supabase Auth to identify users while the profiles table stores application roles.
Once the data layer and authentication flow were stable, the admin interface was built around real CRUD operations and live metrics. The customer storefront was then connected to the same product and category data so both sides of the application share a single source of truth.
Case Study Overview
The project combines modern Next.js application architecture with relational PostgreSQL design and Supabase infrastructure.
Key engineering decisions included separating authentication from authorization, using foreign-key relationships instead of duplicating data, managing schema changes through migrations, storing product media outside the database, and deriving administration metrics from live records.
Forms use React Hook Form and Zod for typed validation, while the dashboard uses shadcn/ui and Recharts for data visualization.
FAQ
I build full-stack applications with secure authentication, relational databases, admin dashboards, payment-ready workflows, and scalable backend architecture.

An AI-assisted video accessibility and remediation platform that transforms source video into transcripts, captions, audio descriptions, synthesized voice tracks, and remediated video through an automated processing workflow.

A comprehensive online Quran education platform designed to connect students worldwide with Quran, Arabic, and Islamic courses through structured course discovery, tutor information, educational resources, and online enrollment.

A full-stack online education platform for CanadianGrad Academy, combining course discovery, enrollment journeys, educational content, academic planning tools, and a custom administration system.