forked from htmlacademy-nestjs/2083345-readme-3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
specification.drawio
98 lines (98 loc) · 13.7 KB
/
specification.drawio
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
<mxfile host="Electron" modified="2023-04-21T13:38:41.827Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="w5YINd-1RN-6s-1oadx4" version="21.1.2" type="device">
<diagram id="prtHgNgQTEPvFCAcTncT" name="Page-1">
<mxGraphModel dx="2046" dy="772" 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">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="dNxyNK7c78bLwvsdeMH5-11" value="Микросервисная архитектура проекта readme" style="swimlane;html=1;startSize=20;horizontal=1;containerType=tree;glass=0;" parent="1" vertex="1">
<mxGeometry x="-160" y="80" width="1220" height="780" as="geometry">
<mxRectangle x="40" y="80" width="90" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="IY8tOTh4xp1D2bBuZWW_-6" value="users" style="swimlane;whiteSpace=wrap;html=1;" parent="dNxyNK7c78bLwvsdeMH5-11" vertex="1">
<mxGeometry x="20" y="40" width="370" height="720" as="geometry">
<mxRectangle x="20" y="40" width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="IY8tOTh4xp1D2bBuZWW_-6" vertex="1">
<mxGeometry x="10" y="30" width="350" height="170" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-11" value="<h1>authentication</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-6" vertex="1">
<mxGeometry x="15" y="30" width="315" height="50" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-1" value="<h1><ul style="border-color: var(--border-color); font-size: 14px; font-weight: 400;"><li style="border-color: var(--border-color);">Регистрация новых пользователей.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Авторизация пользователей на&nbsp;основе JWT.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Получение детальной информации<br style="border-color: var(--border-color);">о&nbsp;пользователе.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Смена пароля пользователя.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Подписка на&nbsp;обновления других пользователей.</li></ul></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-6" vertex="1">
<mxGeometry y="70" width="360" height="130" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-12" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="IY8tOTh4xp1D2bBuZWW_-6" vertex="1">
<mxGeometry x="10" y="210" width="350" height="160" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-13" value="<h1>blog-user</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-6" vertex="1">
<mxGeometry x="15" y="210" width="315" height="50" as="geometry" />
</mxCell>
<mxCell id="IY8tOTh4xp1D2bBuZWW_-9" value="posts" style="swimlane;whiteSpace=wrap;html=1;" parent="dNxyNK7c78bLwvsdeMH5-11" vertex="1">
<mxGeometry x="400" y="40" width="400" height="720" as="geometry">
<mxRectangle x="20" y="40" width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-4" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="10" y="30" width="380" height="360" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="10" y="400" width="380" height="150" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-7" value="<h1>blog-post</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="20" y="30" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-8" value="<h1>blog-comment</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="20" y="410" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-9" value="<h1><ul style="border-color: var(--border-color); font-size: 14px; font-weight: 400;"><li style="border-color: var(--border-color);"><span style="background-color: initial;">Добавление и удаление комментариев пользователями</span></li><li style="border-color: var(--border-color);"><span style="background-color: initial;">Получение комментариев к определенному посту</span></li></ul></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="40" y="450" width="313" height="90" as="geometry" />
</mxCell>
<mxCell id="KQkPd3tfyxIPv_BGeAOm-2" value="<h1><ul style="border-color: var(--border-color); font-size: 14px; font-weight: 400;"><li style="border-color: var(--border-color);">Создание новых публикаций в&nbsp;блоге разных видов: видео, текст, цитата, фото, ссылка.</li><li style="border-color: var(--border-color);">Просмотр детальной информации о&nbsp;публикации.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Редактирование публикаций в&nbsp;блоге.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Удаление публикаций в&nbsp;блоге.</li><li style="border-color: var(--border-color);">Лайки к&nbsp;публикациям. Подсчёт количества лайков к&nbsp;публикациям.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Пагинация для публикаций.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Получение списка публикаций.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Получение списка публикаций с&nbsp;<br style="border-color: var(--border-color);">применением сортировки: по&nbsp;популярности,<br style="border-color: var(--border-color);">дате создания, по&nbsp;количеству лайков,<br style="border-color: var(--border-color);">по&nbsp;количеству комментариев.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Репост публикаций.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Лента пользователя.<br style="border-color: var(--border-color);"></li><li style="border-color: var(--border-color);">Категоризация публикаций по&nbsp;тегам.</li><li style="border-color: var(--border-color);">Поиск публикаций по&nbsp;названию.</li></ul></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="IY8tOTh4xp1D2bBuZWW_-9" vertex="1">
<mxGeometry x="6.5" y="70" width="380" height="320" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-9">
<mxGeometry x="10" y="560" width="380" height="150" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-2" value="<h1>prisma</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-9">
<mxGeometry x="20" y="570" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="IY8tOTh4xp1D2bBuZWW_-11" value="notify" style="swimlane;whiteSpace=wrap;html=1;" parent="dNxyNK7c78bLwvsdeMH5-11" vertex="1">
<mxGeometry x="810" y="40" width="388.5" height="330" as="geometry">
<mxRectangle x="20" y="40" width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-4" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-11">
<mxGeometry x="8.5" y="30" width="366.5" height="130" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-5" value="<h1>email-subscriber</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-11">
<mxGeometry x="13.5" y="30" width="326.5" height="50" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-6" value="<h1><ul style="border-color: var(--border-color); font-size: 14px; font-weight: 400;"><li style="border-color: var(--border-color);">рассылка уведомлений при появлении новых публикаций</li><li style="border-color: var(--border-color);">рассылка уведомлений при регистрации новых пользователей</li></ul></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-11">
<mxGeometry x="3.5" y="70" width="380" height="80" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-7" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-11">
<mxGeometry x="8.5" y="170" width="367.5" height="150" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-8" value="<h1>mail</h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="IY8tOTh4xp1D2bBuZWW_-11">
<mxGeometry x="18.5" y="180" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-9" value="uploader" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="dNxyNK7c78bLwvsdeMH5-11">
<mxGeometry x="810" y="390" width="388.5" height="370" as="geometry">
<mxRectangle x="20" y="40" width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ASO0v_feeeProNMWGn14-9">
<mxGeometry x="8.5" y="30" width="366.5" height="130" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-11" value="<h1><br></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="ASO0v_feeeProNMWGn14-9">
<mxGeometry x="13.5" y="30" width="326.5" height="50" as="geometry" />
</mxCell>
<mxCell id="ASO0v_feeeProNMWGn14-12" value="<h1><ul><li><span style="font-size: 14px; font-weight: 400;">загрузка изображений</span></li></ul></h1>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="ASO0v_feeeProNMWGn14-9">
<mxGeometry x="1.75" y="55" width="380" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>