This project is an ecommerce API and web application built using Django, Django Rest Framework (DRF), and Angular. Users can browse and buy products online through a user-friendly interface. The API supports secure user authentication using JWT tokens stored in local storage, with custom token handling and decoding for user identification. Cross-Origin Resource Sharing (CORS) is also supported for cross-domain requests. The application is deployed on Google Cloud Platform (GCP) using Google Kubernetes Engine (GKE), and GitHub Actions is utilized for CI/CD.
A VIDEO TO THIS PROJECT IN ACTION => https://www.linkedin.com/feed/update/urn:li:activity:7063481349159948289/

- User authentication using JWT tokens
- JWT tokens are stored in local storage
- Custom token handling and decoding for user identification
- CORS support for cross-domain requests
- Category management system
- Product catalog with search and filter functionality
- User management system
- Checkout functionality
- Angular-based web application for a responsive user experience
- Deployment on GCP using GKE
- Continuous Integration and Continuous Deployment (CI/CD) using GitHub Actions
- Django
- Django Rest Framework (DRF)
- PostgreSQL database
- django-cors-headers
- Angular
- Node.js and npm
Refer to the README.md files inside the backend and frontend directories for the installation and setup instructions for each part.
The application is deployed on Google Cloud Platform using Google Kubernetes Engine. Refer to the official GCP documentation for information on deploying applications with GKE.

This project uses GitHub Actions for Continuous Integration and Continuous Deployment. The actions are defined in the .github/workflows/ directory. Please consult the official GitHub Actions documentation for guidance on setting up and configuring GitHub Actions for your project.
This README serves as a user manual and technical documentation for the project. Please refer to the README.md files inside the backend and frontend directories for the installation and setup instructions for each part.
For further information on working with Django and DRF, consult the Django documentation and the Django Rest Framework documentation, respectively.
For the frontend, refer to the Angular documentation for guidance on working with Angular, and the Node.js documentation for guidance on Node.js.
For implementing JWT authentication, refer to the Django Rest Framework SimpleJWT documentation for information on working with token-based authentication.
For the django-cors-headers library, consult the official documentation for guidance on setting up CORS support.
If you have any suggestions, improvements, or bugs to report, please open an issue or submit a pull request. All contributions are welcome!
This project is licensed under the MIT License. See the LICENSE file for more details.
- Mohamed Sorour - @mohamedsorour1998