Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add subject and audit files #2234

Merged
merged 2 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions subjects/java/projects/buy-02/README.md
Original file line number Diff line number Diff line change
@@ -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.
73 changes: 73 additions & 0 deletions subjects/java/projects/buy-02/audit/README.md
Original file line number Diff line number Diff line change
@@ -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.
zanninso marked this conversation as resolved.
Show resolved Hide resolved