Skip to content

mvsouza/JsonDiffer

Repository files navigation

Json Differ Project

Archtecture overview

First of all I've "scratched" a package design solution to deliver the described assignment. Drawing is a good way to communicate my intent and clear some design assumptions. I would probably use a piece of paper or a whiteboard, but for later review I've put some extra effort to do it on a Plantuml.

Architecture

The architecture/design has MVC, CQS, DDD and event driven patterns. Also, used TDD, BDD, code clean practices.

On the VCS I've implemented a CI pipeline that builds the solution, run the unit and integration and code analyses, then, if every thing passes, it pushes a container to the staging environment.

To-do-List

Product managment and release

  • Problem analysis
  • Archtecture concept
  • Archtecture overview
  • CI pipeline
  • Backlog(Userstories)
  • Writte down Bdd Scenarios
    • Post JSON doc for Diff
      • Post valid json sides for right and left side
      • Post invalid json for right and left side
      • Post duplicated json for right and left side
    • Post request for JSON diff
      • Rest result for equal jsons
      • Rest result for different sizes jsons
      • Rest result for equal sizes and different jsons
      • Inform if the key wasn't posted
      • Inform if any side wasn't filled

Technical Tasks

  • Project setup
  • Review diagram
  • Remove fix messages from code
  • Setup a database for persistence
  • Find better response message format for identifying diff with different sizes
  • Create scripts to easyly do exploratory testing(swagger-codegen)
  • Refactor diffjson sides to reduce duplicated code

Pipeline metrics

Staging env

Heroku

Master

Build StatusBuild statuscodecov

Develop

Build StatusBuild statuscodecov

SonarCloud

Quality Gate SonarCloud Coverage SonarCloud Bugs SonarCloud Vulnerabilities SonarCloud Codesmels

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published