GoShop

A production-ready e-commerce application built with Go (REST + gRPC backend) and React (web frontend).
Architecture
The application runs two servers concurrently (backend) plus a React web frontend:
- HTTP (REST) — Gin framework, port
8888
- gRPC — port
8889, with JWT auth interceptor
Each domain (user, product, order, cart) follows a ports-and-adapters layout:
internal/{domain}/
├── model/ # GORM models
├── dto/ # Request/response structs with validation tags
├── repository/ # Database access (depends on dbs.Database interface)
├── service/ # Business logic (depends on repository interfaces)
└── port/
├── http/ # Gin handlers and route registration
└── grpc/ # gRPC handlers and server registration
| Domain | HTTP | gRPC |