-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsa_p2_2C.sarch
218 lines (202 loc) · 7.34 KB
/
sa_p2_2C.sarch
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
architecture {
software_system: eventum;
author: gavendanoc_majmartinezva_jmedinan_jnobzaa_icquirogac_diarodriguezmo;
architectural_views {
decomposition_view ::
elements {
module evento;
module administracion_de_usuario;
module grupos;
module configuracion;
submodule creacion_de_evento;
submodule administrar_evento;
submodule buscar_evento;
submodule visualizar_un_evento;
submodule cancelar_un_evento;
submodule creacion_de_usuario;
submodule asistencia_de_eventos;
submodule grupos_que_sigue_el_usuario;
submodule buscar_grupos;
submodule creacion_grupos;
submodule administradores;
submodule modificar_informacion;
submodule seguir_grupo;
submodule notificaciones;
functionality crear_evento;
functionality modificar_informacion_de_un_evento;
functionality modificacion_de_la_imagen_del_evento;
functionality filtrar_por_tipo;
functionality filtrar_por_nombre;
functionality filtrar_por_grupo;
functionality visualizar_lista_de_proximos_eventos;
functionality visualizar_lista_de_eventos_oficiales;
functionality indicar_que_usuario_sino_asistira;
functionality visualizar_informacion_sobre_un_evento;
functionality visualizar_ubicacion_de_un_evento;
functionality notificar_a_los_suscriptores_cuando_el_evento_este_proximo_a_ocurrir;
functionality cancelar_un_evento;
functionality notificar_a_los_usuarios;
functionality registro_por_google;
functionality visualizar_lista_de_eventos_a_asistir;
functionality visualizar_historial_de_eventos;
functionality visualizar_lista_de_grupos_a_los_que_sigue;
functionality filtrar_por_nombre;
functionality filtrar_por_tipo;
functionality insertar_informacion_del_grupo;
functionality agregar_administrador;
functionality dejar_rol_de_administrador;
functionality editar_informacion_del_grupo;
functionality usuario_se_suscribe_a_un_grupo;
functionality usuario_se_desuscribe_a_un_grupo;
functionality activar_desactivar_notificaiones_en_el_mobil;
functionality activar_desactivar_notificaiones_en_la_web;
}
relations {
sm: creacion_de_evento is_part_of m: evento;
sm: administrar_evento is_part_of m: evento;
sm: buscar_evento is_part_of m: evento;
sm: visualizar_un_evento is_part_of m: evento;
sm: cancelar_un_evento is_part_of m: evento;
sm: creacion_de_usuario is_part_of m: administracion_de_usuario;
sm: asistencia_de_eventos is_part_of m: administracion_de_usuario;
sm: grupos_que_sigue_el_usuario is_part_of m: administracion_de_usuario;
sm: buscar_grupos is_part_of m: grupos;
sm: creacion_grupos is_part_of m: grupos;
sm: administradores is_part_of m: grupos;
sm: modificar_informacion is_part_of m: grupos;
sm: seguir_grupo is_part_of m: grupos;
sm: notificaciones is_part_of m: configuracion;
f: crear_evento is_part_of sm: creacion_de_evento;
f: modificar_informacion_de_un_evento is_part_of sm: administrar_evento;
f: modificacion_de_la_imagen_del_evento is_part_of sm: administrar_evento;
f: filtrar_por_tipo is_part_of sm: buscar_evento;
f: filtrar_por_nombre is_part_of sm: buscar_evento;
f: filtrar_por_grupo is_part_of sm: buscar_evento;
f: visualizar_lista_de_proximos_eventos is_part_of sm: buscar_evento;
f: visualizar_lista_de_eventos_oficiales is_part_of sm: buscar_evento;
f: indicar_que_usuario_sino_asistira is_part_of sm: visualizar_un_evento;
f: visualizar_informacion_sobre_un_evento is_part_of sm: visualizar_un_evento;
f: visualizar_ubicacion_de_un_evento is_part_of sm: visualizar_un_evento;
f: notificar_a_los_suscriptores_cuando_el_evento_este_proximo_a_ocurrir is_part_of sm: visualizar_un_evento;
f: cancelar_un_evento is_part_of sm: cancelar_un_evento;
f: notificar_a_los_usuarios is_part_of sm: cancelar_un_evento;
f: registro_por_google is_part_of sm: creacion_de_usuario;
f: visualizar_lista_de_eventos_a_asistir is_part_of sm: asistencia_de_eventos;
f: visualizar_historial_de_eventos is_part_of sm: asistencia_de_eventos;
f: visualizar_lista_de_grupos_a_los_que_sigue is_part_of sm: grupos_que_sigue_el_usuario;
f: filtrar_por_nombre is_part_of sm: buscar_grupos;
f: filtrar_por_tipo is_part_of sm: buscar_grupos;
f: insertar_informacion_del_grupo is_part_of sm: creacion_grupos;
f: agregar_administrador is_part_of sm: administradores;
f: dejar_rol_de_administrador is_part_of sm: administradores;
f: editar_informacion_del_grupo is_part_of sm: modificar_informacion;
f: usuario_se_suscribe_a_un_grupo is_part_of sm: seguir_grupo;
f: usuario_se_desuscribe_a_un_grupo is_part_of sm: seguir_grupo;
f: activar_desactivar_notificaiones_en_el_mobil is_part_of sm: notificaciones;
f: activar_desactivar_notificaiones_en_la_web is_part_of sm: notificaciones;
}
::
data_model_view ::
relational data_model ev_groups_data_model {
elements {
data_entity Groups {
attributes {
int id_group;
int id_type;
string name;
string description;
date created_date;
string contact_number;
string status;
}
}
data_entity GroupTypes {
attributes {
int id_type;
string name;
}
}
}
relations {
one_to_many (Groups, GroupTypes);
}
}
relational data_model ev_events_data_model {
elements {
data_entity Events {
attributes {
int id;
string ownerId;
string ownerType;
string name;
string status;
date eventStartDate;
date eventFinishDate;
string description;
string url;
string latitude;
string longitude;
}
}
}
}
relational data_model ev_users_data_model {
elements {
data_entity Users {
attributes {
int id;
string name;
string phone_number;
int age;
string career;
string status;
date created_at;
date updated_at;
}
}
data_entity User_groups {
attributes {
int user_id;
int group_id;
string status;
date created_at;
date updated_at;
}
}
data_entity User_events {
attributes {
int user_id;
int event_id;
bool assistance;
bool interested;
date created_at;
date updated_at;
}
}
}
relations {
one_to_many (Users, User_groups);
one_to_many (Users, User_events);
}
}
::
component_and_connector_view ::
elements {
component_types {
microservice;
database;
}
component microservice ev_groups_ms;
component microservice ev_events_ms;
component database ev_groups_db (data_model ev_groups_data_model);
component database ev_events_db (data_model ev_events_data_model);
connector sql_alchemy;
connector gorm;
}
relations {
attachment (sql_alchemy: ev_groups_ms, ev_groups_db);
attachment (gorm: ev_events_ms, ev_events_db);
}
::
}
}