File size: 26,026 Bytes
da43f5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: ProcessFlowDiagram Pages: 1 -->
<svg width="1218pt" height="1813pt"
 viewBox="0.00 0.00 1218.34 1813.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 1777)">
<title>ProcessFlowDiagram</title>
<polygon fill="white" stroke="transparent" points="-36,36 -36,-1777 1182.34,-1777 1182.34,36 -36,36"/>
<!-- Start Registration Process -->
<g id="node1" class="node">
<title>Start Registration Process</title>
<ellipse fill="#a8e6cf" stroke="black" cx="708.34" cy="-1723" rx="133.78" ry="18"/>
<text text-anchor="middle" x="708.34" y="-1719.3" font-family="Times,serif" font-size="14.00">Start Registration Process</text>
</g>
<!-- user_access_form -->
<g id="node2" class="node">
<title>user_access_form</title>
<path fill="#b8d4f1" stroke="black" d="M938.43,-1636C938.43,-1636 577.32,-1636 577.32,-1636 571.32,-1636 559.68,-1633.95 554.04,-1631.9 554.04,-1631.9 477.53,-1604.1 477.53,-1604.1 471.89,-1602.05 472.25,-1600 478.25,-1600 478.25,-1600 839.36,-1600 839.36,-1600 845.36,-1600 857,-1602.05 862.64,-1604.1 862.64,-1604.1 939.16,-1631.9 939.16,-1631.9 944.79,-1633.95 944.43,-1636 938.43,-1636"/>
<text text-anchor="middle" x="708.34" y="-1614.3" font-family="Times,serif" font-size="14.00">User Accesses Registration Form</text>
</g>
<!-- Start Registration Process&#45;&gt;user_access_form -->
<g id="edge1" class="edge">
<title>Start Registration Process&#45;&gt;user_access_form</title>
<path fill="none" stroke="#4a4a4a" d="M708.34,-1704.71C708.34,-1704.71 708.34,-1646.08 708.34,-1646.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="711.84,-1646.08 708.34,-1636.08 704.84,-1646.08 711.84,-1646.08"/>
<text text-anchor="middle" x="743.34" y="-1668" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">User Request</text>
</g>
<!-- collect_user_data -->
<g id="node3" class="node">
<title>collect_user_data</title>
<path fill="#bebebe" stroke="black" d="M794.84,-1531C794.84,-1531 621.84,-1531 621.84,-1531 615.84,-1531 609.84,-1525 609.84,-1519 609.84,-1519 609.84,-1507 609.84,-1507 609.84,-1501 615.84,-1495 621.84,-1495 621.84,-1495 794.84,-1495 794.84,-1495 800.84,-1495 806.84,-1501 806.84,-1507 806.84,-1507 806.84,-1519 806.84,-1519 806.84,-1525 800.84,-1531 794.84,-1531"/>
<text text-anchor="middle" x="708.34" y="-1509.3" font-family="Times,serif" font-size="14.00">Collect Registration Data</text>
</g>
<!-- user_access_form&#45;&gt;collect_user_data -->
<g id="edge2" class="edge">
<title>user_access_form&#45;&gt;collect_user_data</title>
<path fill="none" stroke="#4a4a4a" d="M708.34,-1599.71C708.34,-1599.71 708.34,-1541.08 708.34,-1541.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="711.84,-1541.08 708.34,-1531.08 704.84,-1541.08 711.84,-1541.08"/>
<text text-anchor="middle" x="749.34" y="-1563" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Form Displayed</text>
</g>
<!-- validate_input_format -->
<g id="node4" class="node">
<title>validate_input_format</title>
<path fill="#bebebe" stroke="black" d="M782.84,-1426C782.84,-1426 633.84,-1426 633.84,-1426 627.84,-1426 621.84,-1420 621.84,-1414 621.84,-1414 621.84,-1402 621.84,-1402 621.84,-1396 627.84,-1390 633.84,-1390 633.84,-1390 782.84,-1390 782.84,-1390 788.84,-1390 794.84,-1396 794.84,-1402 794.84,-1402 794.84,-1414 794.84,-1414 794.84,-1420 788.84,-1426 782.84,-1426"/>
<text text-anchor="middle" x="708.34" y="-1404.3" font-family="Times,serif" font-size="14.00">Validate Input Format</text>
</g>
<!-- collect_user_data&#45;&gt;validate_input_format -->
<g id="edge3" class="edge">
<title>collect_user_data&#45;&gt;validate_input_format</title>
<path fill="none" stroke="#4a4a4a" d="M708.34,-1494.71C708.34,-1494.71 708.34,-1436.08 708.34,-1436.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="711.84,-1436.08 708.34,-1426.08 704.84,-1436.08 711.84,-1436.08"/>
<text text-anchor="middle" x="748.84" y="-1458" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Data Submitted</text>
</g>
<!-- is_format_valid -->
<g id="node5" class="node">
<title>is_format_valid</title>
<path fill="#fff9c4" stroke="black" d="M696.47,-1319.26C696.47,-1319.26 597.72,-1304.74 597.72,-1304.74 591.78,-1303.87 591.78,-1302.13 597.72,-1301.26 597.72,-1301.26 696.47,-1286.74 696.47,-1286.74 702.4,-1285.87 714.28,-1285.87 720.21,-1286.74 720.21,-1286.74 818.96,-1301.26 818.96,-1301.26 824.9,-1302.13 824.9,-1303.87 818.96,-1304.74 818.96,-1304.74 720.21,-1319.26 720.21,-1319.26 714.28,-1320.13 702.4,-1320.13 696.47,-1319.26"/>
<text text-anchor="middle" x="708.34" y="-1299.3" font-family="Times,serif" font-size="14.00">Is Format Valid?</text>
</g>
<!-- validate_input_format&#45;&gt;is_format_valid -->
<g id="edge4" class="edge">
<title>validate_input_format&#45;&gt;is_format_valid</title>
<path fill="none" stroke="#4a4a4a" d="M708.34,-1389.71C708.34,-1389.71 708.34,-1331.08 708.34,-1331.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="711.84,-1331.08 708.34,-1321.08 704.84,-1331.08 711.84,-1331.08"/>
<text text-anchor="middle" x="759.84" y="-1353" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Validation Complete</text>
</g>
<!-- check_email_exists -->
<g id="node6" class="node">
<title>check_email_exists</title>
<path fill="#bebebe" stroke="black" d="M701.34,-1216C701.34,-1216 497.34,-1216 497.34,-1216 491.34,-1216 485.34,-1210 485.34,-1204 485.34,-1204 485.34,-1192 485.34,-1192 485.34,-1186 491.34,-1180 497.34,-1180 497.34,-1180 701.34,-1180 701.34,-1180 707.34,-1180 713.34,-1186 713.34,-1192 713.34,-1192 713.34,-1204 713.34,-1204 713.34,-1210 707.34,-1216 701.34,-1216"/>
<text text-anchor="middle" x="599.34" y="-1194.3" font-family="Times,serif" font-size="14.00">Check if Email Already Exists</text>
</g>
<!-- is_format_valid&#45;&gt;check_email_exists -->
<g id="edge5" class="edge">
<title>is_format_valid&#45;&gt;check_email_exists</title>
<path fill="none" stroke="#4a4a4a" d="M649.72,-1293.31C649.72,-1293.31 649.72,-1226.02 649.72,-1226.02"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="653.22,-1226.02 649.72,-1216.02 646.22,-1226.02 653.22,-1226.02"/>
<text text-anchor="middle" x="694.84" y="-1248" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Valid Format</text>
</g>
<!-- rate_limit_check -->
<g id="node21" class="node">
<title>rate_limit_check</title>
<path fill="#fff9c4" stroke="black" d="M885.38,-1005C885.38,-1005 694.97,-989 694.97,-989 688.99,-988.5 688.99,-987.5 694.97,-987 694.97,-987 885.38,-971 885.38,-971 891.36,-970.5 903.32,-970.5 909.3,-971 909.3,-971 1099.71,-987 1099.71,-987 1105.69,-987.5 1105.69,-988.5 1099.71,-989 1099.71,-989 909.3,-1005 909.3,-1005 903.32,-1005.5 891.36,-1005.5 885.38,-1005"/>
<text text-anchor="middle" x="897.34" y="-984.3" font-family="Times,serif" font-size="14.00">Check Registration Rate Limit</text>
</g>
<!-- is_format_valid&#45;&gt;rate_limit_check -->
<g id="edge6" class="edge">
<title>is_format_valid&#45;&gt;rate_limit_check</title>
<path fill="none" stroke="#4a4a4a" d="M771.96,-1294.25C771.96,-1294.25 771.96,-1005.7 771.96,-1005.7"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="775.46,-1005.7 771.96,-995.7 768.46,-1005.7 775.46,-1005.7"/>
<text text-anchor="middle" x="835.34" y="-1143" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Invalid Format</text>
</g>
<!-- email_already_exists -->
<g id="node7" class="node">
<title>email_already_exists</title>
<path fill="#fff9c4" stroke="black" d="M430.39,-1109.87C430.39,-1109.87 264.26,-1094.13 264.26,-1094.13 258.28,-1093.57 258.28,-1092.43 264.26,-1091.87 264.26,-1091.87 430.39,-1076.13 430.39,-1076.13 436.37,-1075.57 448.31,-1075.57 454.29,-1076.13 454.29,-1076.13 620.43,-1091.87 620.43,-1091.87 626.4,-1092.43 626.4,-1093.57 620.43,-1094.13 620.43,-1094.13 454.29,-1109.87 454.29,-1109.87 448.31,-1110.43 436.37,-1110.43 430.39,-1109.87"/>
<text text-anchor="middle" x="442.34" y="-1089.3" font-family="Times,serif" font-size="14.00">Email Already Registered?</text>
</g>
<!-- check_email_exists&#45;&gt;email_already_exists -->
<g id="edge9" class="edge">
<title>check_email_exists&#45;&gt;email_already_exists</title>
<path fill="none" stroke="#4a4a4a" d="M558.97,-1179.71C558.97,-1179.71 558.97,-1110.26 558.97,-1110.26"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="562.47,-1110.26 558.97,-1100.26 555.47,-1110.26 562.47,-1110.26"/>
<text text-anchor="middle" x="602.84" y="-1143" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Database Check</text>
</g>
<!-- hash_password -->
<g id="node8" class="node">
<title>hash_password</title>
<path fill="#bebebe" stroke="black" d="M188.84,-1006C188.84,-1006 47.84,-1006 47.84,-1006 41.84,-1006 35.84,-1000 35.84,-994 35.84,-994 35.84,-982 35.84,-982 35.84,-976 41.84,-970 47.84,-970 47.84,-970 188.84,-970 188.84,-970 194.84,-970 200.84,-976 200.84,-982 200.84,-982 200.84,-994 200.84,-994 200.84,-1000 194.84,-1006 188.84,-1006"/>
<text text-anchor="middle" x="118.34" y="-984.3" font-family="Times,serif" font-size="14.00">Hash User Password</text>
</g>
<!-- email_already_exists&#45;&gt;hash_password -->
<g id="edge10" class="edge">
<title>email_already_exists&#45;&gt;hash_password</title>
<path fill="none" stroke="#4a4a4a" d="M251.99,-1093C181.47,-1093 118.34,-1093 118.34,-1093 118.34,-1093 118.34,-1016.29 118.34,-1016.29"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="121.84,-1016.29 118.34,-1006.29 114.84,-1016.29 121.84,-1016.29"/>
<text text-anchor="middle" x="256.34" y="-1038" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">New Email</text>
</g>
<!-- show_duplicate_error -->
<g id="node18" class="node">
<title>show_duplicate_error</title>
<path fill="#b8d4f1" stroke="black" d="M628.76,-1006C628.76,-1006 337.12,-1006 337.12,-1006 331.12,-1006 319.63,-1003.57 314.15,-1001.14 314.15,-1001.14 254.89,-974.86 254.89,-974.86 249.4,-972.43 249.92,-970 255.92,-970 255.92,-970 547.56,-970 547.56,-970 553.56,-970 565.05,-972.43 570.53,-974.86 570.53,-974.86 629.79,-1001.14 629.79,-1001.14 635.28,-1003.57 634.76,-1006 628.76,-1006"/>
<text text-anchor="middle" x="442.34" y="-984.3" font-family="Times,serif" font-size="14.00">Display Email Exists Error</text>
</g>
<!-- email_already_exists&#45;&gt;show_duplicate_error -->
<g id="edge11" class="edge">
<title>email_already_exists&#45;&gt;show_duplicate_error</title>
<path fill="none" stroke="#4a4a4a" d="M442.34,-1074.71C442.34,-1074.71 442.34,-1016.08 442.34,-1016.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="445.84,-1016.08 442.34,-1006.08 438.84,-1016.08 445.84,-1016.08"/>
<text text-anchor="middle" x="483.34" y="-1038" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Duplicate Email</text>
</g>
<!-- create_user_record -->
<g id="node9" class="node">
<title>create_user_record</title>
<path fill="#bebebe" stroke="black" d="M278.34,-901C278.34,-901 72.34,-901 72.34,-901 66.34,-901 60.34,-895 60.34,-889 60.34,-889 60.34,-877 60.34,-877 60.34,-871 66.34,-865 72.34,-865 72.34,-865 278.34,-865 278.34,-865 284.34,-865 290.34,-871 290.34,-877 290.34,-877 290.34,-889 290.34,-889 290.34,-895 284.34,-901 278.34,-901"/>
<text text-anchor="middle" x="175.34" y="-879.3" font-family="Times,serif" font-size="14.00">Create User Database Record</text>
</g>
<!-- hash_password&#45;&gt;create_user_record -->
<g id="edge14" class="edge">
<title>hash_password&#45;&gt;create_user_record</title>
<path fill="none" stroke="#4a4a4a" d="M130.59,-969.71C130.59,-969.71 130.59,-911.08 130.59,-911.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="134.09,-911.08 130.59,-901.08 127.09,-911.08 134.09,-911.08"/>
<text text-anchor="middle" x="184.34" y="-933" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Password Secured</text>
</g>
<!-- generate_verification_token -->
<g id="node10" class="node">
<title>generate_verification_token</title>
<path fill="#bebebe" stroke="black" d="M293.34,-771C293.34,-771 57.34,-771 57.34,-771 51.34,-771 45.34,-765 45.34,-759 45.34,-759 45.34,-747 45.34,-747 45.34,-741 51.34,-735 57.34,-735 57.34,-735 293.34,-735 293.34,-735 299.34,-735 305.34,-741 305.34,-747 305.34,-747 305.34,-759 305.34,-759 305.34,-765 299.34,-771 293.34,-771"/>
<text text-anchor="middle" x="175.34" y="-749.3" font-family="Times,serif" font-size="14.00">Generate Email Verification Token</text>
</g>
<!-- create_user_record&#45;&gt;generate_verification_token -->
<g id="edge15" class="edge">
<title>create_user_record&#45;&gt;generate_verification_token</title>
<path fill="none" stroke="#4a4a4a" d="M175.34,-864.92C175.34,-864.92 175.34,-781.34 175.34,-781.34"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="178.84,-781.34 175.34,-771.34 171.84,-781.34 178.84,-781.34"/>
<text text-anchor="middle" x="209.34" y="-815.5" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">User Created</text>
</g>
<!-- send_verification_email -->
<g id="node11" class="node">
<title>send_verification_email</title>
<path fill="#b8d4f1" stroke="black" d="M338.52,-666C338.52,-666 83.85,-666 83.85,-666 77.85,-666 66.49,-663.31 61.12,-660.61 61.12,-660.61 10.88,-635.39 10.88,-635.39 5.52,-632.69 6.16,-630 12.16,-630 12.16,-630 266.83,-630 266.83,-630 272.83,-630 284.2,-632.69 289.56,-635.39 289.56,-635.39 339.8,-660.61 339.8,-660.61 345.16,-663.31 344.52,-666 338.52,-666"/>
<text text-anchor="middle" x="175.34" y="-644.3" font-family="Times,serif" font-size="14.00">Send Verification Email</text>
</g>
<!-- generate_verification_token&#45;&gt;send_verification_email -->
<g id="edge16" class="edge">
<title>generate_verification_token&#45;&gt;send_verification_email</title>
<path fill="none" stroke="#4a4a4a" d="M175.34,-734.71C175.34,-734.71 175.34,-676.08 175.34,-676.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="178.84,-676.08 175.34,-666.08 171.84,-676.08 178.84,-676.08"/>
<text text-anchor="middle" x="208.84" y="-698" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Token Ready</text>
</g>
<!-- create_user_profile -->
<g id="node12" class="node">
<title>create_user_profile</title>
<polygon fill="#f0f8ff" stroke="black" points="285.34,-561 59.34,-561 59.34,-525 291.34,-525 291.34,-555 285.34,-561"/>
<polyline fill="none" stroke="black" points="285.34,-561 285.34,-555 "/>
<polyline fill="none" stroke="black" points="291.34,-555 285.34,-555 "/>
<text text-anchor="middle" x="175.34" y="-539.3" font-family="Times,serif" font-size="14.00">Create User Profile Document</text>
</g>
<!-- send_verification_email&#45;&gt;create_user_profile -->
<g id="edge17" class="edge">
<title>send_verification_email&#45;&gt;create_user_profile</title>
<path fill="none" stroke="#4a4a4a" d="M175.34,-629.71C175.34,-629.71 175.34,-571.08 175.34,-571.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="178.84,-571.08 175.34,-561.08 171.84,-571.08 178.84,-571.08"/>
<text text-anchor="middle" x="203.34" y="-593" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Email Sent</text>
</g>
<!-- setup_default_preferences -->
<g id="node13" class="node">
<title>setup_default_preferences</title>
<path fill="#bebebe" stroke="black" d="M286.84,-456C286.84,-456 65.84,-456 65.84,-456 59.84,-456 53.84,-450 53.84,-444 53.84,-444 53.84,-432 53.84,-432 53.84,-426 59.84,-420 65.84,-420 65.84,-420 286.84,-420 286.84,-420 292.84,-420 298.84,-426 298.84,-432 298.84,-432 298.84,-444 298.84,-444 298.84,-450 292.84,-456 286.84,-456"/>
<text text-anchor="middle" x="176.34" y="-434.3" font-family="Times,serif" font-size="14.00">Setup Default User Preferences</text>
</g>
<!-- create_user_profile&#45;&gt;setup_default_preferences -->
<g id="edge18" class="edge">
<title>create_user_profile&#45;&gt;setup_default_preferences</title>
<path fill="none" stroke="#4a4a4a" d="M175.34,-524.71C175.34,-524.71 175.34,-466.08 175.34,-466.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="178.84,-466.08 175.34,-456.08 171.84,-466.08 178.84,-466.08"/>
<text text-anchor="middle" x="213.84" y="-488" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Profile Created</text>
</g>
<!-- log_registration_event -->
<g id="node14" class="node">
<title>log_registration_event</title>
<polygon fill="#f0f8ff" stroke="black" points="273.84,-351 84.84,-351 84.84,-315 279.84,-315 279.84,-345 273.84,-351"/>
<polyline fill="none" stroke="black" points="273.84,-351 273.84,-345 "/>
<polyline fill="none" stroke="black" points="279.84,-345 273.84,-345 "/>
<text text-anchor="middle" x="182.34" y="-329.3" font-family="Times,serif" font-size="14.00">Log Registration Activity</text>
</g>
<!-- setup_default_preferences&#45;&gt;log_registration_event -->
<g id="edge19" class="edge">
<title>setup_default_preferences&#45;&gt;log_registration_event</title>
<path fill="none" stroke="#4a4a4a" d="M182.34,-419.71C182.34,-419.71 182.34,-361.08 182.34,-361.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="185.84,-361.08 182.34,-351.08 178.84,-361.08 185.84,-361.08"/>
<text text-anchor="middle" x="218.84" y="-383" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Preferences Set</text>
</g>
<!-- send_welcome_notification -->
<g id="node15" class="node">
<title>send_welcome_notification</title>
<path fill="#b8d4f1" stroke="black" d="M373.65,-246C373.65,-246 112.41,-246 112.41,-246 106.41,-246 95.02,-243.36 89.64,-240.71 89.64,-240.71 37.81,-215.29 37.81,-215.29 32.42,-212.64 33.04,-210 39.04,-210 39.04,-210 300.27,-210 300.27,-210 306.27,-210 317.66,-212.64 323.04,-215.29 323.04,-215.29 374.87,-240.71 374.87,-240.71 380.26,-243.36 379.65,-246 373.65,-246"/>
<text text-anchor="middle" x="206.34" y="-224.3" font-family="Times,serif" font-size="14.00">Send Welcome Message</text>
</g>
<!-- log_registration_event&#45;&gt;send_welcome_notification -->
<g id="edge20" class="edge">
<title>log_registration_event&#45;&gt;send_welcome_notification</title>
<path fill="none" stroke="#4a4a4a" d="M182.34,-314.71C182.34,-314.71 182.34,-256.08 182.34,-256.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="185.84,-256.08 182.34,-246.08 178.84,-256.08 185.84,-256.08"/>
<text text-anchor="middle" x="226.84" y="-278" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Event Logged</text>
</g>
<!-- redirect_to_verification -->
<g id="node16" class="node">
<title>redirect_to_verification</title>
<path fill="#b8d4f1" stroke="black" d="M498.04,-141C498.04,-141 186.86,-141 186.86,-141 180.86,-141 169.33,-138.69 163.79,-136.38 163.79,-136.38 99.72,-109.62 99.72,-109.62 94.18,-107.31 94.64,-105 100.64,-105 100.64,-105 411.82,-105 411.82,-105 417.82,-105 429.35,-107.31 434.89,-109.62 434.89,-109.62 498.97,-136.38 498.97,-136.38 504.5,-138.69 504.04,-141 498.04,-141"/>
<text text-anchor="middle" x="299.34" y="-119.3" font-family="Times,serif" font-size="14.00">Redirect to Verification Page</text>
</g>
<!-- send_welcome_notification&#45;&gt;redirect_to_verification -->
<g id="edge21" class="edge">
<title>send_welcome_notification&#45;&gt;redirect_to_verification</title>
<path fill="none" stroke="#4a4a4a" d="M237.12,-209.71C237.12,-209.71 237.12,-151.08 237.12,-151.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="240.62,-151.08 237.12,-141.08 233.62,-151.08 240.62,-151.08"/>
<text text-anchor="middle" x="273.84" y="-173" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Welcome Sent</text>
</g>
<!-- end_registration_process -->
<g id="node23" class="node">
<title>end_registration_process</title>
<ellipse fill="#ffb3ba" stroke="black" cx="631.34" cy="-18" rx="128.88" ry="18"/>
<text text-anchor="middle" x="631.34" y="-14.3" font-family="Times,serif" font-size="14.00">End Registration Process</text>
</g>
<!-- redirect_to_verification&#45;&gt;end_registration_process -->
<g id="edge22" class="edge">
<title>redirect_to_verification&#45;&gt;end_registration_process</title>
<path fill="none" stroke="#4a4a4a" d="M506.3,-122.92C506.3,-122.92 506.3,-32.38 506.3,-32.38"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="509.8,-32.38 506.3,-22.38 502.8,-32.38 509.8,-32.38"/>
<text text-anchor="middle" x="451.84" y="-68" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Success Path</text>
</g>
<!-- show_format_error -->
<g id="node17" class="node">
<title>show_format_error</title>
<path fill="#b8d4f1" stroke="black" d="M1003.03,-901C1003.03,-901 668.01,-901 668.01,-901 662.01,-901 650.42,-898.82 644.83,-896.64 644.83,-896.64 574.83,-869.36 574.83,-869.36 569.24,-867.18 569.65,-865 575.65,-865 575.65,-865 910.68,-865 910.68,-865 916.68,-865 928.27,-867.18 933.86,-869.36 933.86,-869.36 1003.85,-896.64 1003.85,-896.64 1009.44,-898.82 1009.03,-901 1003.03,-901"/>
<text text-anchor="middle" x="789.34" y="-879.3" font-family="Times,serif" font-size="14.00">Display Format Error Message</text>
</g>
<!-- log_failed_attempt -->
<g id="node20" class="node">
<title>log_failed_attempt</title>
<polygon fill="#f0f8ff" stroke="black" points="717.34,-771 539.34,-771 539.34,-735 723.34,-735 723.34,-765 717.34,-771"/>
<polyline fill="none" stroke="black" points="717.34,-771 717.34,-765 "/>
<polyline fill="none" stroke="black" points="723.34,-765 717.34,-765 "/>
<text text-anchor="middle" x="631.34" y="-749.3" font-family="Times,serif" font-size="14.00">Log Failed Registration</text>
</g>
<!-- show_format_error&#45;&gt;log_failed_attempt -->
<g id="edge23" class="edge">
<title>show_format_error&#45;&gt;log_failed_attempt</title>
<path fill="none" stroke="#4a4a4a" d="M643.42,-864.92C643.42,-864.92 643.42,-781.34 643.42,-781.34"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="646.92,-781.34 643.42,-771.34 639.92,-781.34 646.92,-781.34"/>
<text text-anchor="middle" x="778.34" y="-815.5" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Error Displayed</text>
</g>
<!-- suggest_login -->
<g id="node19" class="node">
<title>suggest_login</title>
<path fill="#bebebe" stroke="black" d="M508.84,-901C508.84,-901 355.84,-901 355.84,-901 349.84,-901 343.84,-895 343.84,-889 343.84,-889 343.84,-877 343.84,-877 343.84,-871 349.84,-865 355.84,-865 355.84,-865 508.84,-865 508.84,-865 514.84,-865 520.84,-871 520.84,-877 520.84,-877 520.84,-889 520.84,-889 520.84,-895 514.84,-901 508.84,-901"/>
<text text-anchor="middle" x="432.34" y="-879.3" font-family="Times,serif" font-size="14.00">Suggest Login Instead</text>
</g>
<!-- show_duplicate_error&#45;&gt;suggest_login -->
<g id="edge12" class="edge">
<title>show_duplicate_error&#45;&gt;suggest_login</title>
<path fill="none" stroke="#4a4a4a" d="M432.34,-969.71C432.34,-969.71 432.34,-911.08 432.34,-911.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="435.84,-911.08 432.34,-901.08 428.84,-911.08 435.84,-911.08"/>
<text text-anchor="middle" x="469.84" y="-933" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Error Shown</text>
</g>
<!-- suggest_login&#45;&gt;log_failed_attempt -->
<g id="edge13" class="edge">
<title>suggest_login&#45;&gt;log_failed_attempt</title>
<path fill="none" stroke="#4a4a4a" d="M515.39,-864.92C515.39,-829.2 515.39,-753 515.39,-753 515.39,-753 529.13,-753 529.13,-753"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="529.13,-756.5 539.13,-753 529.13,-749.5 529.13,-756.5"/>
<text text-anchor="middle" x="535.34" y="-815.5" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Alternative Provided</text>
</g>
<!-- log_failed_attempt&#45;&gt;end_registration_process -->
<g id="edge24" class="edge">
<title>log_failed_attempt&#45;&gt;end_registration_process</title>
<path fill="none" stroke="#4a4a4a" d="M631.34,-734.83C631.34,-734.83 631.34,-46.19 631.34,-46.19"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="634.84,-46.19 631.34,-36.19 627.84,-46.19 634.84,-46.19"/>
<text text-anchor="middle" x="670.34" y="-383" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Failure Logged</text>
</g>
<!-- rate_limit_check&#45;&gt;show_format_error -->
<g id="edge7" class="edge">
<title>rate_limit_check&#45;&gt;show_format_error</title>
<path fill="none" stroke="#4a4a4a" d="M849.18,-973.84C849.18,-973.84 849.18,-911.15 849.18,-911.15"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="852.68,-911.15 849.18,-901.15 845.68,-911.15 852.68,-911.15"/>
<text text-anchor="middle" x="877.34" y="-933" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Within Limits</text>
</g>
<!-- block_registration -->
<g id="node22" class="node">
<title>block_registration</title>
<path fill="#bebebe" stroke="black" d="M1124.34,-836C1124.34,-836 936.34,-836 936.34,-836 930.34,-836 924.34,-830 924.34,-824 924.34,-824 924.34,-812 924.34,-812 924.34,-806 930.34,-800 936.34,-800 936.34,-800 1124.34,-800 1124.34,-800 1130.34,-800 1136.34,-806 1136.34,-812 1136.34,-812 1136.34,-824 1136.34,-824 1136.34,-830 1130.34,-836 1124.34,-836"/>
<text text-anchor="middle" x="1030.34" y="-814.3" font-family="Times,serif" font-size="14.00">Block Registration Attempt</text>
</g>
<!-- rate_limit_check&#45;&gt;block_registration -->
<g id="edge8" class="edge">
<title>rate_limit_check&#45;&gt;block_registration</title>
<path fill="none" stroke="#4a4a4a" d="M1063.35,-983.8C1063.35,-983.8 1063.35,-846.26 1063.35,-846.26"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1066.85,-846.26 1063.35,-836.26 1059.85,-846.26 1066.85,-846.26"/>
<text text-anchor="middle" x="1113.34" y="-933" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Rate Limited</text>
</g>
<!-- block_registration&#45;&gt;end_registration_process -->
<g id="edge25" class="edge">
<title>block_registration&#45;&gt;end_registration_process</title>
<path fill="none" stroke="#4a4a4a" d="M924.09,-818C841.78,-818 741.69,-818 741.69,-818 741.69,-818 741.69,-37.54 741.69,-37.54"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="745.19,-37.54 741.69,-27.54 738.19,-37.54 745.19,-37.54"/>
<text text-anchor="middle" x="932.84" y="-435.5" font-family="Times,serif" font-size="10.00" fill="#4a4a4a">Blocked</text>
</g>
</g>
</svg>