mikaelvesavuori/catalogist

View on GitHub
images/arkit.svg

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="441px" preserveAspectRatio="none" style="width:466px;height:441px;" version="1.1" viewBox="0 0 466 441" width="466px" zoomAndPan="magnify"><defs/><g><!--MD5=[aedc30b8666742a3000193d7e0a0b93e]
cluster Adapters--><path d="M74,24 L141,24 A4.5,4.5 0 0 1 144,27 L151,43.9688 L352,43.9688 A3,3 0 0 1 355,46.9688 L355,100 A3,3 0 0 1 352,103 L74,103 A3,3 0 0 1 71,100 L71,27 A3,3 0 0 1 74,24 " fill="#FFFFFF" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="71" x2="151" y1="43.9688" y2="43.9688"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="75" y="37.1387">Adapters</text><!--MD5=[5edfa7121972f9ed9fbf0a4c690ab7d6]
cluster Domain entities--><path d="M133,351 L247,351 A4.5,4.5 0 0 1 250,354 L257,370.9688 L257,370.9688 A3,3 0 0 1 260,373.9688 L260,422 A3,3 0 0 1 257,425 L133,425 A3,3 0 0 1 130,422 L130,354 A3,3 0 0 1 133,351 " fill="#FFFFFF" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="130" x2="257" y1="370.9688" y2="370.9688"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="114" x="134" y="364.1387">Domain entities</text><!--MD5=[3fe454f5ee662415b72b39d1d24abdcd]
cluster Domain value objects--><path d="M287,347 L441,347 A4.5,4.5 0 0 1 444,350 L451,366.9688 L451,366.9688 A3,3 0 0 1 454,369.9688 L454,426 A3,3 0 0 1 451,429 L287,429 A3,3 0 0 1 284,426 L284,350 A3,3 0 0 1 287,347 " fill="#FFFFFF" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="284" x2="451" y1="366.9688" y2="366.9688"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="154" x="288" y="360.1387">Domain value objects</text><!--MD5=[600c2d25b6889bd4e9f6b335204b22ae]
cluster Repositories--><path d="M25,136 L117,136 A4.5,4.5 0 0 1 120,139 L127,155.9688 L179,155.9688 A3,3 0 0 1 182,158.9688 L182,211 A3,3 0 0 1 179,214 L25,214 A3,3 0 0 1 22,211 L22,139 A3,3 0 0 1 25,136 " fill="#FFFFFF" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="127" y1="155.9688" y2="155.9688"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="92" x="26" y="149.1387">Repositories</text><!--MD5=[6326b81c113285a9d7424a8f38b27174]
cluster Usecases--><path d="M123,238 L191,238 A4.5,4.5 0 0 1 194,241 L201,257.9688 L378,257.9688 A3,3 0 0 1 381,260.9688 L381,311 A3,3 0 0 1 378,314 L123,314 A3,3 0 0 1 120,311 L120,241 A3,3 0 0 1 123,238 " fill="#FFFFFF" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="120" x2="201" y1="257.9688" y2="257.9688"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="68" x="124" y="251.1387">Usecases</text><ellipse cx="151.8986" cy="71.2797" fill="#F8F8F8" rx="64.3986" ry="15.2797" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="101.3986" y="74.7641">CreateRecord</text><ellipse cx="283.9787" cy="71.3957" fill="#F8F8F8" rx="54.9787" ry="13.3957" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="245.4787" y="74.8801">GetRecord</text><ellipse cx="194.7548" cy="395.8774" fill="#F8F8F8" rx="48.2548" ry="12.8774" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="162.7548" y="399.3618">Catalogist</text><!--MD5=[f00eee0d8599795d6915a015e1c4223a]
entity _Manifest--><rect fill="#F8F8F8" height="33.9688" rx="3" ry="3" style="stroke: #000000; stroke-width: 0.5;" width="72" x="300" y="379"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="310" y="400.1387">Manifest</text><ellipse cx="101.988" cy="183.1976" fill="#F8F8F8" rx="63.988" ry="15.1976" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="51.988" y="186.682">DynamoDbRepo</text><ellipse cx="194.8944" cy="284.0789" fill="#F8F8F8" rx="58.3944" ry="14.0789" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="151.8944" y="287.5633">createRecord</text><ellipse cx="315.169" cy="283.8774" fill="#F8F8F8" rx="49.669" ry="12.8774" style="stroke: #383838; stroke-width: 0.5;"/><text fill="#000000" font-family="Tahoma, sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="282.169" y="287.3618">getRecord</text><!--MD5=[ddfa77b7fc95038ecac62cc5bc05b8bd]
link createRecord to Catalogist--><path d="M195,298.05 C195,317.882 195,355.6276 195,377.7163 " fill="none" id="createRecord-&gt;Catalogist" style="stroke: #000000; stroke-width: 0.5;"/><polygon fill="#000000" points="195,382.9743,199,373.9743,195,377.9743,191,373.9743,195,382.9743" style="stroke: #000000; stroke-width: 0.5;"/><!--MD5=[a5ecdc7eb1b040d2c8448e1448da678c]
link createRecord to _Manifest--><path d="M211.174,297.618 C235.719,316.767 282.554,353.3048 311.355,375.7737 " fill="none" id="createRecord-&gt;_Manifest" style="stroke: #000000; stroke-width: 0.5;"/><polygon fill="#000000" points="315.469,378.983,310.8338,370.2931,311.5269,375.9073,305.9127,376.6005,315.469,378.983" style="stroke: #000000; stroke-width: 0.5;"/><!--MD5=[0690435b43267b1bd42c265b02342942]
link <b>CreateRecord</b> to createRecord--><path d="M160.081,87.11 C165.751,98.041 173.006,113.535 177,128 C190.305,176.183 193.781,235.432 194.686,264.763 " fill="none" id="&lt;b&gt;CreateRecord&lt;/b&gt;-&gt;createRecord" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="194.826,269.882,198.5777,260.7757,194.6889,264.8839,190.5807,260.9951,194.826,269.882" style="stroke: #000000; stroke-width: 1.0;"/><!--MD5=[15335a1244e506f185e988f5563f19a6]
link <b>CreateRecord</b> to DynamoDbRepo--><path d="M145.257,87.268 C136.286,106.914 120.419,141.663 110.597,163.172 " fill="none" id="&lt;b&gt;CreateRecord&lt;/b&gt;-&gt;DynamoDbRepo" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="108.478,167.813,115.8534,161.2859,110.5538,163.2643,108.5754,157.9646,108.478,167.813" style="stroke: #000000; stroke-width: 1.0;"/><!--MD5=[1ab66117465c22aa50da7db2d443254b]
link getRecord to Catalogist--><path d="M302.158,296.772 C280.234,316.869 235.618,357.767 211.447,379.9237 " fill="none" id="getRecord-&gt;Catalogist" style="stroke: #000000; stroke-width: 0.5;"/><polygon fill="#000000" points="207.75,383.3127,217.0873,380.18,211.4358,379.9341,211.6817,374.2826,207.75,383.3127" style="stroke: #000000; stroke-width: 0.5;"/><!--MD5=[c6d3fcecd7ff3f18590bc7f1cc578eb8]
link <b>GetRecord</b> to DynamoDbRepo--><path d="M265.344,84.23 C253.069,91.911 236.627,102.133 222,111 C190.236,130.256 153.436,151.937 129.05,166.218 " fill="none" id="&lt;b&gt;GetRecord&lt;/b&gt;-&gt;DynamoDbRepo" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="124.645,168.796,134.433,167.7024,128.9603,166.2705,130.3922,160.7979,124.645,168.796" style="stroke: #000000; stroke-width: 1.0;"/><!--MD5=[d79865b823c3a47758cccdac224d4cb8]
link <b>GetRecord</b> to getRecord--><path d="M285.846,85.037 C291.136,120.953 306.353,224.284 312.439,265.612 " fill="none" id="&lt;b&gt;GetRecord&lt;/b&gt;-&gt;getRecord" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="313.202,270.792,315.848,261.3052,312.4735,265.8454,307.9334,262.4708,313.202,270.792" style="stroke: #000000; stroke-width: 1.0;"/><script type="text/plantuml"><![CDATA[MD5=[aa9ef9c65ce189a91bc0dfd0e074caad]
@startuml

scale max 1920 width
top to bottom direction

skinparam nodesep 12
skinparam ranksep 24
skinparam monochrome true
skinparam shadowing false
skinparam defaultFontName Tahoma
skinparam defaultFontSize 12
skinparam roundCorner 6
skinparam dpi 150
skinparam arrowColor black
skinparam arrowThickness 0.5
skinparam packageTitleAlignment left

skinparam usecase {
  borderThickness 0.5
}

skinparam rectangle {
  borderThickness 0.5
}

skinparam component {
  borderThickness 1
}


package "Adapters" {
  (<b>CreateRecord</b>)
  (<b>GetRecord</b>)
}

package "Domain entities" {
  (Catalogist)
}

package "Domain value objects" {
  rectangle "Manifest" as _Manifest
}

package "Repositories" {
  (DynamoDbRepo)
}

package "Usecases" {
  (createRecord)
  (getRecord)
}

(createRecord) ---> (Catalogist)
(createRecord) ---> _Manifest
(<b>CreateRecord</b>) ----[thickness=1]> (createRecord)
(<b>CreateRecord</b>) ---[thickness=1]> (DynamoDbRepo)
(getRecord) ---> (Catalogist)
(<b>GetRecord</b>) ---[thickness=1]> (DynamoDbRepo)
(<b>GetRecord</b>) ----[thickness=1]> (getRecord)

@enduml


' View and edit on https://arkit.pro
]]></script></g></svg>