Osnova predmetu PV179

Milestone 2

Milestone 2 Requirements:

  • Introduce a business layer to the application.
  • Ensure every team member:
    • Creates at least 1 meaningful service.
    • Tests at least 1 service from another member using mocking. Ensure tests are meaningful.
  • Set up a CI/CD pipeline for Merge requests.
  • Update GitLab settings to:
    • Allow only successful merge requests to be merged.
    • Require 1 approval for merging (effective from the start of working on 2nd milestone).
  • Integrate an Identity Framework:
    • Develop a separate MVC application for this.
    • For the current milestone, only implement authentication using the Identity Framework.
  • Develop Middleware to:
    • Transform API response to XML or JSON.
    • Default format should be JSON unless specified in the query parameter in the HTTP Accept header or in the query parameter (using only one of the options is sufficient).
  • Ensure that MVC and WebAPI are set up as separate projects, allowing them to:
    • Operate under different configurations.
    • Use different database setups.
    • Maintain clear boundaries, ensuring API endpoints are not accessible from MVC, and vice versa.
  • Merge request procedures:
    • All Merge Requests for Milestone 2 should merge to a "Milestone 2" branch.
    • Post milestone completion, request a merge from "Milestone 2" to master.
    • "Milestone 2" branch should merge to master only with teacher's approval.
  • Update Documentation:
    • Update the readme to match the current codebase.
  • Implement Audit Logging:
    • Track information about who edited the Product entity and how many times it was edited overall.


  • Change Request:
    • Client requests that data seeding be modified to use Bogus (or a similar NuGet package).
    • Client requests the ability to use images associated with products on the website and prefers that they be saved directly to the hard drive for easy access and management.
    • Client requests that log data from LogMiddleware be saved into a database.
      • Hint: A different database more suited for storing logs can be used.

      Deadline:

      • Milestone 2 - 20.11.2024
      • Milestone 2 Review - 28.11.2024