Divyansh GuptaDivyansh Gupta
All work
E-commerce · Mobile · Backend

Paintcart

A full-stack e-commerce platform for paint and hardware retail.

NestJSPrismaPostgreSQLReact NativeVite
Paintcart interface

Overview

Paintcart is a paint and hardware storefront built across three apps: a NestJS/Prisma backend with a catalogue, cart, and order model; a React Native mobile shopping app; and a Vite-based web app. The backend seeds and serves a structured catalogue across brands and categories, with JWT auth and an admin passcode flow for store management.

The challenge

A hardware and paint catalogue has real structure — brands, categories, variants, pricing — that needs to stay consistent across a mobile app and a web app talking to the same backend, while keeping local development simple enough to seed and run without a lot of setup ceremony.

What I built

  • NestJS/Prisma backend with a seeded catalogue (13 brands, 10 categories, 216 products)
  • JWT-based auth with an admin passcode flow for store management
  • React Native shopping app for browsing, cart, and checkout
  • Vite-based web app sharing the same backend and catalogue
  • Database migrations and seed scripts for reproducible local setup

Screenshots

Paintcart screenshot 1
Paintcart screenshot 2
Paintcart screenshot 3
Paintcart screenshot 4
Paintcart screenshot 5

Architecture

React Native App
Vite Web App
NestJS API
Prisma
PostgreSQL

Engineering highlights

Shared catalogue model

Mobile and web clients read from the same Prisma-backed catalogue, so brand, category, and product data never drifts between platforms.

Reproducible local setup

A seed script populates a realistic catalogue (13 brands, 10 categories, 216 products) so the app is usable locally without hand-entering data.

Results

13

Brands seeded

10

Categories

216

Products seeded