@@ -5,31 +5,86 @@ ifndef::imagesdir[:imagesdir: ../images]
55
66=== User Login
77
8- This diagram the action of the user login
8+ This diagram represents the action of the user login
99
1010[plantuml,"Login",png]
1111----
1212@startuml
1313actor User
1414participant WebApp
15- participant UsersService
15+ participant userRoutes
16+ participant userController
17+ participant userService
18+ participant userResponseDTO
19+ participant userRepository
1620database Database
1721
1822User -> WebApp: Enters credentials (username/password)
19- WebApp -> UsersService: Auth Request
20- UsersService -> Database: Search for user & validate password hash
21- Database --> UsersService: Return user data (or error)
23+ WebApp -> userRoutes: POST /login
24+ userRoutes -> userController: loginUser(req, res)
25+
26+ userController -> userService: loginUser(credentials)
27+ userService -> userRepository: findUserByUsername(username)
28+ userRepository -> Database: SELECT * FROM users...
29+ Database --> userRepository: Raw Data
30+ userRepository --> userService: User Entity
2231
2332alt valid credentials
24- UsersService --> WebApp: Login Success
33+ userService --> userController: user
34+ userController -> userResponseDTO: toUserResponseDto(user)
35+ userResponseDTO --> userController: userDTO
36+ userController --> WebApp: 200 OK (userDTO)
2537 WebApp --> User: Redirect to Game Dashboard
2638else invalid credentials
27- UsersService --> WebApp: Login Failed (401 Unauthorized)
39+ userService --> userController: throw Error("Invalid username or password")
40+ userController --> WebApp: 401 Unauthorized
2841 WebApp --> User: Show "Invalid username or password"
2942end
3043@enduml
3144----
3245
46+ === User Signup
47+
48+ This diagrams represent the action of signing up
49+ [plantuml,"Signup",png]
50+ ----
51+ @startuml
52+ actor User
53+ participant WebApp
54+ participant userRoutes
55+ participant userController
56+ participant userService
57+ participant bcrypt
58+ participant userRepository
59+ database Database
60+
61+ User -> WebApp: Fills form (nickname, username, email, password, avatarId)
62+ User -> WebApp: Clicks "SAVE ACCOUNT"
63+ WebApp -> userRoutes: POST /createuser
64+ userRoutes -> userController: createUser(req, res)
65+
66+ userController -> userService: createUser(data)
67+
68+ userService -> userService: Validate fields & password length
69+ userService -> userRepository: findUserByUsername(username)
70+ userRepository --> userService: null (if available)
71+ userService -> userRepository: findUserByEmail(email)
72+ userRepository --> userService: null (if available)
73+
74+ userService -> bcrypt: hash(password, 10)
75+ bcrypt --> userService: hashed_password
76+
77+ userService -> userRepository: createUser(nickname, username, email, hashed_password, photo: avatarId)
78+ userRepository -> Database: INSERT INTO users...
79+ Database --> userRepository: newUser
80+ userRepository --> userService: newUser
81+
82+ userService --> userController: newUser
83+ userController --> WebApp: 201 Created ("Welcome username")
84+ WebApp --> User: navigate('/')
85+ @enduml
86+ ----
87+
3388=== User plays the game
3489
3590This diagram shows the execution of a game
0 commit comments