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

Feat: Manage a Product #48

Closed
31 tasks done
mukunzidd opened this issue Apr 29, 2024 · 4 comments
Closed
31 tasks done

Feat: Manage a Product #48

mukunzidd opened this issue Apr 29, 2024 · 4 comments
Assignees
Labels
backend Good for newcomers vendor Vendor features

Comments

@mukunzidd
Copy link
Contributor

mukunzidd commented Apr 29, 2024

Description

As a vendor, I should be able to perform Create, Read, Update, and Delete (CRUD) operations on products in my collection, so that I can effectively manage my inventory and make products available for sale to buyers.

Acceptance Criteria

Create

  • Implement a seller product creation API endpoint
  • Validate the requesting user's role as a seller
  • Validate the request body (price, name, category, expiry date, bonus, etc.)
  • Check if the target item already exists in the seller's collection
  • If the item does not exist, add it to the seller's collection
  • If the item exists, return a response suggesting an update of stock levels
  • Implement error handling and appropriate response messages for validation failures
  • Implement input sanitization
  • Ensure the product has a reference to the associated seller
  • Handle product images as reference URLs in the database (4 - 8 images)

Read

  • Implement an API endpoint for retrieving a seller's product collection
  • Validate the requesting user's role as a seller
  • Retrieve and return the list of products associated with the seller
  • Implement pagination and filtering options (if necessary)
  • Implement error handling and appropriate response messages

Update

  • Implement an API endpoint for updating a seller's product details
  • Validate the requesting user's role as a seller
  • Validate the request payload (product ID, updated fields)
  • Retrieve the product from the database based on the provided product ID
  • Ensure the product belongs to the requesting seller
  • Update the product details in the database
  • Implement error handling and appropriate response messages for validation failures
  • Implement input sanitization

Delete

  • Implement an API endpoint for deleting a seller's product
  • Validate the requesting user's role as a seller
  • Validate the request payload (product ID)
  • Retrieve the product from the database based on the provided product ID
  • Ensure the product belongs to the requesting seller
  • Delete the product from the database
  • Implement error handling and appropriate response messages for validation failures
  • Implement input sanitization

Developer Notes

  • Document with Swagger
  • All inputs should be validated for sanity
  • Only reference URLs may be stored in the database for the case of file uploads
  • The product should have a reference to the seller

Related Issues

Definition of Done

  • CRUD API endpoints for seller product management are implemented and functional
  • Appropriate responses are sent to the requesting client based on scenarios
  • Validation checks are implemented for request body and user role
  • Product images are handled as reference URLs in the database
  • Products have a reference to the associated seller
  • Unit tests are written and passing
  • Code adheres to coding standards and best practices
  • API documentation with Swagger is completed
@mukunzidd mukunzidd added backend Good for newcomers vendor Vendor features labels May 8, 2024
@mukunzidd mukunzidd added this to the Product Management milestone May 8, 2024
@mukunzidd mukunzidd changed the title Feat: Vendor should be Able to Manage a Product Feat: Manage a Product May 8, 2024
MC-Knight added a commit that referenced this issue May 9, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
@aimedivin
Copy link
Contributor

aimedivin commented May 9, 2024

1. Deliverables at the end of the project.

By the end, vendors can easily manage products. They'll create, view, update, and delete products. We'll ensure only the right vendor (product owner) can make changes. Swagger helps us document everything neatly.

DEV NOTE (REQUIRED)

Document code using Swagger

2. Data flow / Flowchart / pseudocode / ERD diagrams

ER Diagram

diagram-export-5-9-2024-4_34_25-PM

Determine the Environments (tools)

  • Use Nodejs(expressJs)
  • Use Typescript
  • Use Multer
  • TypeORM (Postgres)

4. Schedule of implementation of the various parts

Below Tasks will be delivered by specified dates

  • Implementation plan by Thursday (9th/5/2024)
  • API Implementation by Thursday (9th/5/2024)
  • API Documentation and Unit Testing by Friday (10th/ 5/2024) 

