A modern, full-stack e-commerce platform for premium footwear with advanced features and beautiful UI
ShoeMarkNet is a comprehensive e-commerce platform designed specifically for footwear retail. Built with modern technologies and featuring a sleek, responsive design, it provides both customers and administrators with an exceptional experience.
- π¨ Modern UI/UX: Beautiful gradient designs with glass-morphism effects
- π± Fully Responsive: Optimized for all devices and screen sizes
- π Advanced Authentication: Secure JWT-based user authentication
- π Shopping Cart: Persistent cart with real-time updates
- β€οΈ Wishlist System: Save favorite products for later
- π Admin Dashboard: Comprehensive analytics and management tools
- π Smart Search: Advanced product search with filters
- β Review System: Customer reviews and ratings
- π Lead Scoring: AI-powered customer behavior analysis
- π― Campaign Management: Marketing campaigns and promotions
- π¦ Order Management: Complete order lifecycle tracking
- π¬ Contact Center: Unified inbox with SLA tracking for customer inquiries
- π Dark Mode: Beautiful dark theme support
- React 19 - Modern component-based UI library
- Redux Toolkit - State management
- React Router Dom v7 - Client-side routing
- Tailwind CSS v4 - Utility-first CSS framework
- Vite 7 - Next-generation build tool and development server
- Axios - HTTP client for API calls
- TanStack Query - Server state management
- React Hot Toast - Beautiful notifications
- Framer Motion - Animation library
- Chart.js - Data visualization
- Lucide React & Heroicons - Icon libraries
- React Intersection Observer - Intersection detection
- date-fns - Date utility library
- Node.js - JavaScript runtime
- Express.js v5 - Web application framework
- MongoDB - NoSQL database
- Mongoose v8 - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing
- Nodemailer - Email sending
- Express Rate Limit - API rate limiting
- Express Validator - Input validation
- Helmet - Security middleware
- UUID - Unique identifier generation
- Slugify - URL-friendly string generation
- Compression - Response compression
- Morgan - HTTP request logger
- ESLint v9 - Code linting with modern flat config
- Vite 7 - Next-generation build tool with HMR
- Tailwind CSS v4 - Latest utility-first CSS framework
- Nodemon - Development server auto-restart
- TanStack Query DevTools - Query debugging
- Node.js (v20 or higher)
- MongoDB (v8 or higher)
- npm or yarn package manager
- Clone the repository
git clone https://github.com/vedantlahane/ShoeMarkNet.git
cd ShoeMarkNet- Backend Setup
cd backend
npm install
# Create environment file
cp .env.example .env
# Configure your environment variables in .env- Frontend Setup
cd ../frontend
npm install
# Create environment file
cp .env.example .env
# Configure your environment variables in .env- Environment Variables
Backend .env:
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://localhost:27017/shoemarknet
JWT_SECRET=your_jwt_secret_key
REFRESH_TOKEN_SECRET=your_refresh_token_secret
JWT_EXPIRE=30d
REFRESH_TOKEN_EXPIRE=7d
# Email Configuration (SMTP)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASSWORD=your_app_password
FROM_NAME=ShoeMarkNet
FROM_EMAIL=noreply@shoemarknet.com
# Optional: Realtime metrics interval (milliseconds)
REALTIME_METRICS_INTERVAL=15000Frontend .env:
VITE_API_URL=http://localhost:5000/api
VITE_API_TIMEOUT=15000
# Optional: WebSocket configuration for real-time features
# VITE_WS_BASE_URL=ws://localhost:5000
# VITE_WS_ENABLED=true
# Optional: Analytics and tracking
# VITE_GA_MEASUREMENT_ID=your_google_analytics_id
# VITE_MIXPANEL_TOKEN=your_mixpanel_token- Start Development Servers
Backend:
cd backend
npm run devFrontend (in new terminal):
cd frontend
npm run devNeed ready-to-use credentials for testing? Run the backend seeding script after configuring your .env:
cd backend
npm run seed:accountsThis command creates or updates two accounts:
- Admin β
admin@shoemarknet.test/Admin@123! - User β
user@shoemarknet.test/User@123!
The script is idempotent: rerunning it refreshes the passwords without duplicating users.
Want products, coupons, and promotions ready to demo? Run the sample data seeder after default accounts:
cd backend
npm run seed:sampleThis populates featured categories, products, a WELCOME10 coupon, a public promotion banner, and a few admin notifications.
- Access the Application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
- API Health Check: http://localhost:5000/api/health
ShoeMarkNet/
βββ backend/ # Backend API server
β βββ controllers/ # Route controllers (15 controllers)
β βββ models/ # Database models (16 models)
β βββ routes/ # API routes (14 route files)
β βββ middleware/ # Custom middleware (auth, error, rate limit, validation)
β βββ services/ # Business logic services
β βββ utils/ # Utility functions (API response, database, file upload, etc.)
β βββ scripts/ # Database seeding scripts
β βββ docs/ # API documentation
β βββ public/ # Static files
βββ frontend/ # React frontend
β βββ src/
β β βββ admin/ # Admin dashboard components
β β βββ components/ # Reusable UI components (organized by feature)
β β βββ pages/ # Page components
β β βββ redux/ # Redux store & slices
β β βββ services/ # API service functions
β β βββ hooks/ # Custom React hooks
β β βββ routes/ # Route configurations
β β βββ lib/ # Library configurations
β β βββ utils/ # Utility functions
β β βββ assets/ # Static assets
β βββ public/ # Public static files
βββ README.md # Project documentation
- Authentication: Secure login/register with JWT tokens, password reset, email verification
- Product Browsing: Browse products with advanced filtering (category, brand, price, gender, etc.)
- Shopping Cart: Add/remove items with quantity management and persistence
- Wishlist: Save favorite products for later
- Checkout Process: Complete checkout flow with billing, shipping, and payment forms
- Order Management: Track order status and history with detailed order views
- User Profile: Manage personal information, addresses, and preferences
- Product Reviews: Leave product reviews and ratings
- Search Functionality: Advanced product search with filters
- Contact Support: Submit support tickets with file attachments
- Responsive Design: Mobile-first design that works on all devices
- Dashboard Analytics: Comprehensive sales, revenue, and user metrics with charts
- Product Management: Full CRUD operations for products with image uploads
- Order Management: Process and track orders with status updates
- User Management: View and manage customer accounts
- Category Management: Organize products with categories
- Campaign Management: Create and manage promotional campaigns
- Coupon System: Create and monitor discount codes with usage limits
- Lead Scoring: Track customer engagement and behavior metrics
- Contact Center: Triage, assign, and close customer support tickets with SLA tracking
- Notification Center: Manage operational alerts and notifications
- Realtime Dashboard: Live statistics with auto-refresh capabilities
- Settings Panel: Configure application settings
- Analytics Panel: Detailed analytics and reporting
- Responsive Design: Mobile-first approach
- API Rate Limiting: Prevent abuse and ensure stability
- Error Handling: Comprehensive error management
- Data Validation: Input validation on both frontend and backend
- Security: CORS, Helmet, and input sanitization
- Performance: Image optimization and lazy loading
- SEO Friendly: Meta tags and semantic HTML
- Service Desk Ready: API endpoints for contact submissions, status updates, and analytics
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutPOST /api/auth/forgot-password- Request password resetPOST /api/auth/reset-password/:token- Reset password with tokenGET /api/auth/verify-email/:token- Verify email addressPOST /api/auth/refresh-token- Refresh access tokenGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profile
GET /api/products- Get all products (with filters)GET /api/products/:id- Get product by IDPOST /api/products- Create product (Admin)PUT /api/products/:id- Update product (Admin)DELETE /api/products/:id- Delete product (Admin)
GET /api/categories- Get all categoriesGET /api/categories/:id- Get category by IDPOST /api/categories- Create category (Admin)PUT /api/categories/:id- Update category (Admin)DELETE /api/categories/:id- Delete category (Admin)
GET /api/orders- Get user ordersPOST /api/orders- Create new orderGET /api/orders/:id- Get order by IDPUT /api/orders/:id- Update order status (Admin)
GET /api/cart- Get user cartPOST /api/cart- Add item to cartPUT /api/cart/:itemId- Update cart itemDELETE /api/cart/:itemId- Remove item from cartGET /api/wishlist- Get user wishlistPOST /api/wishlist- Add item to wishlistDELETE /api/wishlist/:productId- Remove item from wishlist
GET /api/reviews/:productId- Get product reviewsPOST /api/reviews- Create reviewPUT /api/reviews/:id- Update reviewDELETE /api/reviews/:id- Delete review
POST /api/contact- Submit a support request (public)GET /api/admin/contacts- List contact tickets with filters (Admin)GET /api/admin/contacts/:id- View a specific ticket (Admin)PATCH /api/admin/contacts/:id/status- Update ticket status or assignment (Admin)POST /api/admin/contacts/:id/respond- Record responses and timeline events (Admin)DELETE /api/admin/contacts/:id- Remove a ticket (Admin)GET /api/admin/contacts/stats- Retrieve SLA and workload analytics (Admin)
GET /api/admin/dashboard/stats- Get dashboard statisticsGET /api/admin/users- Get all usersGET /api/admin/orders- Get all ordersGET /api/admin/products- Get all products for adminGET /api/admin/campaigns- Get marketing campaignsPOST /api/admin/campaigns- Create campaignGET /api/admin/coupons- Get discount couponsPOST /api/admin/coupons- Create coupon
- Install MongoDB locally or use MongoDB Atlas
- Create a new database named
shoemarknet - Update the
MONGODB_URIin your backend.envfile
Configure email settings in your backend .env file for:
- User registration confirmation
- Password reset functionality
- Order confirmation emails
- Set up production environment variables
- Configure MongoDB Atlas connection
- Deploy using Git or Docker
- Build the production bundle:
npm run build - Deploy the
distfolder - Configure environment variables
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit changes:
git commit -am 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit a pull request
- Follow the existing code style
- Write descriptive commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Vedant Lahane
- GitHub: @vedantlahane
- Email: vedant.lahane@gmail.com
- LinkedIn: Vedant Lahane
Last updated: December 2025
- React.js community for excellent documentation
- Tailwind CSS for the amazing utility framework
- MongoDB team for the robust database solution
- All contributors who helped improve this project
For detailed documentation, please visit:
Additional documentation files are available in the respective directories.
CORS Errors: Ensure your frontend URL is added to the allowed origins in backend/app.js
Database Connection: Verify your MongoDB URI is correct and the database is running
Environment Variables: Double-check all required environment variables are set
Port Conflicts: Make sure ports 5000 and 5173 are available
Noisy Vite Dev Logs: The frontend development server now filters repetitive [vite] HMR connection messages. If you need the original verbosity, remove or adjust the noisyLogPatterns array in frontend/vite.config.js.
WebSocket Console Errors: Real-time dashboard updates are disabled unless VITE_WS_BASE_URL is set. Configure the variable (and optionally VITE_WS_ENABLED=true) once a WebSocket backend is available to avoid repeated connection warnings during development.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed description
- Contact the maintainers
- Complete e-commerce platform with user and admin functionality
- Advanced authentication with email verification and password reset
- Comprehensive product catalog with categories and reviews
- Shopping cart and wishlist functionality
- Full checkout process with order management
- Admin dashboard with analytics and management tools
- Contact center with ticket management
- Real-time features and notifications
- Responsive design with dark mode support
- API documentation and comprehensive testing
- Payment gateway integration (Stripe, PayPal, Razorpay)
- Real-time chat support system
- Advanced inventory management
- Multi-language support (i18n)
- Mobile application (React Native)
- Advanced analytics and reporting
- Social media integration
- AI-powered product recommendations
- Loyalty program and rewards system
- Advanced search with AI-powered suggestions
- Email marketing campaigns
- Integration with shipping providers
- Product comparison feature
- Wishlist sharing functionality
Made with β€οΈ by Vedant Lahane
β Star this repo if you found it helpful!