Skip to content

Commit 5a2c7ab

Browse files
Merge pull request #42 from LePeanutButter/feature/add_design_files
Feature/add design files
2 parents 92f4d25 + 0bd8e98 commit 5a2c7ab

File tree

9 files changed

+284
-2
lines changed

9 files changed

+284
-2
lines changed

.github/workflows/maven.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
name: CI/CD Pipeline Production
22

33
on:
4+
push:
5+
branches:
6+
- main
47
pull_request:
58
branches:
69
- main

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,4 @@ build/
3333
# application.properties
3434
### VS Code ###
3535
/.vscode
36-
37-
.env
36+
/.env

components.puml

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
@startuml Elysium System Component Diagram
2+
3+
!define RECTANGLE class
4+
5+
skinparam componentStyle uml2
6+
skinparam component {
7+
BackgroundColor White
8+
BorderColor Black
9+
ArrowColor Black
10+
}
11+
12+
package "Elysium Frontend" <<Rectangle>> {
13+
[<<component>>\nReact Application] as ReactApp
14+
[<<component>>\nAPI Service] as ApiService
15+
[<<component>>\nAuthentication Module] as AuthModule
16+
[<<component>>\nReservas Module] as ReservasModule
17+
[<<component>>\nUsuarios Module] as UsuariosModule
18+
[<<component>>\nSalones Module] as SalonesModule
19+
[<<component>>\nState Management] as StateManagement
20+
}
21+
22+
package "Elysium Backend" <<Rectangle>> {
23+
package "API Layer" {
24+
[<<component>>\nAuthController] as AuthController
25+
[<<component>>\nUsuarioController] as UsuarioController
26+
[<<component>>\nReservaController] as ReservaController
27+
}
28+
29+
package "Service Layer" {
30+
[<<component>>\nUsuarioService] as UsuarioService
31+
[<<component>>\nReservaService] as ReservaService
32+
[<<component>>\nCustomUserDetailsService] as UserDetailsService
33+
}
34+
35+
package "Repository Layer" {
36+
[<<component>>\nUsuarioRepository] as UsuarioRepository
37+
[<<component>>\nSalonRepository] as SalonRepository
38+
[<<component>>\nReservaRepository] as ReservaRepository
39+
}
40+
41+
package "Security" {
42+
[<<component>>\nSecurityConfig] as SecurityConfig
43+
[<<component>>\nJwtRequestFilter] as JwtFilter
44+
[<<component>>\nJwtUtil] as JwtUtil
45+
}
46+
47+
package "Domain Model" {
48+
[<<component>>\nUsuario] as Usuario
49+
[<<component>>\nSalon] as Salon
50+
[<<component>>\nReserva] as Reserva
51+
[<<component>>\nDTOs] as DTOs
52+
}
53+
54+
package "Configuration" {
55+
[<<component>>\nMongoConfig] as MongoConfig
56+
}
57+
}
58+
59+
cloud "External Systems" {
60+
database "MongoDB Atlas" as MongoDB {
61+
[ReservasECIHades DB] as DB
62+
}
63+
}
64+
65+
' Frontend internal relationships
66+
ReactApp --> ApiService : uses
67+
ReactApp --> AuthModule : uses
68+
ReactApp --> ReservasModule : uses
69+
ReactApp --> UsuariosModule : uses
70+
ReactApp --> SalonesModule : uses
71+
AuthModule --> ApiService : uses
72+
ReservasModule --> ApiService : uses
73+
UsuariosModule --> ApiService : uses
74+
SalonesModule --> ApiService : uses
75+
ReactApp --> StateManagement : uses
76+
77+
' Backend controller to service relationships
78+
AuthController --> UserDetailsService : uses
79+
AuthController --> JwtUtil : uses
80+
UsuarioController --> UsuarioService : uses
81+
ReservaController --> ReservaService : uses
82+
83+
' Security relationships
84+
SecurityConfig --> JwtFilter : configures
85+
JwtFilter --> UserDetailsService : validates with
86+
JwtFilter --> JwtUtil : validates tokens with
87+
88+
' Service to repository relationships
89+
UsuarioService --> UsuarioRepository : uses
90+
UsuarioService --> ReservaService : uses
91+
ReservaService --> ReservaRepository : uses
92+
UserDetailsService --> UsuarioRepository : uses
93+
94+
' Repository to model relationships
95+
UsuarioRepository --> Usuario : manages
96+
SalonRepository --> Salon : manages
97+
ReservaRepository --> Reserva : manages
98+
UsuarioService --> DTOs : transforms
99+
100+
' Database connections
101+
MongoConfig --> DB : configures
102+
UsuarioRepository --> DB : persists to
103+
SalonRepository --> DB : persists to
104+
ReservaRepository --> DB : persists to
105+
106+
' Frontend-Backend communication
107+
ApiService -0)- AuthController : HTTP/POST /api/login
108+
ApiService -0)- AuthController : HTTP/POST /api/register
109+
ApiService -0)- UsuarioController : HTTP/GET /api/usuarios
110+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios
111+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios/{id}/reservas
112+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios/salones/{id}
113+
ApiService -0)- UsuarioController : HTTP/GET /api/usuarios/{id}/reservas
114+
115+
' Interfaces
116+
interface " " as AuthInterface
117+
interface " " as UserInterface
118+
interface " " as ReservaInterface
119+
120+
AuthController -- AuthInterface
121+
ApiService )-- AuthInterface
122+
123+
UsuarioController -- UserInterface
124+
ApiService )-- UserInterface
125+
126+
ReservaController -- ReservaInterface
127+
ApiService )-- ReservaInterface
128+
129+
@enduml

