Welcome to eShop, a fully integrated MERN stack e-commerce platform where performance and real-time experience come first. eShop provides a seamless shopping experience, complete with cart management, payment processing, and a snappy UI.
- Backend:
1.0.0 - Frontend:
1.0.0
eShop is designed to be a lightweight, yet powerful e-commerce solution. Built with the latest web technologies for efficiency and ease of use, it supports everything from product browsing to order management.
- ποΈ E-commerce Core: Product catalog, shopping cart, checkout system
- π User Management: Secure authentication, user profiles, order history
- π³ Payment Integration: PayPal payment processing
- π± Responsive Design: Mobile-first approach with TailwindCSS
- β‘ Real-time Updates: Live cart updates and order tracking
- πΌοΈ File Management: Image uploads for products
- π Internationalization: Multi-language support (EN, DE, RO)
- π¨ Admin Dashboard: Product and order management
- π Search & Filter: Advanced product discovery
- π Analytics: Sales and user analytics
- React 18 - Modern React with hooks
- Redux Toolkit - State management
- TailwindCSS - Utility-first CSS framework
- Vite - Fast build tool
- React Router - Client-side routing
- i18next - Internationalization
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB ODM
- JWT - Authentication
- Multer - File uploads
- Helmet - Security headers
- CORS - Cross-origin resource sharing
- bcryptjs - Password hashing
- Morgan - HTTP request logger
# Run the deployment script
./deploy.sh
# Choose option 1 for Render deployment# Build and run with Docker
docker build -t eshop-app .
docker run -d -p 10000:10000 eshop-app
# Or use docker-compose
docker-compose up -dSee DEPLOYMENT.md for detailed instructions.
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn
# Clone the repository
git clone https://github.com/Alexandra2888/eShop
cd eShop
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
# Start the application
cd ..
npm run backend
npm run frontend# Backend development
npm run backend # Start backend with nodemon
npm run start # Start backend in production mode
# Frontend development
npm run frontend # Start frontend dev server
npm run build # Build frontend for production
# Database operations
npm run data:import # Import sample data
npm run data:destroy # Clear databaseCreate .env files in both backend/ and frontend/ directories:
Backend (.env)
MONGO_URL=mongodb://localhost:27017/eshop
JWT_SECRET=your_jwt_secret_key
NODE_ENV=development
PORT=5001
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_CLIENT_SECRET=your_paypal_client_secretFrontend (.env)
VITE_API_URL=http://localhost:5001eShop/
βββ docs/ # Architecture RFCs & design documents
β βββ RFC-001-system-design.md
βββ backend/ # Backend API (Node.js + Express + TypeScript)
β βββ config/ # Database & configuration
β βββ controllers/ # Route controllers
β βββ middlewares/ # Custom middlewares
β βββ models/ # MongoDB schemas
β βββ routes/ # API endpoints
β βββ uploads/ # File uploads
β βββ utils/ # Utility functions
βββ frontend/ # React frontend (Vite + TypeScript)
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ redux/ # State management (RTK Query + slices)
β β βββ utils/ # Frontend utilities
β βββ public/ # Static assets
βββ docker-compose.yml # Docker configuration
βββ Dockerfile # Multi-stage Docker build
βββ deploy.sh # Deployment automation
βββ DEPLOYMENT.md # Deployment guide
POST /api/users/register- User registrationPOST /api/users/login- User loginGET /api/users/profile- Get user profile
GET /api/products- Get all productsGET /api/products/:id- Get product by IDPOST /api/products- Create product (admin)PUT /api/products/:id- Update product (admin)
POST /api/orders- Create orderGET /api/orders/myorders- Get user ordersGET /api/orders/:id- Get order by ID
This project demonstrates:
- Full-stack development with MERN stack
- Modern React patterns (hooks, context, functional components)
- State management with Redux Toolkit
- API design with RESTful endpoints
- Database modeling with MongoDB/Mongoose
- Authentication & authorization
- File uploads and media management
- Payment integration with PayPal
- Responsive design with TailwindCSS
- Internationalization support
- Production deployment configuration
- ESLint configuration
- Prettier formatting
- SOLID principles
- KISS design patterns
- Manual testing for all features
- API endpoint testing
- Cross-browser compatibility
- Lazy loading for images
- Code splitting with React Router
- Optimized builds with Vite
- Efficient state management with Redux
- Database indexing for fast queries
- CORS errors: Check backend CORS configuration
- MongoDB connection: Verify connection string and network access
- Build failures: Ensure Node.js 18+ and all dependencies installed
- File uploads: Check uploads directory permissions
- Check DEPLOYMENT.md for deployment issues
- Review DEPLOYMENT_CHECKLIST.md
- Check console logs for error details
Technical RFCs and design documents live in the /docs folder.
| Document | Description |
|---|---|
| RFC-001 β System Design | Full system architecture: component design, data models, API reference, security, deployment, and future work |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Alexandra2888 - Full-stack developer passionate about creating modern web applications.
- Frontend: https://eshop-frontend.onrender.com
- Backend API: https://eshop-backend.onrender.com
- Health Check: https://eshop-backend.onrender.com/api/health

