You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zanninso e7054b5077
Con 2194 fix bad diagrame rendring related to issue 2229 (#2233)
8 months ago
..
audit docs: add subject and audit files (#2152) 9 months ago
Database-Design.png docs: add database diagrame as image to the subject (#2230) 8 months ago
README.md Con 2194 fix bad diagrame rendring related to issue 2229 (#2233) 8 months ago

README.md

Microservices with Angular

Objectives

Develop an end-to-end e-commerce platform with Spring Boot microservices and Angular. The platform should support user registration (either as a client or seller), authentication, product CRUD functionality exclusively for sellers, and media management for product images.

Instructions

1. Microservices Setup

  • Set up your microservice architecture. Consider Kafka for services communications.

2. Enhanced Database Design

DataBase Design

3. API Development Enhancement

  • User Microservice:

    • Users can register as clients or sellers, with sellers having the option to upload an avatar.
    • Authentication and profile management functions should be available.
  • Product Microservice:

    • CRUD operations for products, with only authenticated sellers being able to create/update/delete their products.
    • Products should support an associated list of images.
  • Media Microservice:

    • Handle media uploads with a size limit of 2MB.
    • Ensure only legitimate image files are uploaded.

4. Front-end Development with Angular

  • Sign-In/Up Pages: Implement authentication views. Sellers should have the option to upload/update their avatar.
  • Seller Product Management: A dashboard where sellers can manage their products, including uploading images.
  • Product Listing: A simple view to display all products without filtering or search capabilities.
  • Media Management: A dedicated view for sellers to manage and upload media specifically for their products. Ensure appropriate file size and type validation.

5. Authentication & Authorization

  • Implement role-based authentication.
  • Use Spring Security with JWT or OAuth2 to distinguish between clients and sellers, ensuring only sellers can manage products and their associated media.

6. Error Handling and Validation

  • Provide feedback for incorrect file types or when exceeding the upload size limit.
  • Handle cases like a client trying to add a product or a seller trying to modify another seller's product.
  • Provide validation for all forms in the application.

7. Security Measures

  • HTTPS Encryption: Always use HTTPS to encrypt data in transit. Consider tools like Let's Encrypt for free SSL certificates.
  • Sensitive Information Protection: Protect sensitive user information. Passwords and other details should never be exposed in API responses.
  • Password Security: Use Spring Security to hash and salt passwords before saving them in the MongoDB database.
  • Access Control: Ensure only the seller who created a product can modify or delete it and manage its media.

Testing

Emphasize testing:

  • Role-based functionalities.
  • Media upload constraints.
  • Authentication flows.
  • Data integrity for product and media management by sellers.

Resources

Spring Boot Microservices Guide Spring Cloud Eureka Service Discovery Client Setup
Let's Encrypt for ssl(HTTPS)