design/ElysiumDesign - Final.asta

73.1 KB
Binary file not shown.
69.3 KB
Binary file not shown.

design/ElysiumDesign.asta

48.7 KB
Binary file not shown.

design/ElysiumECI.asta

37.7 KB
Binary file not shown.

src/components.puml

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
2+
@startuml Elysium System Component Diagram
3+
!theme cerulean-outline
4+
!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5
5+
!include FONTAWESOME/users.puml
6+
!include FONTAWESOME/database.puml
7+
!include FONTAWESOME/server.puml
8+
!include FONTAWESOME/cogs.puml
9+
10+
skinparam componentStyle rectangle
11+
skinparam backgroundColor transparent
12+
skinparam defaultTextAlignment center
13+
skinparam wrapWidth 200
14+
skinparam maxMessageSize 150
15+
16+
skinparam component {
17+
BackgroundColor #f5f5f5
18+
BorderColor #3498db
19+
ArrowColor #2c3e50
20+
FontColor #2c3e50
21+
BorderThickness 2
22+
FontSize 14
23+
}
24+
!define RECTANGLE class
25+
26+
skinparam componentStyle uml2
27+
skinparam component {
28+
BackgroundColor White
29+
BorderColor Black
30+
ArrowColor Black
31+
}
32+
33+
package "Elysium Frontend" <<Rectangle>> {
34+
[<<component>>\nReact Application] as ReactApp
35+
[<<component>>\nAPI Service] as ApiService
36+
[<<component>>\nAuthentication Module] as AuthModule
37+
[<<component>>\nReservas Module] as ReservasModule
38+
[<<component>>\nUsuarios Module] as UsuariosModule
39+
[<<component>>\nSalones Module] as SalonesModule
40+
[<<component>>\nState Management] as StateManagement
41+
}
42+
43+
package "Elysium Backend" <<Rectangle>> {
44+
package "API Layer" {
45+
[<<component>>\nAuthController] as AuthController
46+
[<<component>>\nUsuarioController] as UsuarioController
47+
[<<component>>\nReservaController] as ReservaController
48+
}
49+
50+
package "Service Layer" {
51+
[<<component>>\nUsuarioService] as UsuarioService
52+
[<<component>>\nReservaService] as ReservaService
53+
[<<component>>\nCustomUserDetailsService] as UserDetailsService
54+
}
55+
56+
package "Repository Layer" {
57+
[<<component>>\nUsuarioRepository] as UsuarioRepository
58+
[<<component>>\nSalonRepository] as SalonRepository
59+
[<<component>>\nReservaRepository] as ReservaRepository
60+
}
61+
62+
package "Security" {
63+
[<<component>>\nSecurityConfig] as SecurityConfig
64+
[<<component>>\nJwtRequestFilter] as JwtFilter
65+
[<<component>>\nJwtUtil] as JwtUtil
66+
}
67+
68+
package "Domain Model" {
69+
[<<component>>\nUsuario] as Usuario
70+
[<<component>>\nSalon] as Salon
71+
[<<component>>\nReserva] as Reserva
72+
[<<component>>\nDTOs] as DTOs
73+
}
74+
75+
package "Configuration" {
76+
[<<component>>\nMongoConfig] as MongoConfig
77+
}
78+
}
79+
80+
cloud "External Systems" {
81+
database "MongoDB Atlas" as MongoDB {
82+
[ReservasECIHades DB] as DB
83+
}
84+
}
85+
86+
' Frontend internal relationships
87+
ReactApp --> ApiService : uses
88+
ReactApp --> AuthModule : uses
89+
ReactApp --> ReservasModule : uses
90+
ReactApp --> UsuariosModule : uses
91+
ReactApp --> SalonesModule : uses
92+
AuthModule --> ApiService : uses
93+
ReservasModule --> ApiService : uses
94+
UsuariosModule --> ApiService : uses
95+
SalonesModule --> ApiService : uses
96+
ReactApp --> StateManagement : uses
97+
98+
' Backend controller to service relationships
99+
AuthController --> UserDetailsService : uses
100+
AuthController --> JwtUtil : uses
101+
UsuarioController --> UsuarioService : uses
102+
ReservaController --> ReservaService : uses
103+
104+
' Security relationships
105+
SecurityConfig --> JwtFilter : configures
106+
JwtFilter --> UserDetailsService : validates with
107+
JwtFilter --> JwtUtil : validates tokens with
108+
109+
' Service to repository relationships
110+
UsuarioService --> UsuarioRepository : uses
111+
UsuarioService --> ReservaService : uses
112+
ReservaService --> ReservaRepository : uses
113+
UserDetailsService --> UsuarioRepository : uses
114+
115+
' Repository to model relationships
116+
UsuarioRepository --> Usuario : manages
117+
SalonRepository --> Salon : manages
118+
ReservaRepository --> Reserva : manages
119+
UsuarioService --> DTOs : transforms
120+
121+
' Database connections
122+
MongoConfig --> DB : configures
123+
UsuarioRepository --> DB : persists to
124+
SalonRepository --> DB : persists to
125+
ReservaRepository --> DB : persists to
126+
127+
' Frontend-Backend communication
128+
ApiService -0)- AuthController : HTTP/POST /api/login
129+
ApiService -0)- AuthController : HTTP/POST /api/register
130+
ApiService -0)- UsuarioController : HTTP/GET /api/usuarios
131+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios
132+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios/{id}/reservas
133+
ApiService -0)- UsuarioController : HTTP/POST /api/usuarios/salones/{id}
134+
ApiService -0)- UsuarioController : HTTP/GET /api/usuarios/{id}/reservas
135+
136+
' Interfaces
137+
interface " " as AuthInterface
138+
interface " " as UserInterface
139+
interface " " as ReservaInterface
140+
141+
AuthController -- AuthInterface
142+
ApiService )-- AuthInterface
143+
144+
UsuarioController -- UserInterface
145+
ApiService )-- UserInterface
146+
147+
ReservaController -- ReservaInterface
148+
ApiService )-- ReservaInterface
149+
150+
@enduml

src/main/java/edu/eci/cvds/elysium/config/CorsConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public void addCorsMappings(@SuppressWarnings("null") CorsRegistry registry) {
1212
registry.addMapping("/**")
1313
.allowedOrigins("http://localhost:3000") // Cambiar el origen al necesario
1414
.allowedOrigins("https://cicero-hfg6f7g3echkbvcf.canadacentral-01.azurewebsites.net/")
15+
.allowedOrigins("https://limbo-cfgvasfjc6argbhh.canadacentral-01.azurewebsites.net/")
1516
.allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE")
1617
.allowedHeaders("*")
1718
.allowCredentials(true);

0 commit comments

Comments
 (0)