← Back to projects

Full-stack project

E-Shop

A React storefront backed by a Spring Boot API for customer, seller, and administrator workflows.

Java · Spring Boot · React · PostgreSQL · Stripe

Overview

The frontend covers product discovery, cart and checkout, order history, and separate seller and administrator dashboards. The API manages authentication, catalogue data, orders, and payments.

Architecture

The React storefront communicates with a Spring Boot REST API. Authentication uses an HTTP-only JWT cookie, with a CSRF token for state-changing requests.

Frontend · Vercel

React storefront

HTTPS · REST

Backend · Docker / Northflank

Spring Boot API

Controllers · Services · JPA

PostgreSQL

Neon

Application data

Stripe

Payment API

Payment verification

Cloudinary

Media storage

Product images

The API manages application data, verifies payments with Stripe, and stores product images in Cloudinary. The storefront also uses Stripe.js to confirm payments.

Engineering decisions

Authentication uses an HTTP-only cookie and CSRF protection. The server calculates checkout totals from the cart, verifies Stripe payments before creating orders, and locks product rows while updating stock. Dashboard sorting and pagination live in the URL so the view survives navigation and refreshes.

Testing and delivery

The repositories include frontend and backend test suites and GitHub Actions checks. The React app is deployed on Vercel, while the API runs as a Docker service on Northflank with PostgreSQL on Neon.