-
Notifications
You must be signed in to change notification settings - Fork 4
Domain Model
Nikolay Martyanov edited this page Nov 11, 2023
·
3 revisions
For an overview of Domain-Driven Design (DDD) and key terms used in this document, please refer to the DDD Overview
- User: A person who uses the application to explore or track visited regions and experiences.
- Visitor: A user who has not registered an account.
- Registered User: A user who has registered an account.
- Administrative Division: A specific administrative division, representing the formal geographic areas. The administrative divisions are structured hierarchically, meaning an administrative division can contain sub-divisions.
- Region: A conceptual or thematic grouping of Administrative Divisions or other Regions, based on criteria like cultural, geographical, or historical aspects. Can be visited by a user. Regions are structured hierarchically, meaning a region can contain sub-regions.
- Experience: An activity or sight that can be completed or seen in a region.
- Cultural Context: The cultural context associated with a specific experience. This includes the region(s) where a specific variation of the experience can be found and any relevant media sources (articles, podcasts, videos, etc.). Read more about cultural context on the Cultural Context page.
- Description: A person who uses the application. Can be a Registered User or a Visitor.
-
Attributes:
-
ID
: Unique identifier (For Registered Users) -
Username
: User's chosen name (For Registered Users, optional for Visitors) -
Role
: User's role in the application (Registered/Visitor)
-
- Description: A specific administrative division, representing the formal geographic areas.
-
Attributes:
-
ID
: Unique identifier -
Name
: Name of the administrative division -
ParentDivisionID
: ID of the parent division, if any -
HasSubdivisions
: Boolean flag indicating if this division has subdivisions
-
- Description: A conceptual or thematic grouping of Administrative Divisions or other Regions, based on various criteria. Can be visited by a user.
-
Attributes:
-
ID
: Unique identifier -
Name
: Name of the region -
Description
: Description of the region -
ParentRegionID
: ID of the parent region, if any -
HasSubregions
: Boolean flag indicating if this region has subregions
-
- Description: An activity or sight that can be completed or seen in a region.
-
Attributes:
-
ID
: Unique identifier -
Name
: Name of the experience -
CulturalContextID
: ID of associated cultural context -
RegionIDs
: IDs of the regions where the experience can be found
-
- Description: Represents a user's relationship with an administrative division. Can be unvisited, planned or visited.
-
Attributes:
-
UserID
: ID of the user -
AdminDivisionID
: ID of the administrative division -
Status
: Unvisited/Planned/Visited -
VisitDates
: Optional list of all visit dates -
NumberOfVisits
: Total number of visits
-
- Description: Represents a user's relationship with a region. Can be unvisited, planned or visited.
-
Attributes:
-
UserID
: ID of the user -
RegionID
: ID of the region -
Status
: Unvisited/Planned/Visited -
VisitDates
: Optional list of all visit dates -
NumberOfVisits
: Total number of visits
-
- Description: Represents a user's relationship with an experience. Can be either planned or completed.
-
Attributes:
-
UserID
: ID of the user -
ExperienceID
: ID of the experience -
RegionID
: ID of the region where the experience is located -
Status
: Planned/Completed -
CompletionDates
: Optional list of all completion dates -
NumberOfCompletions
: Total number of completions
-
- Description: Represents a specific region along with the experiences available in that region.
-
Consists of:
Region
- List of
Experience
-
Attributes:
-
RegionID
: ID of the associated region -
Experiences
: List of experiences available in the region
-
- Description: Represents the cultural context associated with a specific experience.
-
Attributes:
-
ID
: Unique identifier -
ExperienceID
: ID of the associated experience -
RegionIDs
: IDs of the associated regions -
Sources
: List of relevant media sources (articles, podcasts, videos, etc.)
-
- Description: A collection of regions and experiences that a user has interacted with or plans to interact with.
-
Consists of:
- List of
RegionReport
- List of
ExperienceReport
- List of
-
Attributes:
-
Visibility
: Public/Private (Determines if the journey can be seen by others) -
StartDate
: Optional start date of the journey -
EndDate
: Optional end date of the journey -
Status
: Planned/Ongoing/Completed
-
- Description: Triggered when a user marks an administrative division as visited or planned.
-
Attributes:
UserID
AdminDivisionID
- Effect: Triggers a check and potential update of the parent entity's visit status.
- Description: Triggered when a user marks a region as visited or planned.
-
Attributes:
UserID
RegionID
- Effect: Triggers a check and potential update of the parent entity's visit status.
- Description: Triggered when a user marks an experience as completed or planned.
-
Attributes:
UserID
ExperienceID
RegionID
The content of this wiki is licensed under a Creative Commons Attribution-NonCommercial (CC BY-NC) License.