Baskit is a robust, full-stack e-commerce platform built using the MERN stack, tailored for premium fashion and wearables. Designed with clean architecture, modular scalability, and secure transaction flows, it demonstrates production-ready practices such as session management with Redis, token-based authentication, third-party payment integration, and dynamic content delivery via Cloudinary.
This project is ideal for demonstrating backend design, RESTful API development, secure payments integration, scalable state management, and CI-ready application structure—making it a solid fit for internship roles at product-based companies like Meta, Amazon, Google, Microsoft, Netflix, and high-growth startups.
- 🛒 Fully functional e-commerce backend
- 🔐 Secure login/register with JWT access & refresh tokens
- 📦 Cart & order APIs with quantity-based logic
- 💳 Stripe payment gateway integration
- 📸 Image handling via Cloudinary
- ⚙️ Admin dashboard for analytics & control
- 📊 Dynamic revenue/metrics visualization using charts
- 🧠 Redis-based session and token management
Create a .env file in the root directory with the following:
PORT=5000
MONGODB_URI=your_mongodb_uri
UPSTASH_REDIS_URL=your_upstash_redis_url
ACCESS_TOKEN_SECRET=your_access_token_secret
REFRESH_TOKEN_SECRET=your_refresh_token_secret
CLOUNDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUNDINARY_API_KEY=your_cloudinary_api_key
CLOUNDINARY_API_SECRET=your_cloudinary_api_secret
STRIPE_SECRET_KEY=your_stripe_secret
CLIENT_URL=http://localhost:3000
NODE_ENV=developmentgit clone https://github.com/CodeCenturian/Baskit.git
cd Baskit
npm install- Setup the
.envfile with correct values - Start backend server:
npm run devYour backend will now be running on
http://localhost:5000
Deploy on Render, Railway, or Vercel Serverless:
- Set environment variables from
.env - Build command:
npm install - Start command:
npm run start
Deploy using:
Set environment:
REACT_APP_API_URL=https://your-deployed-api-url.comPOST /api/auth/register // Register
POST /api/auth/login // Login (Returns tokens)
GET /api/auth/profile // Get current userGET /api/products // All products
GET /api/products/:id // Single product
POST /api/products // Add (admin)
PUT /api/products/:id // Edit (admin)
DELETE /api/products/:id // Delete (admin)POST /api/cart/add // Add to cart
GET /api/cart // User cart
DELETE /api/cart/:itemId // Remove itemPOST /api/checkout/stripe // Create Stripe checkout sessionThis project displays hands-on experience with real-world backend challenges, such as:
- Authentication Flows (Access/Refresh tokens using JWT)
- State Management (Cart & Orders)
- Cloud & CDN Use (Cloudinary & Redis)
- Third-Party Payments (Stripe Checkout)
- Modular Codebase (Easy for scaling/microservices)
- Frontend UX Enhancements (via animations, toasts, visual analytics)
💡 Add a CI pipeline, testing framework like Jest or Vitest, and logging (e.g. Winston) for an even stronger resume-ready showcase.
Contributions are welcome! Want to add wishlist, reviews, advanced analytics, or integrate AI-driven recommendations? Fork, feature-branch, and PR away.
MIT © CodeCenturian
- 📧 Email: [email protected]
