
End-to-end development, since 2022
PNR, a bag and accessory e-commerce platform
An e-commerce system I built from scratch for a real business. A relational data model across product, category, order and user entities, a REST API I wrote myself, and a bilingual interface on Next.js App Router. The Design Workshop, where a visitor picks a base and builds their own bag from accessories, runs on the same system.
Why PostgreSQL and Prisma?
The relationship between an order and stock needs transaction integrity: a failed order must never deduct stock. That constraint made a relational database the right call over NoSQL. I chose Prisma to keep one source of truth between the schema and the code.
Why JWT and role-based access control?
Admin, designer and customer roles each needed different permissions. Rather than spreading authorization across controllers, I centralized it in the middleware layer (isAuth, isRole), so adding an endpoint leaves the permission decision in one place.
Next.js (App Router), Node.js, Express, TypeScript, Prisma, PostgreSQL, Docker




