From 7e24547f935041e53bff72005bac9759b41251b6 Mon Sep 17 00:00:00 2001 From: zanninso Date: Tue, 3 Oct 2023 01:10:51 +0100 Subject: [PATCH 1/2] docs: add subject and audit files --- subjects/java/projects/buy-02/README.md | 77 +++++++++++++++++++ subjects/java/projects/buy-02/audit/README.md | 73 ++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 subjects/java/projects/buy-02/README.md create mode 100644 subjects/java/projects/buy-02/audit/README.md diff --git a/subjects/java/projects/buy-02/README.md b/subjects/java/projects/buy-02/README.md new file mode 100644 index 0000000000..eaad476ae0 --- /dev/null +++ b/subjects/java/projects/buy-02/README.md @@ -0,0 +1,77 @@ +## 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. diff --git a/subjects/java/projects/buy-02/audit/README.md b/subjects/java/projects/buy-02/audit/README.md new file mode 100644 index 0000000000..1ab2242392 --- /dev/null +++ b/subjects/java/projects/buy-02/audit/README.md @@ -0,0 +1,73 @@ +#### Functional + +##### Verify that the necessary tables, fields, relations are added. + +###### Has the database design been correctly implemented? + +###### Have the students added new relationships and have they used them correctly? + +###### Did the students convince you with their additions to the database? + +##### Review the project repository to check for PRs and code reviews. + +###### Are developers following a collaborative development process with PRs and code reviews? + +##### Check the implementation of Orders MicroService, User Profile, Search and Filtering, and Shopping Cart functionalities. + +###### Are the implemented functionalities consistent with the project instructions? + +###### Are the implemented functionalities clean and do they not pop up any errors or warnings in both back and front end? + +##### Add products to the shopping cart and refresh the page. + +###### Are the added products still in the shopping cart with the selected quantities? + +##### Utilize SonarQube to assess code quality and check for improvements based on SonarQube feedback. + +###### Are code quality issues identified by SonarQube being addressed and fixed? + +##### Review the user interface to ensure it's user-friendly and responsive. + +###### Does the application provide a seamless and responsive user experience? + +##### Check if proper error handling and validation mechanisms are in place. + +###### Are user interactions handled gracefully with appropriate error messages? + +##### Verify the implementation of security measures as specified in the project instructions. + +###### Are security measures consistently applied throughout the application? + +### Collaboration and Development Process + +##### Check the repository's PR history and comments to ensure code reviews are conducted. + +###### Are code reviews being performed for each PR? + +##### Inspect the CI/CD pipeline configuration with Jenkins to ensure automated builds, tests, and deployments. + +###### Is the CI/CD pipeline correctly set up and being utilized for PRs? + +##### Examine the repository log and PR merges to ensure that branches are being merged as instructed. + +###### Are branches merged correctly, and is the main codebase up-to-date? + +##### Run a full test of the application to assess functionality and identify any issues. + +###### Does the application pass a comprehensive test to ensure that all new features work as expected? + +##### Inspect the codebase for unit tests related to different parts of the application. + +###### Are there unit tests in place for critical parts of the application? + +#### Bonus + +##### Verify if the wishlist feature, if implemented, functions correctly. + +###### Is the wishlist feature functioning as expected? + +##### Check if different payment methods, if implemented, work as intended. + +###### Are the implemented payment methods functioning correctly? + +This audit checklist provides a comprehensive assessment of the project, ensuring that best practices, code reviews, and testing are followed. Auditors should thoroughly examine each aspect mentioned in the project instructions to assess compliance and quality. From cea2e8d864831101e70c34bc1574f3252939f2e0 Mon Sep 17 00:00:00 2001 From: zanninso Date: Mon, 9 Oct 2023 09:38:33 +0100 Subject: [PATCH 2/2] docs: remove useless coment --- subjects/java/projects/buy-02/audit/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/subjects/java/projects/buy-02/audit/README.md b/subjects/java/projects/buy-02/audit/README.md index 1ab2242392..3ffa401474 100644 --- a/subjects/java/projects/buy-02/audit/README.md +++ b/subjects/java/projects/buy-02/audit/README.md @@ -69,5 +69,3 @@ ##### Check if different payment methods, if implemented, work as intended. ###### Are the implemented payment methods functioning correctly? - -This audit checklist provides a comprehensive assessment of the project, ensuring that best practices, code reviews, and testing are followed. Auditors should thoroughly examine each aspect mentioned in the project instructions to assess compliance and quality.