IronMind
My role — Solo full-stack developer
A full online store for oversized clothing — shopping cart, WhatsApp checkout, and a working admin dashboard, built from scratch: from the database to deployment.
The problem
I wanted to build a real full-stack application, not a sample CRUD: real authentication, role-based access control, a complete purchase flow, and an admin dashboard someone would actually use day to day.
The solution
Next.js 14 (App Router) with TypeScript across the frontend and API routes, Prisma as the ORM over PostgreSQL, and NextAuth handling authentication with two roles — customer and admin — gating access to the dashboard.
My responsibilities
I designed the data model (products, orders, users, reviews), implemented authentication and access control, built the cart and WhatsApp checkout, and put together the admin dashboard — products, orders, and review moderation.
Architecture
Next.js serves as both the frontend and the API layer; Prisma connects the API routes to a PostgreSQL database; NextAuth manages session and user role in parallel; product images upload to Vercel Blob.
Key features
- Two-role authentication (customer/admin) via NextAuth
- Admin dashboard: products, orders, and order status
- Review system with manual approval before going live
- Shopping cart and WhatsApp-confirmed checkout
- Technical SEO: sitemap.xml and robots.txt generated natively by Next.js
Engineering decisions
- Prisma over raw SQL, for versioned migrations and automatic schema typing
- User role loaded straight into the NextAuth session token, no extra database lookup on every request
- Reviews start as pending and only go live once approved in the dashboard — filters public spam without needing real-time moderation
Challenges
Still writing up the real technical challenges from this project.
What I learned
Still writing up the specific takeaways from this project.