forked from arch8s/spring-2022
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspotlight-c4.dsl
111 lines (90 loc) · 4.19 KB
/
spotlight-c4.dsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
workspace {
model {
communityLeader = person "Community Leader" " " "Community Leader"
npoAdmin = person "NPO Admin"
npoMentor = person "Mentor"
candidate = person "Candidate"
enterprise "Digital Council" {
matcherService = softwareSystem "Matches Candidates to NPOs"
assessmentService = softwareSystem "Assesses NPOs and Candidates"
spotlightPlatform = softwareSystem "Spotlight Platform" {
spa = container "Single Page Application" {
communityLeader -> this "Supports and Reviews NPOs"
npoAdmin -> this "Register NPO, publish content, manages mentors"
}
mobileapp = container "Mobile Application" {
npoMentor -> this "Supports Candidates, setup Career Roadmaps ..."
candidate -> this "Applies for and consumes services"
}
api = container "Spotlight API" {
mobileapp -> this "request"
spa -> this "request"
}
database = container "Database" {
api -> this "Reads from and writes to"
}
npo = container "NPO" {
npoAssessments = component "NPO Assessments"
volunteerAssessments = component "Volunteer Assessments" "Manages assessments for candidates"
npoRecommendations = component "NPO recommendations" ""
npoServices = component "NPO services" ""
MentorSearch = component "Mentor Search" ""
}
community = container "Community" {
communities = component "Communities" ""
communityLeaders = component "Community Leaders" ""
events = component "Events" "Manages events (weekly spotlights, masterminds, AMA session"
ratings = component "Ratings" ""
taxonomy = component "Taxonomy" ""
profanity = component "Profanity checks" ""
}
engagement = container "Engagement" {
Contests = component "Contests" ""
Meetings = component "Meetings" ""
Messengers = component "Messengers" ""
Notifications = component "Notifications" ""
Bragging = component "Bragging" ""
}
documentExchange = container "Document Exchange" {
documentRendering = component "Document rendering" ""
documentParsing = component "Document parsing" ""
aecureDocumentStorage = component "Secure Document Storage" ""
}
reportingContainer = container "Reporting" {
reportingComponent = component "Reporting" ""
analytics = component "Analytics" ""
tracking = component "Tracking" ""
}
candidateContainer = container "Candidate" {
candidates = component "Candidates" ""
roadmaps = component "Roadmaps" ""
candidateAssessments = component "Candidate Assessments" ""
}
externalServices = container "External services" {
headlessCMS = component "Headless CMS" ""
googleAI = component "Google Calendar API" ""
communityAPI = component "Community API" ""
}
}
}
# relationships between people and software systems
# communityLeader -> spotlightPlatform "Does screening NPOs, helps NPOs"
# npoAdmin -> spotlightPlatform "Register NPO, publish content, manages mentors"
}
views {
systemContext spotlightPlatform {
include *
# autolayout lr
}
container spotlightPlatform {
include *
# autolayout lr
}
theme default
styles {
element Database {
shape Cylinder
}
}
}
}