HomeDine is a full-stack ecommerce web application focused on quality kitchen and home products for every home.
Shop high-quality items for daily needs across categories like:
- Home Decor
- Utensils
- Bottles
- Cups
- Spoons
The platform includes browsing, product details, cart, checkout, authentication, profile management, contact, newsletter, and order handling.
- Frontend: https://home-dine.vercel.app
- Backend: https://home-dine-backend.vercel.app
- API Health: https://home-dine-backend.vercel.app/api/health
- React (Vite)
- React Router
- Context API (Auth, Cart)
- Tailwind CSS
- Axios
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- Nodemailer
- GitHub Actions: CI/CD, Docker build & push, EC2 deployment
- Vercel: Production hosting (frontend/backend)
- AWS EC2: Production Docker host (CI/CD target)
- Docker: Containerized frontend and backend
- Jenkins: For local CI/CD builds and Docker orchestration
HomeDine/
├── frontend/
├── backend/
├── jenkins/
├── docker-compose.yml
├── docker-compose.jenkins.yml
├── Jenkinsfile
├── .github/workflows/
│ └── deploy.yml
- Product listing and detail pages
- Category-based browsing (home decor, utensils, bottles, cups, spoons)
- Cart & checkout
- User registration/login; profile management
- Forgot/reset password flow
- Order creation and history
- Newsletter and contact forms
- Responsive modern UI
git clone https://github.com/Soumyosish/HomeDine.git
cd HomeDinecd frontend && npm install
cd ../backend && npm install-
Start MongoDB (local or Docker)
-
In one terminal:
cd backend npm run dev -
In another terminal:
cd frontend npm run dev -
Frontend: http://localhost:5173
-
Backend: http://localhost:5000
Spin up frontend, backend, and MongoDB with docker-compose:
docker-compose up --buildThis uses:
docker-compose.ymlfor MongoDB, backend and frontend (prod build)
Use the Jenkins pipeline for local automated builds:
docker-compose -f docker-compose.jenkins.yml up --buildJenkins (runs in a container) will manage and monitor Docker builds and deploys.
.github/workflows/deploy.ymlautomates:- Docker builds for frontend & backend
- Pushes images to Docker Hub
- Deploys via SSH to an AWS EC2 instance
- Runs/updates containers using
docker-compose
DOCKER_USERNAME,DOCKER_PASSWORDfor Docker Hub pushEC2_IP,EC2_SSH_KEYfor remote AWS access
- Build/push Docker images
- SSH into EC2 and pull new images
- Use
docker-composeto relaunch containers
- Frontend and backend are deployable as separate Vercel projects.
- Provide necessary env variables in Vercel dashboard or
.envfiles.
See Jenkinsfile for stages:
- Checkout, Docker build, (optionally push, deploy)
VITE_API_URL(local:http://localhost:5000/api, prod:https://home-dine-backend.vercel.app/api)
MONGO_URI,JWT_SECRET,FRONTEND_URL, mail config, etc.
- CORS: Check
FRONTEND_URLin backend.env - Mongo/DB: Validate
MONGO_URI - JWT/config: Ensure secrets and expires
- Mail: Check SMTP credentials
Developed by Soumyosish