Style Street
A streetwear store built end-to-end: shopping, checkout and an admin dashboard to manage it all.

What I built
Style Street is a fictional streetwear brand I used as an excuse to build a proper e-commerce site from scratch. Not a tutorial clone. I wanted real auth, a real database, real image uploads and an admin workflow you could actually use.
On the customer side: browse products by category, add things to a cart that survives a page refresh and check out as a logged-in user. On the admin side: add and edit products, upload images and move orders through a fulfilment pipeline.
Tech choices
Next.js with the App Router, Tailwind CSS and TypeScript. For the database I went with PostgreSQL on Neon using Drizzle ORM. I liked that Drizzle keeps queries close to SQL rather than hiding it. Auth is handled by NextAuth with Google OAuth.
Cart state lives in Zustand and is persisted to localStorage. Everything else (product data, orders, sessions) lives in the database and is fetched server-side.
Admin dashboard
The admin area is protected behind a role check on the session — only accounts flagged as admin in the database can access it. From there you get an overview of total products, categories and featured items, plus a feed of recently added products.
The products view lists the full catalogue with category, price and a badge indicator for featured or new items. Each row has edit and delete actions — editing opens a form pre-populated with the existing data including the current image, so you're only changing what you need to.
The orders view lists every order with customer details, item count, total and a status dropdown. Status can be moved through a fulfilment pipeline (Processing, Shipped, Delivered) directly from the table.

Dashboard overview

Products management

Orders management