Skip to content
Back to selected work
02 / Academic project2025 — 2026

The Bad Hats.

A React storefront with shopping cart, sign-in state, and checkout validation.

Team LeaderAcademic project · Mock API
ReactTypeScriptReact ContextRedux ToolkitReact RouterAxiosJSON Server
Source code
Recreated interface · Sample data
01 / CONTEXT

The problem

Build an e-commerce single-page application for an academic project, connecting product browsing, a shopping cart, sign-in state, and a validated checkout flow.

02 / IMPLEMENTATION

My contribution

01

Storefront structure

Built a React single-page application using TypeScript components and React Router for client-side navigation.

02

State & API integration

Managed cart state with React Context and useState, and authentication, product, and order state with Redux Toolkit. Integrated JSON Server through a shared Axios client.

03

Forms & admin routes

Added required checkout fields and an empty-cart check, password confirmation during registration, and client-side route protection for the admin order list.

03 / ARCHITECTURE

How it connects

  1. 01React / Router
  2. 02Context: cart · Redux: auth / products / orders
  3. 03Shared Axios client
  4. 04JSON Server

Cart state and Redux state are separate; the Axios client connects the application to the mock API.

An implementation decision

CartProvider shares items, quantities, and totals with the storefront and checkout. Redux Toolkit keeps authentication, products, and orders in named slices. A shared Axios client centralizes the mock API connection settings.

04 / INTERFACES

Interface studies

Storefront & cart — Recreated interface · Sample data

Interface studies recreated for this portfolio. All data is illustrative.

05 / REFLECTION

Outcome & boundaries

What shipped

Built the storefront, shared cart and application state, mock API integration, basic form validation, and client-side admin route protection. The public repository is available for review.

What this project does not claim

JSON Server provides a mock API. Client-side route protection is not backend authorization. This case study does not claim real payment processing, a production backend, or commercial deployment.

Next project

Internal Support Platform

Read case study
05 / Contact

Let’s build something useful.

I’m looking for a fresher developer role where I can contribute with React and TypeScript while growing my full-stack skills.

Email me