## Project Title: Completing the E-Commerce Platform ### Objectives In this final project, you will complete the development of your e-commerce platform by implementing essential features such as the shopping cart, user profiles with order history, and search/filtering functionality. This project will bring together all the components you've developed in previous projects into a fully functional e-commerce web application. Additionally, you will follow best practices in software development. ### Instructions #### 1. Database Design - Add the necessary tables and fields to complete this project. #### 2. Best Practices Ecosystem Familiarity - Follow a collaborative development process by opening PRs for new changes and features. - Conduct code reviews for each PR to ensure code quality, security, and best practices. - Leverage the CI/CD pipeline with Jenkins to automatically build, test, and deploy PRs. - Ensure that all PRs are reviewed, approved, and integrated into the main codebase. #### 3. API Development Enhancement **Orders MicroService:** - Implement orders page to follow the order status. - List the orders for both users and sellers using a search functionality. - Implement orders management to remove, cancel, or redo orders. **User Profile:** - Develop a user profile section where users can see their best products, most buying products, and how much money they spent. - Develop a seller profile section where they can see their best-selling products and how much money they gained. **Search and Filtering:** - Implement search functionality that enables users to search for products based on keywords. - Add filtering options to refine product searches. **Shopping Cart Implementation:** - Create a shopping cart functionality that allows users to add products to their cart. - Enable users to complete the purchase of the selected products in the shopping cart by selecting the "pay on delivery" feature. **Code Quality and Best Practices:** - Utilize SonarQube to ensure code quality and adherence to best practices. - Address any code quality issues reported by SonarQube in your PRs. - Document the improvements made based on SonarQube feedback. #### 4. Front-end Development with Angular - Enhance the user interface to ensure a seamless and user-friendly shopping experience. - Implement responsive design to support various devices and screen sizes. #### 5. Error Handling and Validation - Implement proper error handling and validation for user interactions. #### 6. Security Measures - Apply the same security measures from the first part of the project. ### Bonus As an additional challenge, you could consider implementing the following features. Note that these are not required for the completion of the project but would provide additional learning opportunities: - Implement a wishlist feature where users can save products for future purchase. - Add different payment methods. ### Testing Your project will be assessed based on the following criteria: - Successful implementation of the shopping cart, user profile, and search/filtering functionality. - User-friendly and responsive design. - Proper documentation of the new features. - Thorough testing to ensure all features work as expected. - Adherence to best practices in software development, including unit testing, code quality checks, and code reviews.