TECHMART is a modern full-stack e-commerce web application built with React.js (frontend) and Node.js + Express.js + PostgreSQL + Sequelize (backend). It includes JWT authentication, Redis caching, Dockerized deployment, automated CI/CD pipeline, and rigorous SDLC practices.
🔗 Live Demo 🌐 Frontend (Vercel): https://techmart-ruby.vercel.app 🔌 Backend API (Render): https://techmart-backend-qiib.onrender.com
| Layer | Tech Stack |
|---|---|
| Frontend | React.js, Tailwind CSS, Axios |
| Backend | Node.js, Express.js, Sequelize ORM |
| Database | PostgreSQL, Supabase |
| Caching | Redis (Upstash) + In-Memory Cache |
| Testing | Jest + Supertest |
| DevOps | Docker, GitHub Actions, Render, Railway, Vercel |
✅ User Registration & JWT Login ✅ Secure Product Management (CRUD) ✅ Add to Cart & Place Orders ✅ Role-based Access (Admin/User) ✅ Real-time Redis Caching ✅ Automated CI/CD with GitHub Actions ✅ Unit Testing with Jest + Supertest ✅ Dockerized Frontend & Backend
techmart/
├── client/ # React Frontend
└── server/ # Node.js Backend
cd server
npm installCreate .env in /server:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_database
DB_USER=your_user
DB_PASSWORD=your_password
JWT_SECRET=your_secret
REDIS_URL=your_redis_url
PORT=5000Run:
npm startRun Unit Tests:
npm run testcd client
npm install
npm start-
Framework: Jest + Supertest
-
Tested:
- ✅ Products Controller (Success + Failure)
- ✅ Get Product By ID (Success + Failure)
-
Run Tests:
npm run test -
Sample Output:
PASS tests/productsController.test.js PASS tests/getProductById.test.js
cd client
docker build -t techmart-client .
docker run -p 3000:3000 techmart-clientcd server
docker build -t techmart-server .
docker run -p 5000:5000 techmart-server👉 Combine both using docker-compose for full-stack deployment.
| Method | Endpoint | Function | Auth |
|---|---|---|---|
| POST | /api/auth/register | User Registration | ❌ |
| POST | /api/auth/login | User Login | ❌ |
| GET | /api/products | Get All Products | ❌ |
| GET | /api/products/:id | Get Product by ID | ❌ |
| POST | /api/products | Add Product (Admin) | ✅ Admin |
| PUT | /api/products/:id | Update Product (Admin) | ✅ Admin |
| DELETE | /api/products/:id | Delete Product (Admin) | ✅ Admin |
✅ Auto Build & Deploy Backend to Render/Railway ✅ Auto Build & Deploy Frontend to Vercel ✅ Run Unit Tests Automatically on Each Commit
name: Node.js CI/CD
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install
- run: npm run test| Phase | Activities |
|---|---|
| 1️⃣ Requirement | Define features: User auth, Cart, Product management |
| 2️⃣ Design | Database schema (ERD), API design, UI wireframes |
| 3️⃣ Development | Write React.js frontend, Node.js backend |
| 4️⃣ Testing | Unit Testing (Jest), Integration Testing, Postman |
| 5️⃣ Deployment | Dockerize, CI/CD pipelines, Deploy to Render/Vercel |
| 6️⃣ Maintenance | Monitor, fix bugs, add new features |
🚀 Payment Gateway Integration (Stripe/Razorpay) 🚀 Real-time Notifications (Socket.IO) 🚀 Progressive Web App (PWA) Version 🚀 AI-driven Product Recommendations 🚀 Inventory Management System 🚀 Wishlist & Personalized Offers
- Fork the project
- Create your branch:
git checkout -b feature/my-feature - Commit your changes
- Open a Pull Request ✅
MIT License.
Made with ❤️ by [Amey kadwe]