- User:
- Full featured shopping cart
- Product reviews and ratings
- Top products carousel
- Product pagination
- Product search feature
- Ceckout process (shipping, payment method, etc)
- PayPal / Credit card integration
- Admin:
- Product management
- User management
- Order details page
- Mark orders as delivered option
- React, Redux
- Javascript, Node.js, Express, MongoDB
- Containerlized with Docker
- Nginx, TravisCI
- Deployed on AWS Elastic BeanStalk
git clone https://github.com/syuChen1/Shoppingfy-MERN.git
cd Shoppingfy-MERN && npm i
cd client && npm i
cd ..
replace .example.env with .env with your credentials.
docker-compose up
The development environment is composed of three dockeraizd container and run with docker-compose.
shoppingfy-client
- localhost:3006shoppingfy-server
- localhost:5000shoppingfy-nginx
- Load balancer serve to redirect traffic to client or server depending on the request.
Shoppingfy is deployed on AWS Elastic BeanStalk. It uses two nginx services. The first one act as a load balancer to redirect traffic. The second one is used to serve React production files.
- Push code to Github from a Feature branch
- Travis automatically pulls repo
- Travis builds a test image and test the code
- On test success, you would be able to review the code and merge it into master
- After merging, Travis automatically pulls repo and builds production image
- Travis pushes production image to Docker Hub
- Travis pushes project to AWS Elastic Beanstalk
- AWS Elastic Beanstalk pulls image from Docker Hub and deploys.