Project Execution
Architecture
The application followed a containerized microservices-based architecture:
- Frontend:
- Built using React.js to ensure a responsive and user-friendly interface.
- Features included product browsing, user authentication, shopping cart management, and order tracking.
- Backend:
- Developed with Flask, providing RESTful APIs for product management, user authentication, and order processing.
- Implemented secure authentication using JWT and role-based access control.
- Payment Gateway:
- Integrated Stripe API for processing payments securely, supporting credit/debit cards and wallet payments.
- Containerization and Orchestration:
- Docker: Used to containerize the frontend, backend, and database services for consistent deployment across environments.
- Kubernetes (EKS): Deployed on AWS EKS for orchestration, enabling automated scaling, load balancing, and fault recovery.
- Database:
- PostgreSQL: Used to store user accounts, product data, and order histories.
- Redis: Integrated for caching frequently accessed data, reducing response times.
- Cloud Hosting:
- Hosted the application on AWS with the following components:
- S3: For storing product images and static assets.
- EKS: For managing the containerized application.
- RDS: Used for the PostgreSQL database.
Tech Stack
- Frontend: React.js, Redux, Material-UI
- Backend: Python (Flask), REST APIs
- Database: PostgreSQL, Redis (caching)
- Containerization: Docker, Kubernetes (AWS EKS)
- Payment Integration: Stripe API
- Cloud Services: AWS S3, AWS EKS, AWS RDS
- Tools Used:
- GitHub for version control.
- Postman for API testing.
- Helm for Kubernetes configuration management.
Timelines
The project was executed over 12 weeks:
- Week 1-3: Requirement gathering, architecture design, and tech stack setup.
- Week 4-7: Frontend and backend development.
- Week 8-10: Integration of payment gateway and Docker containerization.
- Week 11: Kubernetes deployment and scaling on AWS EKS.
- Week 12: Testing, bug fixing, and final deployment.