{"configuration":{"scope":"SoftwareSystem"},"description":"A custom application aimed at streamlining the ordering process of any walkup scenario, along with the necessary back-office functionality.","documentation":{"decisions":[{"content":"The C4 model is a simple approach to creating maps of your code, at various levels of detail, in the same way you would use something like Google Maps to zoom in and out of an area you are interested in. The C4 model was created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"1","status":"Accepted","title":"Use the C4 model for the architecture model"}],"sections":[{"content":"This workspace contains the architecture model for the Coffee App, a custom application aimed at streamlining the ordering process of any walkup scenario, along with the necessary back-office functionality.","format":"Markdown","order":1,"title":""},{"content":"The model is based upon the C4 model and includes the following views: System Context, Containers, and Components.","format":"Markdown","order":2,"title":""}]},"id":1,"lastModifiedAgent":"structurizr-java/3.1.0","lastModifiedDate":"2024-11-16T00:12:54Z","lastModifiedUser":"pkonstantellos@pkonstantellos","model":{"people":[{"description":"A customer of the coffee shop","id":"1","location":"Unspecified","name":"Customer","relationships":[{"description":"Orders coffee","destinationId":"3","id":"4","sourceId":"1","tags":"Relationship","technology":"HTTP"},{"description":"Orders coffee","destinationId":"9","id":"14","sourceId":"1","tags":"Relationship","technology":"HTTP"}],"tags":"Element,Person,Customer"},{"description":"A barista at the coffee shop","id":"2","location":"Unspecified","name":"Barista","relationships":[{"description":"Makes coffee","destinationId":"3","id":"5","sourceId":"2","tags":"Relationship","technology":"HTTP"},{"description":"Manages orders","destinationId":"10","id":"15","sourceId":"2","tags":"Relationship","technology":"HTTP"}],"tags":"Element,Person,Barista"}],"softwareSystems":[{"containers":[{"description":"Allows customers to order coffee","documentation":{},"id":"9","name":"Ordering App","relationships":[{"description":"Makes API calls to","destinationId":"11","id":"16","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"23","id":"83","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"22","id":"86","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"26","id":"91","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"25","id":"95","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"27","id":"97","sourceId":"9","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"24","id":"102","sourceId":"9","tags":"Relationship","technology":"HTTP"}],"tags":"Element,Container,Web Application","technology":".NET"},{"description":"Allows baristas to manage orders","documentation":{},"id":"10","name":"Back office","relationships":[{"description":"Makes API calls to","destinationId":"11","id":"17","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Subscribe to order queue","destinationId":"13","id":"18","sourceId":"10","tags":"Relationship","technology":"AMQP"},{"description":"Uses","destinationId":"23","id":"84","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"22","id":"87","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"26","id":"92","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"25","id":"96","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"27","id":"98","sourceId":"10","tags":"Relationship","technology":"HTTP"},{"description":"Uses","destinationId":"24","id":"103","sourceId":"10","tags":"Relationship","technology":"HTTP"}],"tags":"Element,Container,Web Application","technology":".NET"},{"components":[{"description":"Controller for managing sugar types.  This controller provides methods to retrieve sugar types. ","documentation":{},"id":"22","name":"Sugar Type Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.controller.SugarTypeController","component.src":"com/theexperts/coffeeappbackend/web/controller/SugarTypeController.java"},"relationships":[{"destinationId":"33","id":"49","sourceId":"22","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/controller/SugarTypeController.java"},{"description":"Controller for managing products.  This controller provides methods to retrieve products. ","documentation":{},"id":"23","name":"Product Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.controller.ProductController","component.src":"com/theexperts/coffeeappbackend/web/controller/ProductController.java"},"relationships":[{"destinationId":"36","id":"50","sourceId":"23","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/controller/ProductController.java"},{"description":"Controller for managing orders.  This controller provides methods to create, update, and retrieve orders. ","documentation":{},"id":"24","name":"Order Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.controller.OrderController","component.src":"com/theexperts/coffeeappbackend/web/controller/OrderController.java"},"relationships":[{"destinationId":"29","id":"51","sourceId":"24","tags":"Relationship"},{"destinationId":"32","id":"52","sourceId":"24","tags":"Relationship"},{"destinationId":"30","id":"53","sourceId":"24","tags":"Relationship"},{"destinationId":"34","id":"54","sourceId":"24","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/controller/OrderController.java"},{"description":"Controller for managing contacts.  This controller provides methods to create, update, and retrieve contacts. ","documentation":{},"id":"25","name":"Contact Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.controller.ContactController","component.src":"com/theexperts/coffeeappbackend/web/controller/ContactController.java"},"relationships":[{"destinationId":"34","id":"55","sourceId":"25","tags":"Relationship"},{"destinationId":"29","id":"56","sourceId":"25","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/controller/ContactController.java"},{"description":"Controller for managing extra types.  This controller provides methods to retrieve extra types. ","documentation":{},"id":"26","name":"Extra Type Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.controller.ExtraTypeController","component.src":"com/theexperts/coffeeappbackend/web/controller/ExtraTypeController.java"},"relationships":[{"destinationId":"35","id":"57","sourceId":"26","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/controller/ExtraTypeController.java"},{"description":"Controller for managing authentication.  This controller provides methods to authenticate users, create users, and reset passwords. ","documentation":{},"id":"27","name":"Authentication Controller","properties":{"component.type":"com.theexperts.coffeeappbackend.web.security.web.AuthenticationController","component.src":"com/theexperts/coffeeappbackend/web/security/web/AuthenticationController.java"},"relationships":[{"destinationId":"28","id":"58","sourceId":"27","tags":"Relationship"}],"tags":"Element,Component,Spring MVC Controller","technology":"Spring MVC Controller","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/web/security/web/AuthenticationController.java"},{"description":"Service interface for managing users.","documentation":{},"id":"28","name":"User Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.UserService","component.src":"com/theexperts/coffeeappbackend/business/UserService.java"},"relationships":[{"destinationId":"44","id":"59","sourceId":"28","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing newsletter subscriptions.","documentation":{},"id":"29","name":"Newsletter Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.NewsletterService","component.src":"com/theexperts/coffeeappbackend/business/NewsletterService.java"},"relationships":[{"destinationId":"41","id":"60","sourceId":"29","tags":"Relationship"},{"destinationId":"34","id":"61","sourceId":"29","tags":"Relationship"},{"destinationId":"31","id":"62","sourceId":"29","tags":"Relationship"},{"destinationId":"47","id":"63","sourceId":"29","tags":"Relationship"},{"destinationId":"37","id":"64","sourceId":"29","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing customers.","documentation":{},"id":"30","name":"Customer Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.CustomerService","component.src":"com/theexperts/coffeeappbackend/business/CustomerService.java"},"relationships":[{"destinationId":"39","id":"65","sourceId":"30","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing email templates.","documentation":{},"id":"31","name":"Email Template Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.EmailTemplateService","component.src":"com/theexperts/coffeeappbackend/business/EmailTemplateService.java"},"relationships":[{"destinationId":"40","id":"66","sourceId":"31","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing orders.","documentation":{},"id":"32","name":"Order Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.OrderService","component.src":"com/theexperts/coffeeappbackend/business/OrderService.java"},"relationships":[{"destinationId":"43","id":"67","sourceId":"32","tags":"Relationship"},{"destinationId":"42","id":"68","sourceId":"32","tags":"Relationship"},{"destinationId":"39","id":"69","sourceId":"32","tags":"Relationship"},{"destinationId":"46","id":"70","sourceId":"32","tags":"Relationship"},{"destinationId":"31","id":"71","sourceId":"32","tags":"Relationship"},{"destinationId":"48","id":"72","sourceId":"32","tags":"Relationship"},{"destinationId":"38","id":"73","sourceId":"32","tags":"Relationship"},{"destinationId":"45","id":"74","sourceId":"32","tags":"Relationship"},{"destinationId":"37","id":"75","sourceId":"32","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing sugar types.","documentation":{},"id":"33","name":"Sugar Type Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.SugarTypeService","component.src":"com/theexperts/coffeeappbackend/business/SugarTypeService.java"},"relationships":[{"destinationId":"42","id":"76","sourceId":"33","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service interface for managing contacts.","documentation":{},"id":"34","name":"Contact Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.ContactService","component.src":"com/theexperts/coffeeappbackend/business/ContactService.java"},"relationships":[{"destinationId":"41","id":"77","sourceId":"34","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing extra types.","documentation":{},"id":"35","name":"Extra Type Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.ExtraTypeService","component.src":"com/theexperts/coffeeappbackend/business/ExtraTypeService.java"},"relationships":[{"destinationId":"43","id":"78","sourceId":"35","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for managing products.","documentation":{},"id":"36","name":"Product Service","properties":{"component.type":"com.theexperts.coffeeappbackend.business.ProductService","component.src":"com/theexperts/coffeeappbackend/business/ProductService.java"},"relationships":[{"destinationId":"46","id":"79","sourceId":"36","tags":"Relationship"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Service for sending emails.","documentation":{},"id":"37","name":"Mail Service","properties":{"component.type":"com.theexperts.coffeeappbackend.mail.MailService","component.src":"com/theexperts/coffeeappbackend/mail/MailService.java"},"relationships":[{"description":"Sends emails using","destinationId":"6","id":"80","sourceId":"37","tags":"Relationship","technology":"HTTP"}],"tags":"Element,Component,Business Service","technology":"Business Service"},{"description":"Repository for managing orders.","documentation":{},"id":"38","name":"Orders Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.OrdersRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/OrdersRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"88","sourceId":"38","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/OrdersRepository.java"},{"description":"Repository for managing customers.","documentation":{},"id":"39","name":"Customer Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.CustomerRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/CustomerRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"90","sourceId":"39","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/CustomerRepository.java"},{"description":"Repository for managing email templates.","documentation":{},"id":"40","name":"Email Template Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.EmailTemplateRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/EmailTemplateRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"101","sourceId":"40","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/EmailTemplateRepository.java"},{"description":"Repository for managing contacts.","documentation":{},"id":"41","name":"Contact Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.ContactRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/ContactRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"99","sourceId":"41","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/ContactRepository.java"},{"description":"Repository for managing sugar types.","documentation":{},"id":"42","name":"Sugar Types Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.SugarTypesRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/SugarTypesRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"100","sourceId":"42","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/SugarTypesRepository.java"},{"description":"Repository for managing extra types.","documentation":{},"id":"43","name":"Extra Types Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.ExtraTypesRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/ExtraTypesRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"81","sourceId":"43","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/ExtraTypesRepository.java"},{"description":"Repository for managing users.","documentation":{},"id":"44","name":"User Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.UserRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/UserRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"85","sourceId":"44","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/UserRepository.java"},{"description":"Repository for managing order items.","documentation":{},"id":"45","name":"Order Items Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.OrderItemsRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/OrderItemsRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"93","sourceId":"45","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/OrderItemsRepository.java"},{"description":"Repository for managing products.","documentation":{},"id":"46","name":"Product Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.ProductRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/ProductRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"82","sourceId":"46","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/ProductRepository.java"},{"description":"Repository for managing subscription schemes.","documentation":{},"id":"47","name":"Subscription Scheme Repository","properties":{"component.type":"com.theexperts.coffeeappbackend.persistence.repository.SubscriptionSchemeRepository","component.src":"com/theexperts/coffeeappbackend/persistence/repository/SubscriptionSchemeRepository.java"},"relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"94","sourceId":"47","tags":"Relationship","technology":"JDBC"}],"tags":"Element,Component,JPA Repository","technology":"JPA Repository","url":"https://github.com/the-experts/coffee-app/blob/main/coffee-app-api/coffee-app-backend/src/main/java/com/theexperts/coffeeappbackend/persistence/repository/SubscriptionSchemeRepository.java"},{"description":"Service for managing message bus.","documentation":{},"id":"48","name":"Message Bus","properties":{"component.type":"com.theexperts.coffeeappbackend.business.MessageBus","component.src":"com/theexperts/coffeeappbackend/business/MessageBus.java"},"relationships":[{"description":"Publishes messages to","destinationId":"13","id":"89","sourceId":"48","tags":"Relationship","technology":"AMQP"}],"tags":"Element,Component,Business Service","technology":"Business Service"}],"description":"Provides ordering and queue management functionality.","documentation":{},"id":"11","name":"backend API","relationships":[{"description":"Reads from and writes to","destinationId":"12","id":"19","sourceId":"11","tags":"Relationship","technology":"SQL/TCP"},{"description":"Sends emails using","destinationId":"6","id":"20","sourceId":"11","tags":"Relationship","technology":"HTTP"},{"description":"Publish orders to","destinationId":"13","id":"21","sourceId":"11","tags":"Relationship","technology":"AMQP"}],"tags":"Element,Container,API","technology":"JAVA"},{"description":"Stores information about customers, orders, and coffee types","documentation":{},"id":"12","name":"Database","tags":"Element,Container,Database","technology":"SQL Server"},{"description":"Manages the order queue","documentation":{},"id":"13","name":"Queue","tags":"Element,Container,Queue","technology":"RabbitMQ"}],"description":"Allows customers to order coffee and streamlines the ordering process","documentation":{"decisions":[{"content":"The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"2","status":"Accepted","title":"Use the Spring framework for the backend API"},{"content":"The Java Persistence API is a Java application programming interface specification that describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"3","status":"Accepted","title":"Use the Java Persistence API for the database access"},{"content":"Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"4","status":"Accepted","title":"Use SQL Server for the database"},{"content":"RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, MQ Telemetry Transport, and other protocols.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"5","status":"Accepted","title":"Use RabbitMQ for the queue"},{"content":"SendGrid is a Denver, Colorado-based customer communication platform for transactional and marketing email. The company was founded by Isaac Saldana, Jose Lopez, and Tim Jenkins in 2009, and incubated through the TechStars accelerator program.","date":"2024-11-15T00:00:00Z","format":"Markdown","id":"6","status":"Accepted","title":"Use Sendgrid for sending emails"}],"sections":[{"content":"The Coffee App is a custom application aimed at streamlining the ordering process of any walkup scenario, along with the necessary back-office functionality.","format":"Markdown","order":1,"title":""}]},"id":"3","location":"Unspecified","name":"Coffee App","relationships":[{"description":"Sends emails using","destinationId":"6","id":"7","interactionStyle":"Synchronous","sourceId":"3","tags":"Relationship,Synchronous","technology":"HTTP"}],"tags":"Element,Software System"},{"description":"Sends emails to customers","documentation":{},"id":"6","location":"Unspecified","name":"E-mail system","relationships":[{"description":"Sends order confirmation to","destinationId":"1","id":"8","interactionStyle":"Asynchronous","sourceId":"6","tags":"Relationship,Asynchronous","technology":"E-mail"}],"tags":"Element,Software System,External System"}]},"name":"Coffee App","properties":{"structurizr.inspection.model.relationship[component->component].technology":"info","structurizr.inspection.model.softwaresystem.decisions":"warning","structurizr.inspection.model.relationship[component->component].description":"info","structurizr.inspection.model.softwaresystem.documentation":"warning"},"views":{"componentViews":[{"containerId":"11","description":"Component diagram","dimensions":{"height":4481,"width":8127},"elements":[{"id":"1","x":4195,"y":325},{"id":"2","x":4960,"y":325},{"id":"6","x":1935,"y":390},{"id":"9","x":4185,"y":899},{"id":"10","x":4935,"y":899},{"id":"12","x":3549,"y":3980},{"id":"13","x":7477,"y":2509},{"id":"22","x":4185,"y":1499},{"id":"23","x":5685,"y":1499},{"id":"24","x":3035,"y":1482},{"id":"25","x":1581,"y":1482},{"id":"26","x":4935,"y":1499},{"id":"27","x":6352,"y":1499},{"id":"28","x":6347,"y":2064},{"id":"29","x":1559,"y":2074},{"id":"30","x":2494,"y":2054},{"id":"31","x":1410,"y":2913},{"id":"32","x":3414,"y":2049},{"id":"33","x":4188,"y":2071},{"id":"34","x":525,"y":2118},{"id":"35","x":4948,"y":2066},{"id":"36","x":5682,"y":2064},{"id":"37","x":1919,"y":2524},{"id":"38","x":3724,"y":2939},{"id":"39","x":2550,"y":2933},{"id":"40","x":1895,"y":3218},{"id":"41","x":220,"y":2918},{"id":"42","x":4203,"y":2946},{"id":"43","x":4973,"y":2946},{"id":"44","x":6337,"y":2929},{"id":"45","x":3174,"y":2944},{"id":"46","x":5672,"y":2944},{"id":"47","x":880,"y":2918},{"id":"48","x":6752,"y":2509}],"externalContainerBoundariesVisible":false,"key":"Components","order":3,"relationships":[{"id":"100"},{"id":"101","vertices":[{"x":1659,"y":3610},{"x":3069,"y":3730},{"x":3364,"y":3855}]},{"id":"102"},{"id":"103","vertices":[{"x":4785,"y":1199}]},{"id":"14"},{"id":"15"},{"id":"18","vertices":[{"x":7507,"y":1289}]},{"id":"49"},{"id":"50"},{"id":"51"},{"id":"52"},{"id":"53"},{"id":"54","vertices":[{"x":2763,"y":1642},{"x":1338,"y":2112}]},{"id":"55","vertices":[{"x":1348,"y":2107}]},{"id":"56"},{"id":"57"},{"id":"58"},{"id":"59"},{"id":"60","vertices":[{"x":550,"y":2588}]},{"id":"61","vertices":[{"x":1508,"y":2097},{"x":1353,"y":2107}]},{"id":"62"},{"id":"63"},{"id":"64"},{"id":"65"},{"id":"66"},{"id":"67","vertices":[{"x":4117,"y":2499},{"x":4872,"y":2694}]},{"id":"68","vertices":[{"x":4122,"y":2499}]},{"id":"69","vertices":[{"x":2898,"y":2642}]},{"id":"70","vertices":[{"x":4092,"y":2489},{"x":5532,"y":2869}]},{"id":"71","vertices":[{"x":2609,"y":2814}]},{"id":"72","vertices":[{"x":4122,"y":2499}]},{"id":"73","vertices":[{"x":3633,"y":2582}]},{"id":"74","vertices":[{"x":3633,"y":2577}]},{"id":"75","vertices":[{"x":2903,"y":2637}]},{"id":"76"},{"id":"77","vertices":[{"x":555,"y":2558}]},{"id":"78"},{"id":"79"},{"id":"8"},{"id":"80"},{"id":"81","vertices":[{"x":3959,"y":3840}]},{"id":"82","vertices":[{"x":5259,"y":3460},{"x":4274,"y":3650},{"x":3959,"y":3840}]},{"id":"83","vertices":[{"x":4785,"y":1199},{"x":5535,"y":1395}]},{"id":"84"},{"id":"85","vertices":[{"x":6309,"y":3330},{"x":5254,"y":3460},{"x":4279,"y":3650},{"x":3959,"y":3840}]},{"id":"86"},{"id":"87"},{"id":"88"},{"id":"89"},{"id":"90","vertices":[{"x":2589,"y":3320},{"x":3054,"y":3725},{"x":3339,"y":3845}]},{"id":"91"},{"id":"92"},{"id":"93"},{"id":"94","vertices":[{"x":1009,"y":3530},{"x":1659,"y":3610},{"x":1984,"y":3635},{"x":3064,"y":3730},{"x":3334,"y":3840}]},{"id":"95","vertices":[{"x":3322,"y":1274},{"x":2962,"y":1344}]},{"id":"96","vertices":[{"x":4785,"y":1199},{"x":2937,"y":1349}]},{"id":"97","vertices":[{"x":4785,"y":1199},{"x":6285,"y":1395}]},{"id":"98","vertices":[{"x":6285,"y":1395}]},{"id":"99","vertices":[{"x":999,"y":3530},{"x":2159,"y":3655},{"x":3064,"y":3730},{"x":3354,"y":3850}]}]}],"configuration":{"branding":{},"lastSavedView":"Components","styles":{"elements":[{"background":"#4169e1","color":"#ffffff","fontSize":32,"height":400,"shape":"Person","tag":"Person","width":400},{"background":"#1168bd","color":"#ffffff","fontSize":32,"height":300,"shape":"RoundedBox","tag":"Software System","width":450},{"background":"#438dd5","color":"#ffffff","fontSize":32,"height":300,"shape":"RoundedBox","tag":"Container","width":450},{"background":"#85bbf0","color":"#ffffff","fontSize":32,"height":300,"shape":"RoundedBox","tag":"Component","width":450},{"background":"#438dd5","color":"#ffffff","fontSize":32,"height":300,"shape":"WebBrowser","tag":"Web Application","width":450},{"background":"#438dd5","color":"#ffffff","fontSize":32,"height":300,"shape":"Pipe","tag":"Queue","width":450},{"background":"#08427b","color":"#ffffff","fontSize":32,"height":400,"shape":"Person","tag":"Customer","width":400},{"background":"#999999","color":"#ffffff","fontSize":32,"height":400,"shape":"Person","tag":"Barista","width":400},{"background":"#999999","color":"#ffffff","fontSize":32,"height":300,"shape":"RoundedBox","tag":"External System","width":450},{"background":"#438dd5","color":"#ffffff","fontSize":32,"height":300,"shape":"Cylinder","tag":"Database","width":450}]},"terminology":{}},"containerViews":[{"description":"Container diagram","dimensions":{"height":2620,"width":2504},"elements":[{"id":"1","x":854,"y":183},{"id":"2","x":1604,"y":183},{"id":"6","x":130,"y":1385},{"id":"9","x":854,"y":783},{"id":"10","x":1604,"y":783},{"id":"11","x":1075,"y":1383},{"id":"12","x":854,"y":1983},{"id":"13","x":1604,"y":1983}],"externalSoftwareSystemBoundariesVisible":false,"key":"Containers","order":2,"paperSize":"A3_Portrait","relationships":[{"id":"14"},{"id":"15"},{"id":"16"},{"id":"17"},{"id":"18"},{"id":"19"},{"id":"20"},{"id":"21"},{"id":"8","vertices":[{"x":575,"y":710}]}],"softwareSystemId":"3"}],"systemContextViews":[{"description":"System diagram","dimensions":{"height":2016,"width":1520},"elements":[{"id":"1","x":912,"y":208},{"id":"2","x":212,"y":208},{"id":"3","x":208,"y":908},{"id":"6","x":546,"y":1508}],"enterpriseBoundaryVisible":true,"key":"SystemContext","order":1,"paperSize":"A5_Portrait","relationships":[{"id":"4"},{"id":"5"},{"id":"7"},{"id":"8"}],"softwareSystemId":"3"}]}}