the website project is a modern ecommerce store built from the ground up to deliver speed, security, and scalability. designed with nextjs 16, tailwind 4, nestjs, and postgresql.
- live demo (postgresql): https://mamolio.store
- live demo (mongodb): https://goodies2buy.vercel.app
- core: nextjs 16.2 + react 19.2 + ts 6.0
- ui: tailwind 4.2 + shadcn/ui
- redux: redux-toolkit
- auth: jwt + google-oauth-2.0
- storage: cloudinary
- analytics: vercel + google-analytics-4
- db: prisma (postgresql) + supabase
- forms: react-hook-form + zod
- tables: tanstack-table
- payments: stripe
- api: nestjs + swagger
- product variants: option-based variants with selections, inventory, pricing, skus, and images.
- seller dashboard: create, edit, and delete products from /store/products.
- product discovery: product listing, search, filtering, sorting, categories, and pricing filters.
- product details: variant-aware product pages with image galleries, reviews, ratings, and structured metadata.
- authentication: email/password auth, jwt sessions, google oauth, email verification, password reset.
- cart and checkout: variant-based cart items and Stripe checkout sessions.
- favorites and reviews: customer favorites, product reviews, average ratings, and rating distribution.
- seo: dynamic metadata, JSON-LD product data, sitemap generation, and semantic page structure.
- internationalization: localized routes under /[lang] with translated product text support.
- pwa support: installable frontend with web app manifest.
|
dynamic product variants
dynamic variant matrix that instantly updates pricing, descriptions, stock levels, and media carousels based on selected options. output.mp4 |
product discovery
search, filter, sort, and browse products across responsive layouts. output.mp4 |
|
seller dashboard
manage products from the store dashboard with create, edit, and delete actions. output.mp4 |
product editor
create rich product listings with descriptions, media, pricing, and variants. output.mp4 |
|
cart & checkout flow
dynamic variant selection, localized multi-currency pricing, and secure end-to-end payment processing via stripe sandbox. output.mp4 |
ai internationalization
automated multi-language localization translating product titles, descriptions, and reviews into en, fr, and ar using LLMs. output.mp4 |
- home:
/ - products:
/products - product:
/products/:id - cart:
/cart - favorites:
/favorites - store:
/store/products - signin:
/signin - signup:
/signup - contact:
/contact - account:
/account
.
βββ api/ # nestjs backend
βββ web/ # nextjs frontend
βββ packages/database/ # prisma schema, generated client, shared db types
βββ packages/types/ # shared typescript types
βββ packages/ui/ # shared ui package
βββ packages/eslint-config/
βββ packages/typescript-config/- products: product crud, variants, reviews, filtering, and product detail data.
- carts: variant-based cart items.
- payments: stripe checkout session creation.
- auth: signup, login, google oauth, email verification, password reset.
- users: profile and password management.
- categories: public and admin category apis.
- favorites: saved product management.
- uploads: media upload support.
- contact messages: Contact form and admin message handling.
- chat: ai-assisted chat endpoint.
have questions, feedback, or want to collaborate? feel free to reach out!
- email: marouaneezzaky@gmail.com