5. Dependencies/Foreseen blockers from team members

None

6. External services or libraries to be used.

Cloudinary_logo      images

aimedivin pushed a commit that referenced this issue May 9, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
@Ndevu12 Ndevu12 mentioned this issue May 9, 2024
8 tasks
aimedivin pushed a commit that referenced this issue May 9, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
@faid-terence
Copy link
Collaborator

@aimedivin and @MC-Knight !
Your implementation plan looks good , just one question
Are you implementing the task in same branch or separate branch ??

@MC-Knight
Copy link
Contributor

@faid-terence on same branch

@faid-terence
Copy link
Collaborator

Alright !! You can start working

MC-Knight added a commit that referenced this issue May 9, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
MC-Knight added a commit that referenced this issue May 9, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
MC-Knight added a commit that referenced this issue May 10, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
MC-Knight added a commit that referenced this issue May 10, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
MC-Knight added a commit that referenced this issue May 10, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
aimedivin pushed a commit that referenced this issue May 11, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
aimedivin pushed a commit that referenced this issue May 11, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
aimedivin pushed a commit that referenced this issue May 11, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
faid-terence added a commit that referenced this issue May 12, 2024
elijahladdie pushed a commit that referenced this issue May 13, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

adding recommended products route
elijahladdie pushed a commit that referenced this issue May 13, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

adding recommended products route
elijahladdie pushed a commit that referenced this issue May 13, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
Ndevu12 pushed a commit that referenced this issue May 14, 2024
Ndevu12 pushed a commit that referenced this issue May 14, 2024
Ndevu12 pushed a commit that referenced this issue May 14, 2024
feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

adding recommended products route

 Author:    Ndevu12 <[email protected]>
Ndevu12 pushed a commit that referenced this issue May 14, 2024
--amend

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

ft<product availability status update> merge with main/master branch
feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

adding recommended products route

 Author:    Ndevu12 <[email protected]>

ft<product availability status> merging product availability status branch with master branch

Author:    Ndevu12  <[email protected]>

ft<product availability status> resolving conflict in  product availability status update feature
Ndevu12 pushed a commit that referenced this issue May 14, 2024
…t entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48
Ndevu12 pushed a commit that referenced this issue Jun 5, 2024
Implement user profile update feature

--amend

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

adding recommended products route

feat(product managment) add product managment this commit adds product entity with its relation of a vendor. it is used to implement product managment for vendor. Resolves: #48

ft<product-availability-status-update> enable vendor to update product availability status

removing console and sensitive data in reponse

Ft-implment-wish list-functionalites

Implementation of view a single product function

Implement buyer able to list all products

google authentication

Commits squashing into one commit

product search feature

feat(cart managment) add cart managment this commit adds cart entity, cart item entity with its relation of a guest/buyer user and product. it is used to implement cart managment for guest/buyer. Resolves: #88

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

increase test coverage

increasing test coverage

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

test coverage

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

test coverage

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

test coverage

test coverage

 This PR is for the addition of the chatbot

test coverage

test coverage

adding test cases for maximizing coverage

rebasing with develop

product search feature

feat(cart managment) add cart managment this commit adds cart entity, cart item entity with its relation of a guest/buyer user and product. it is used to implement cart managment for guest/buyer. Resolves: #88

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

increase test coverage

increasing test coverage

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

test coverage

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

test coverage

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

feat(docker): implement Docker for project

- Include Docker file to build image for project and containerize the project
- Configure Docker compose for easy setup

Implement buyer able to leave feedback on products

ft<discount-coupon> adding discount coupon feature

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

Feat-Buyer-coupon-discount-management

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

implementing order tracking and order managment issue

adding documentation and tests

writing tests

implementing stripe payment system

implementing stripe payment system

Implement buyer able to leave feedback on products

Implement buyer able to leave feedback on products

test coverage

test coverage

test coverage

test coverage

adding test cases for maximizing coverage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Good for newcomers vendor Vendor features
Projects
None yet
Development

No branches or pull requests

4 participants