Skip to content

Commit 3dca2a0

Browse files
committed
docs: Draw simple server architecture
1 parent cf9c0fb commit 3dca2a0

File tree

2 files changed

+218
-0
lines changed

2 files changed

+218
-0
lines changed

assets/server-architecture.drawio

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" version="27.1.6">
2+
<diagram id="iL4jE_p9wWQc-arIfbbN" name="페이지-1">
3+
<mxGraphModel dx="2578" dy="1426" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="2" value="External Services" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
8+
<mxGeometry x="8" y="784" width="1675" height="104" as="geometry" />
9+
</mxCell>
10+
<mxCell id="3" value="Client Application" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
11+
<mxGeometry x="419" y="8" width="188" height="54" as="geometry" />
12+
</mxCell>
13+
<mxCell id="4" value="Web Server" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
14+
<mxGeometry x="363" y="134" width="141" height="54" as="geometry" />
15+
</mxCell>
16+
<mxCell id="5" value="Application Logic" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
17+
<mxGeometry x="612" y="261" width="183" height="54" as="geometry" />
18+
</mxCell>
19+
<mxCell id="6" value="Database" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
20+
<mxGeometry x="653" y="531" width="126" height="54" as="geometry" />
21+
</mxCell>
22+
<mxCell id="7" value="Auth Service" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
23+
<mxGeometry x="168" y="658" width="150" height="54" as="geometry" />
24+
</mxCell>
25+
<mxCell id="8" value="Submission Service" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
26+
<mxGeometry x="1244" y="387" width="195" height="54" as="geometry" />
27+
</mxCell>
28+
<mxCell id="9" value="Contest Service" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
29+
<mxGeometry x="588" y="658" width="171" height="54" as="geometry" />
30+
</mxCell>
31+
<mxCell id="10" value="OAuth Provider" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
32+
<mxGeometry x="43" y="809" width="168" height="54" as="geometry" />
33+
</mxCell>
34+
<mxCell id="11" value="Token Management" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
35+
<mxGeometry x="461" y="809" width="197" height="54" as="geometry" />
36+
</mxCell>
37+
<mxCell id="12" value="Compilation Service" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
38+
<mxGeometry x="1132" y="809" width="203" height="54" as="geometry" />
39+
</mxCell>
40+
<mxCell id="13" value="Testing Framework" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1">
41+
<mxGeometry x="1453" y="809" width="195" height="54" as="geometry" />
42+
</mxCell>
43+
<mxCell id="14" value="Submit Problem" style="curved=1;startArrow=none;endArrow=block;exitX=0.17;exitY=1;entryX=0.3;entryY=0.01;" parent="1" source="3" target="4" edge="1">
44+
<mxGeometry relative="1" as="geometry">
45+
<Array as="points">
46+
<mxPoint x="367" y="98" />
47+
</Array>
48+
</mxGeometry>
49+
</mxCell>
50+
<mxCell id="15" value="View Problems" style="curved=1;startArrow=none;endArrow=block;exitX=0.52;exitY=1;entryX=0.77;entryY=0.01;" parent="1" source="3" target="4" edge="1">
51+
<mxGeometry relative="1" as="geometry">
52+
<Array as="points">
53+
<mxPoint x="523" y="98" />
54+
</Array>
55+
</mxGeometry>
56+
</mxCell>
57+
<mxCell id="16" value="Participate in Contests" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.74;entryX=1;entryY=0.36;" parent="1" source="3" target="4" edge="1">
58+
<mxGeometry relative="1" as="geometry">
59+
<Array as="points">
60+
<mxPoint x="975" y="98" />
61+
</Array>
62+
</mxGeometry>
63+
</mxCell>
64+
<mxCell id="17" value="Validate Input" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.81;entryX=0.5;entryY=0;" parent="1" source="4" target="5" edge="1">
65+
<mxGeometry relative="1" as="geometry">
66+
<Array as="points">
67+
<mxPoint x="703" y="225" />
68+
</Array>
69+
</mxGeometry>
70+
</mxCell>
71+
<mxCell id="18" value="Fetch Problems" style="curved=1;startArrow=none;endArrow=block;exitX=0.53;exitY=1.01;entryX=0;entryY=0.2;" parent="1" source="4" target="6" edge="1">
72+
<mxGeometry relative="1" as="geometry">
73+
<Array as="points">
74+
<mxPoint x="445" y="225" />
75+
<mxPoint x="445" y="486" />
76+
</Array>
77+
</mxGeometry>
78+
</mxCell>
79+
<mxCell id="19" value="User Authentication" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.87;entryX=0.39;entryY=-0.01;" parent="1" source="4" target="7" edge="1">
80+
<mxGeometry relative="1" as="geometry">
81+
<Array as="points">
82+
<mxPoint x="204" y="225" />
83+
<mxPoint x="204" y="621" />
84+
</Array>
85+
</mxGeometry>
86+
</mxCell>
87+
<mxCell id="20" value="Create Problem" style="curved=1;startArrow=none;endArrow=block;exitX=0.13;exitY=1;entryX=0;entryY=0.01;" parent="1" source="5" target="6" edge="1">
88+
<mxGeometry relative="1" as="geometry">
89+
<Array as="points">
90+
<mxPoint x="547" y="351" />
91+
<mxPoint x="547" y="486" />
92+
</Array>
93+
</mxGeometry>
94+
</mxCell>
95+
<mxCell id="21" value="Update Problem" style="curved=1;startArrow=none;endArrow=block;exitX=0.45;exitY=1;entryX=0.41;entryY=0;" parent="1" source="5" target="6" edge="1">
96+
<mxGeometry relative="1" as="geometry">
97+
<Array as="points">
98+
<mxPoint x="684" y="351" />
99+
<mxPoint x="684" y="486" />
100+
</Array>
101+
</mxGeometry>
102+
</mxCell>
103+
<mxCell id="22" value="Delete Problem" style="curved=1;startArrow=none;endArrow=block;exitX=0.83;exitY=1;entryX=0.89;entryY=0;" parent="1" source="5" target="6" edge="1">
104+
<mxGeometry relative="1" as="geometry">
105+
<Array as="points">
106+
<mxPoint x="846" y="351" />
107+
<mxPoint x="846" y="486" />
108+
</Array>
109+
</mxGeometry>
110+
</mxCell>
111+
<mxCell id="23" value="Fetch User Submissions" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.66;entryX=0.5;entryY=0;" parent="1" source="5" target="8" edge="1">
112+
<mxGeometry relative="1" as="geometry">
113+
<Array as="points">
114+
<mxPoint x="1341" y="351" />
115+
</Array>
116+
</mxGeometry>
117+
</mxCell>
118+
<mxCell id="24" value="Handle Contest Management" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.82;entryX=0;entryY=0.17;" parent="1" source="5" target="9" edge="1">
119+
<mxGeometry relative="1" as="geometry">
120+
<Array as="points">
121+
<mxPoint x="367" y="351" />
122+
<mxPoint x="367" y="621" />
123+
</Array>
124+
</mxGeometry>
125+
</mxCell>
126+
<mxCell id="25" value="Store Submission Data" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.83;entryX=1;entryY=0.14;" parent="1" source="8" target="6" edge="1">
127+
<mxGeometry relative="1" as="geometry">
128+
<Array as="points">
129+
<mxPoint x="948" y="486" />
130+
</Array>
131+
</mxGeometry>
132+
</mxCell>
133+
<mxCell id="26" value="Manage Contest Schedule" style="curved=1;startArrow=none;endArrow=block;exitX=0.64;exitY=-0.01;entryX=0.54;entryY=1;" parent="1" source="9" target="6" edge="1">
134+
<mxGeometry relative="1" as="geometry">
135+
<Array as="points">
136+
<mxPoint x="728" y="621" />
137+
</Array>
138+
</mxGeometry>
139+
</mxCell>
140+
<mxCell id="27" value="Update Contest Status" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.09;entryX=1;entryY=0.86;" parent="1" source="9" target="6" edge="1">
141+
<mxGeometry relative="1" as="geometry">
142+
<Array as="points">
143+
<mxPoint x="924" y="621" />
144+
</Array>
145+
</mxGeometry>
146+
</mxCell>
147+
<mxCell id="28" value="Serve Problem Statements" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.27;entryX=1;entryY=0.69;" parent="1" source="6" target="3" edge="1">
148+
<mxGeometry relative="1" as="geometry">
149+
<Array as="points">
150+
<mxPoint x="1078" y="486" />
151+
<mxPoint x="1078" y="98" />
152+
</Array>
153+
</mxGeometry>
154+
</mxCell>
155+
<mxCell id="29" value="Store User Data" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.68;entryX=0.63;entryY=-0.01;" parent="1" source="6" target="7" edge="1">
156+
<mxGeometry relative="1" as="geometry">
157+
<Array as="points">
158+
<mxPoint x="289" y="621" />
159+
</Array>
160+
</mxGeometry>
161+
</mxCell>
162+
<mxCell id="30" value="Store Contest Data" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.82;entryX=0.02;entryY=-0.01;" parent="1" source="6" target="9" edge="1">
163+
<mxGeometry relative="1" as="geometry">
164+
<Array as="points">
165+
<mxPoint x="481" y="621" />
166+
</Array>
167+
</mxGeometry>
168+
</mxCell>
169+
<mxCell id="31" value="Social Media Login" style="curved=1;startArrow=none;endArrow=block;exitX=0.17;exitY=0.99;entryX=0.5;entryY=0;" parent="1" source="7" target="10" edge="1">
170+
<mxGeometry relative="1" as="geometry">
171+
<Array as="points">
172+
<mxPoint x="127" y="748" />
173+
</Array>
174+
</mxGeometry>
175+
</mxCell>
176+
<mxCell id="32" value="JWT Issuance" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.77;entryX=0.5;entryY=0;" parent="1" source="7" target="11" edge="1">
177+
<mxGeometry relative="1" as="geometry">
178+
<Array as="points">
179+
<mxPoint x="560" y="748" />
180+
</Array>
181+
</mxGeometry>
182+
</mxCell>
183+
<mxCell id="33" value="Compile Submission" style="curved=1;startArrow=none;endArrow=block;exitX=0.03;exitY=1;entryX=0.15;entryY=0;" parent="1" source="8" target="12" edge="1">
184+
<mxGeometry relative="1" as="geometry">
185+
<Array as="points">
186+
<mxPoint x="1098" y="486" />
187+
<mxPoint x="1098" y="784" />
188+
</Array>
189+
</mxGeometry>
190+
</mxCell>
191+
<mxCell id="34" value="Run Test Cases" style="curved=1;startArrow=none;endArrow=block;exitX=0.73;exitY=1;entryX=0.27;entryY=0;" parent="1" source="8" target="13" edge="1">
192+
<mxGeometry relative="1" as="geometry">
193+
<Array as="points">
194+
<mxPoint x="1463" y="486" />
195+
<mxPoint x="1463" y="784" />
196+
</Array>
197+
</mxGeometry>
198+
</mxCell>
199+
<mxCell id="35" value="Return Compilation Results" style="curved=1;startArrow=none;endArrow=block;exitX=0.64;exitY=0;entryX=0.4;entryY=1;" parent="1" source="12" target="8" edge="1">
200+
<mxGeometry relative="1" as="geometry">
201+
<Array as="points">
202+
<mxPoint x="1290" y="784" />
203+
<mxPoint x="1290" y="486" />
204+
</Array>
205+
</mxGeometry>
206+
</mxCell>
207+
<mxCell id="36" value="Return Test Results" style="curved=1;startArrow=none;endArrow=block;exitX=0.65;exitY=0;entryX=1;entryY=0.99;" parent="1" source="13" target="8" edge="1">
208+
<mxGeometry relative="1" as="geometry">
209+
<Array as="points">
210+
<mxPoint x="1606" y="784" />
211+
<mxPoint x="1606" y="486" />
212+
</Array>
213+
</mxGeometry>
214+
</mxCell>
215+
</root>
216+
</mxGraphModel>
217+
</diagram>
218+
</mxfile>

assets/server-architecture.png

146 KB
Loading

0 commit comments

Comments
 (0)