FULL-STACK E-COMMERCE

SHOPERA

Shop More. Live Better.

A full-stack marketplace built for browsing products across categories, comparing options, and moving from product discovery into a connected shopping flow.

  • React
  • Node.js
  • Express
  • MySQL
  • REST APIs
SHOPERA marketplace homepage displayed in a desktop browser
01 / STOREFRONTLive application · Vercel
ROLE
Full-stack development
DELIVERABLE
Responsive commerce marketplace
STACK
React · Node.js · MySQL

Project overview

A considered journey from discovery to cart

SHOPERA is a multi-category online marketplace built around a complete product-browsing and shopping experience.

Who it serves

Shoppers exploring products across departments, comparing options, and managing a shopping cart.

What it brings together

The project brings category discovery, product details, and core shopping actions together in one responsive storefront.

Core features

The commerce flows behind the interface

  • 01

    Product discovery: the public API supports search, category, brand, price and stock filters, sorting, and pagination; the storefront also presents product details and related items.

  • 02

    Shopping cart: guest cart items persist in local storage, while signed-in cart actions use API endpoints and can synchronize guest items after sign-in.

  • 03

    Customer tools: the app includes wishlist, product comparison, registration, login, and protected profile and order routes.

  • 04

    Order flow: checkout and order routes are implemented in the app; payment processing and completed live purchases are not claimed here.

Technical architecture

A layered application with clear boundaries

Request response

  1. 01

    Storefront

    React 18 · React Router · Bootstrap

    Pages and responsive UI

  2. 02

    Client state

    Context · Axios

    Auth, cart, wishlist, compare

  3. 03

    REST API

    Node.js · Express

    Routes, controllers, JWT

  4. 04

    Data

    MySQL · mysql2

    Persistent application records

The browser UI calls the configured API through the shared Axios client. Authenticated requests attach a JWT; the Express service reads and writes application data through mysql2.

Engineering decisions

Keep state, API, and persistence in sync

DECISION 01

Keep guest shopping useful

CartContext stores guest items in local storage, calculates their totals locally, and synchronizes them through the cart API after sign-in.

DECISION 02

Centralize API communication

A shared Axios client exposes product, category, cart, wishlist, and order methods. Its interceptors attach the stored JWT and clear expired session data after unauthorized responses.

DECISION 03

Separate storefront and service concerns

The frontend page and context layers call focused Express route groups and controllers; the backend uses mysql2 to connect those endpoints to MySQL.

Reflection

A full-stack product, end to end

The result is a publicly accessible storefront backed by a separately organized API and a public source repository. No independent usage, revenue, or performance measurements are published.

Key learningThe implementation highlights how client state, authentication, and API persistence need to stay aligned across guest and signed-in shopping journeys.

Explore the project

See SHOPERA in action.

Visit the live storefront or explore the implementation in the public repository.