A modern fullstack multi-vendor e-commerce platform built with Next.js 15, featuring real-time flash sales, advanced product filtering, vendor management, and premium UI/UX design.
- Multi-Vendor Marketplace: Support for multiple vendors with individual storefronts and product management
- Advanced Product Filtering: Filter by category, price range, rating, and vendor with real-time updates
- Flash Sales System: Time-limited deals with countdown timers and stock progress indicators
- Shopping Cart: Persistent cart state with Zustand, supporting add/remove/update operations
- Product Search: Intelligent search with recent searches and trending products
- Vendor Profiles: Dedicated vendor pages with ratings, product listings, and store information
- Product Reviews: User ratings and reviews with average score calculation
- Wishlist: Save favorite products for later
- Registry System: Gift registry creation and management for special occasions
- Responsive Design: Mobile-first approach with seamless tablet and desktop experiences
- Dark Mode: Full dark mode support across all pages
- Mega Menu: Structured category navigation with promotional content
- Mobile Bottom Navigation: App-like navigation for mobile users
- Recently Viewed: Floating widget tracking user browsing history
- Loading States: Skeleton loaders and optimistic UI updates
- Empty States: User-friendly messages when no data is available
- User Authentication: Secure login and registration system
- Protected Routes: Role-based access control for customer and vendor areas
- Session Management: Persistent authentication state
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Shadcn/UI, Radix UI
- State Management: Zustand
- Icons: Lucide React
- API: Next.js API Routes
- ORM: Prisma
- Database: PostgreSQL (Neon)
- Authentication: Custom implementation with session management
- Package Manager: npm
- Linting: ESLint
- Type Checking: TypeScript
- Node.js 18+
- PostgreSQL database (or Neon account)
- npm or yarn
-
Clone the repository
git clone https://github.com/Pusri27/minimarket-hub.git cd minimarket-hub -
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root directory:DATABASE_URL="your_postgresql_connection_string" NEXT_PUBLIC_APP_URL="http://localhost:3000"
-
Set up the database
npx prisma generate npx prisma db push npx prisma db seed
-
Run the development server
npm run dev
-
Open your browser
Navigate to
http://localhost:3000
minimarket-hub/
βββ prisma/
β βββ schema.prisma # Database schema
β βββ seed.ts # Database seeding script
βββ src/
β βββ app/
β β βββ (public)/ # Public pages (home, products, vendors)
β β βββ auth/ # Authentication pages
β β βββ api/ # API routes
β β βββ globals.css # Global styles
β βββ components/
β β βββ ui/ # Shadcn UI components
β β βββ layout/ # Layout components (navbar, footer)
β β βββ home/ # Home page specific components
β βββ lib/
β β βββ prisma.ts # Prisma client instance
β β βββ utils.ts # Utility functions
β βββ store/
β βββ cart-store.ts # Zustand cart state management
βββ public/ # Static assets
βββ package.json
- Home (
/): Hero carousel, flash sales, category grid, trending products, featured stores - Products (
/products): Product listing with advanced filtering and sorting - Product Detail (
/products/[id]): Detailed product view with reviews and related products - Vendors (
/vendors): Vendor directory with search and filtering - Vendor Profile (
/vendors/[id]): Individual vendor storefront - Cart (
/cart): Shopping cart management - Registry (
/registry): Gift registry creation and management - Customer Service (
/customer-service): Help center with FAQs
GET /api/products: Fetch products with filtering and paginationGET /api/vendors: Fetch vendor listings- Additional routes for authentication, cart management, and data operations
The application follows modern e-commerce design principles:
- Premium Aesthetics: Clean, professional interface with attention to visual hierarchy
- Performance First: Optimized images, lazy loading, and efficient data fetching
- Accessibility: Semantic HTML, ARIA labels, and keyboard navigation support
- Consistency: Unified design system using Shadcn/UI components
- User-Centric: Intuitive navigation, clear CTAs, and helpful feedback messages
The application is optimized for deployment on Vercel:
-
Push to GitHub
git push origin main
-
Connect to Vercel
- Import your repository on Vercel
- Configure environment variables
- Deploy
-
Database Migration
- Ensure your production database is set up
- Run migrations via Vercel CLI or dashboard
The application uses the following main models:
- User: Customer and vendor accounts
- Vendor: Vendor profiles and shop information
- Product: Product listings with images, pricing, and inventory
- Category: Product categorization
- Review: Product reviews and ratings
- Cart: Shopping cart items
- Order: Order management and history
- Registry: Gift registry system
This is a personal portfolio project. However, feedback and suggestions are welcome through GitHub issues.
This project is open source and available under the MIT License.
Pusri27
- GitHub: @Pusri27
- Project Link: https://github.com/Pusri27/minimarket-hub
- Next.js team for the amazing framework
- Shadcn for the beautiful UI component library
- Vercel for hosting and deployment platform
- The open-source community for inspiration and tools