A modern, accessible e-commerce platform built with Next.js 15 (frontend) and Express + PostgreSQL (backend), designed for both customers and store administrators.
Includes a dynamic storefront, full admin dashboard, backend API, image upload, order tracking, and multilingual support (RTL & LTR).
This project uses a mixed mock dataset of Hebrew (RTL) and English (LTR) product and category entries.
The layout is fully optimized for both directions, ensuring a seamless multilingual experience.
- ๐บ๐ธ LTR (English): modern-ecommerce-store.vercel.app/en
- ๐ฎ๐ฑ RTL (Hebrew): modern-ecommerce-store.vercel.app/he
- ๐ Admin Panel: modern-ecommerce-store.vercel.app/admin โ includes a built-in login form
Deploy your own version of this e-commerce storefront.
This deploy uses Next.js route handlers (app/api) as the server.
After creating your project, make sure to go to the Vercel dashboard
and update your environment variables based on functions/.env.example
To run the app locally or in production, you must configure the appropriate environment variables.
See the example files for full variable lists and inline comments:
frontend/.env.exampleโ for frontend modefunctions/.env.exampleโ for Next.js API routes & Frontendbackend/.env.exampleโ for Express backend mode
This project supports multiple development modes:
- Fullstack โ run a real backend with PostgreSQL + Express
- Next.js API โ use serverless functions instead of Express
- Mock โ use local mock data for instant setup
Choose the guide that fits your workflow:
- ๐๏ธ
frontend/README.mdโ run the frontend with mock data or connect to a backend - ๐ ๏ธ
backend/README.mdโ set up the Express API and database - โ๏ธ
functions/README.mdโ uses Next.js API routes for backend logic (no separate server needed)
- ๐ Fully styled with MUI v7
- ๐๏ธ Dynamic storefront with product filtering and category browsing
- ๐งพ Admin dashboard with full model management (products, categories, orders, images)
- ๐ง SEO & Open Graph via Next.js 15 Metadata API
- โฟ Accessibility bar with font scaling and contrast settings
- ๐ Cart and admin state managed via Redux Toolkit with persisted state
- ๐งช Playwright-based E2E tests for key storefront and admin flows
- ๐ RESTFUL CRUD API for products, categories, orders, and images
- ๐ Token-based authentication using JWT
- ๐๏ธ TypeORM + PostgreSQL schema design
- ๐ค Image upload via Vercel Blob + processing with Multer + Sharp
- โ๏ธ Optional: email and WhatsApp order notifications
- โ 100% test coverage for API routes using Vitest + Supertest
- Next.js 15, React 19, TypeScript
- MUI 7
- Redux Toolkit with redux-persist
- AG Grid, Formik, Yup, react-intl, Sonner
- Playwright for E2E testing
- Express.js + TypeScript
- TypeORM with PostgreSQL
- JWT + bcryptjs for authentication
- Multer + Sharp for image upload & processing
- Vercel Blob for cloud storage
- Nodemailer, SendGrid, CallMeBot for notifications
- Vitest + Supertest for full API test coverage
Contributions are welcome!
If you find this project useful, consider giving it a โญ on GitHub โ it helps others discover it!
To contribute, fork the repository and submit a pull request with your enhancements or bug fixes.
This project is licensed under the MIT License.