Dev Patel
Artifact AUG – DEC 2023Source

Customer POS System

A point-of-sale front end in React and Redux over a Node REST API, with Postgres and maps integration.

Classification
Artifact
Client
Texas A&M
Window
AUG 2023 → DEC 2023
Duration
4 MO
Status
Complete
The problem

The problem

A point-of-sale system has an unforgiving requirement: it has to stay responsive while an order is being assembled, and it has to be exactly right about money.

What I built

What I built

React with Redux for order state — a POS order is the textbook case for a single predictable store, because every part of the screen needs to agree about the same running total.

A Node and Express REST API underneath, consumed with async/await and axios, backed by PostgreSQL through an ORM. Google Maps handles delivery addressing.

Containerised with Docker; endpoints exercised through Postman during development.

Measured

Measured

Reduxsingle order store
RESTasync/await + axios
Dockerreproducible
  • Order state stayed consistent across every panel of the interface.
  • REST layer fully exercised through Postman before wiring the client.
  • Dockerised for reproducible local runs.
Plan

Plan

Plan

5 items · scale 1:1
REACT UIorder screen1REDUX STOREsingle source of truth2EXPRESS APIREST · async3POSTGRESQLORM4MAPS APIdelivery5
Note · One predictable store on the client; one transactional store on the server.
What I'd redraw

What I'd redraw

Money went through JavaScript numbers. It worked for the scale we ran at, but floating point and currency is a bug waiting for a big enough order — integer cents, or a decimal type, is the only defensible choice.

Materials

Materials

ReactReduxNode.jsExpressPostgreSQLGoogle Maps APIDockerPostman