Created
July 16, 2025 11:58
-
-
Save alexandre-touret/e0b7dfea74ff6d3483e439865e08b4eb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| workspace { | |
| model { | |
| properties { | |
| "structurizr.groupSeparator" "/" | |
| } | |
| user = person "Traveller" { | |
| tags "Person" "traveller" "localOrg" | |
| description "A person who travels and uses the sustainable travel system." | |
| } | |
| organization = softwareSystem "Sustainable Travel Organization" { | |
| tags "Person" "localOrg" | |
| description "An organization that promotes and manages sustainable travel initiatives." | |
| } | |
| serviceProvider = softwareSystem "Sustainable Travel Service Provider" { | |
| tags "Person" "serviceProvider" | |
| description "A service provider that offers sustainable travel options and services." | |
| } | |
| iotDevice = softwareSystem "IoT Device" { | |
| tags "external" "iot" | |
| description "An IoT device that provides real-time data related to travel." | |
| } | |
| travelSystem = softwareSystem "Sustainable Travel System" { | |
| tags "internal" | |
| description "A system that provides information and services related to sustainable travel." | |
| group "Traveller Services" { | |
| travellerPortal = container "Traveller Portal" { | |
| description "A web portal for travellers to access sustainable travel options." | |
| technology "Web Application" | |
| tags "internal" "portal" "traveller" | |
| } | |
| preferencesService = container "Preferences Service" { | |
| description "A service that manages traveller preferences for sustainable travel." | |
| technology "REST API" | |
| tags "internal" "traveller" | |
| } | |
| gamificationService = container "Gamification Service" { | |
| description "A service that provides gamification features for travellers." | |
| technology "REST API" | |
| tags "internal" "traveller" | |
| } | |
| gamificationDatabase = container "Gamification Database" { | |
| description "A database that stores gamification data for travellers." | |
| technology "Relational Database" | |
| tags "internal" "database" "traveller" | |
| } | |
| preferencesDatabase = container "Preferences Database" { | |
| description "A database that stores traveller preferences for sustainable travel." | |
| technology "Relational Database" | |
| tags "internal" "database" "traveller" | |
| } | |
| } | |
| group "Booking" { | |
| bookingService = container "Booking Service" { | |
| description "A service that manages bookings for sustainable travel activities." | |
| technology "REST API" | |
| tags "internal" "traveller" "localOrg" "serviceProvider" | |
| } | |
| bookingDatabase = container "Booking Database" { | |
| description "A database that stores booking information for sustainable travel activities." | |
| technology "Relational Database" | |
| tags "internal" "database" "traveller" | |
| } | |
| } | |
| group "Carbon Footprint Monitoring" { | |
| iotDeviceGateway = container "IoT Device Gateway" { | |
| description "An IoT device gateway." | |
| technology "MQTT" | |
| tags "internal" "messaging" "iot" | |
| } | |
| iotDeviceStatisticsBatch = container "IoT Device Statistics" { | |
| description "A service that processes and analyzes data from IoT devices." | |
| technology "Stream Processing" | |
| tags "internal" "iot" | |
| } | |
| carbonEfficiencyService = container "Carbon Efficiency Service" { | |
| description "A service that calculates and provides carbon efficiency metrics." | |
| technology "REST API" | |
| tags "internal" "traveller" "iot" "serviceProvider" | |
| } | |
| iotDeviceDatabase = container "IoT Device Database" { | |
| description "A database that stores IoT device data." | |
| technology "Relational Database" | |
| tags "internal" "database" "iot" | |
| } | |
| } | |
| group "Local Organization Services" { | |
| organizationPortal = container "Organization Portal" { | |
| description "A web portal for the organization to manage sustainable travel initiatives." | |
| technology "Web Application" | |
| tags "internal" "portal" "localOrg" | |
| } | |
| participantManagementService = container "Participant Management Service" { | |
| description "Handles participant registration, management, and project progress tracking." | |
| technology "REST API" | |
| tags "internal" "localOrg" | |
| } | |
| projectDatabase = container "Project Database" { | |
| description "Stores information about sustainable travel projects and participants." | |
| technology "Relational Database" | |
| tags "internal" "database" "localOrg" | |
| } | |
| communicationService = container "Communication Service" { | |
| description "Enables communication between organizations and interested travellers." | |
| technology "Messaging Service" | |
| tags "internal" "messaging" "localOrg" | |
| } | |
| } | |
| group "Service Provider Profile" { | |
| serviceProviderPortal = container "Service Provider Portal" { | |
| description "A web portal for service providers to manage their profiles and offers." | |
| technology "Web Application" | |
| tags "internal" "portal" "serviceProvider" | |
| } | |
| serviceProviderService = container "Service Provider Management Service" { | |
| description "Manages registration, presentation, and eco-certification of service providers (accommodations, guides, local producers)." | |
| technology "Web Application" | |
| tags "internal" "portal" "serviceProvider" | |
| } | |
| ecoSolidarityPackageService = container "Eco-Solidarity Package Service" { | |
| description "Allows providers to propose eco-solidarity packages including ecological activities." | |
| technology "REST API" | |
| tags "internal" "serviceProvider" | |
| } | |
| ecoSolidarityPackageDatabase = container "Eco-Solidarity Package Database" { | |
| description "Stores eco-solidarity package information." | |
| technology "Relational Database" | |
| tags "internal" "database" "serviceProvider" | |
| } | |
| ecologicalEngagementIndicators = container "Ecological Engagement Indicators" { | |
| description "Provides indicators of the ecological commitment of service providers." | |
| technology "REST API" | |
| tags "internal" "serviceProvider" | |
| } | |
| } | |
| group "Transaction Management" { | |
| donationService = container "Donation Service" { | |
| description "Handles donations for sustainable travel projects." | |
| technology "REST API" | |
| tags "internal" "traveller" "localOrg" | |
| } | |
| paymentService = container "Payment Service" { | |
| description "Handles payments and transactions for sustainable travel activities." | |
| technology "REST API" | |
| tags "internal" "traveller" "localOrg" | |
| } | |
| } | |
| } | |
| psp = softwareSystem "Payment Service Provider" { | |
| tags "external" "localOrg" "traveller" | |
| } | |
| user -> travellerPortal "Searches for sustainable travel, Proposes activities, browse, update options" "HTTPS" | |
| organization -> travelSystem "Publish Probono activities, Manage participants, Communication with travellers" | |
| serviceProvider -> travelSystem "Publish activities & Offers, Manage bookings, Provide information" | |
| travelSystem -> psp "Handle payments & Donations, Process transactions" | |
| iotDevice -> iotDeviceGateway "Provides real-time data on travel conditions, environmental impact, etc." | |
| travellerPortal -> gamificationService "Provides gamification features for travellers" "REST" | |
| gamificationService -> gamificationDatabase "Stores gamification data for travellers" "JDBC" | |
| // travellerPortal | |
| travellerPortal -> bookingService "Manages bookings for sustainable travel activities" "REST" | |
| bookingService -> bookingDatabase "Stores and retrieves booking information" "JDBC" | |
| travellerPortal -> preferencesService "Manages traveller preferences for sustainable travel" "REST" | |
| preferencesService -> preferencesDatabase "Stores and retrieves traveller preferences" "JDBC" | |
| iotDeviceStatisticsBatch -> iotDeviceGateway "Gets real-time data to the IoT device gateway" "MQTT" | |
| iotDeviceStatisticsBatch -> iotDeviceDatabase "Stores IoT device statistics" "JDBC" | |
| carbonEfficiencyService -> iotDeviceDatabase "Accesses IoT device data for carbon efficiency metrics" "JDBC" | |
| travellerPortal -> carbonEfficiencyService "Accesses carbon efficiency metrics" "REST" | |
| organization -> organizationPortal "Manages sustainable travel initiatives" "HTTPS" | |
| organizationPortal -> donationService "Handles donations for sustainable travel projects" "REST" | |
| donationService -> psp "Handles donations for sustainable travel projects" "REST" | |
| organizationPortal -> participantManagementService "Manages participant registration and project progress" "REST" | |
| participantManagementService -> projectDatabase "Stores information about sustainable travel projects and participants" "JDBC" | |
| communicationService -> organization "Enables communication between organizations and interested travellers" "Messaging" | |
| communicationService -> user "Enables communication between organizations and interested travellers" "Messaging" | |
| participantManagementService -> bookingService "Manages bookings for sustainable travel activities" "REST" | |
| serviceProvider -> serviceProviderPortal "Manages service provider profiles and offers" "HTTPS" | |
| serviceProviderPortal -> serviceProviderService "Manages service provider profiles and offers" "HTTPS" | |
| ecoSolidarityPackageService -> serviceProviderService "Allows providers to propose eco-solidarity packages" "REST" | |
| ecologicalEngagementIndicators -> carbonEfficiencyService "Provides indicators of ecological commitment" "REST" | |
| serviceProviderPortal -> ecoSolidarityPackageService "Allows providers to propose eco-solidarity packages" "REST" | |
| serviceProviderPortal -> ecologicalEngagementIndicators "Provides indicators of ecological commitment" "REST" | |
| serviceProviderService -> bookingService "Manages bookings for sustainable travel activities" "REST" | |
| ecoSolidarityPackageService -> ecoSolidarityPackageDatabase "Stores eco-solidarity package information" "JDBC" | |
| travellerPortal -> donationService "Handles donations for sustainable travel projects" "REST" | |
| travellerPortal -> paymentService "Handles payments and transactions for sustainable travel activities" "REST" | |
| paymentService -> psp "Processes payments and transactions" "REST" | |
| psp -> paymentService "Callback" "REST" | |
| psp -> donationService "Callback" "REST" | |
| paymentService -> bookingService "Confirm bookings and transactions" "REST" | |
| bookingService -> gamificationService "Updates gamification data based on bookings" "REST" | |
| donationService -> gamificationService "Updates gamification data based on donations" "REST" | |
| participantManagementService -> communicationService "Sends notifications to participants" "Messaging" | |
| bookingService -> communicationService "Sends booking confirmations and updates" "Messaging" | |
| serviceProviderService -> communicationService "Sends notifications about projects" "Messaging" | |
| gamificationService -> communicationService "Sends gamification updates to travellers" "Messaging" | |
| } | |
| views { | |
| systemContext travelSystem "ContextView" { | |
| include * | |
| } | |
| container travelSystem "ContainerView" { | |
| include * | |
| } | |
| filtered "ContainerView" include "Relationship,traveller" "TravellerPortal" | |
| filtered "ContainerView" include "Relationship,iot" "CarbonEfficiencyMonitoring" | |
| filtered "ContainerView" include "Relationship,localOrg" "LocalOrganizationPortal" | |
| filtered "ContainerView" include "Relationship,serviceProvider" "ServiceProvider" | |
| filtered "ContainerView" include "Element,Relationship" "landscape-all" | |
| styles { | |
| element "external" { | |
| shape RoundedBox | |
| } | |
| element "internal" { | |
| background #1168bd | |
| color #ffffff | |
| shape RoundedBox | |
| } | |
| element "Person" { | |
| shape person | |
| background #08427b | |
| color #ffffff | |
| } | |
| element "database" { | |
| shape cylinder | |
| } | |
| element "messaging" { | |
| shape pipe | |
| } | |
| element "portal" { | |
| shape WebBrowser | |
| } | |
| } | |
| } | |
| configuration { | |
| scope softwaresystem | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment