1
0

PRPA lb-4

This commit is contained in:
Sytnyk Yehor
2025-05-30 22:56:34 +03:00
parent 84f7393e78
commit 1e4d20b6a8
10 changed files with 294 additions and 0 deletions

View File

@ -0,0 +1,45 @@
@startuml
skin rose
skinparam backgroundColor #EEEBDC
left to right direction
package "Backend Server" as backend {
[App.rs] --> [Router.rs]
[App.rs] --> [Hooks.rs]
[Router.rs] --> [Controllers.rs]
[Router.rs] --> [DataViews.rs]
[Controllers.rs] --> [DataModels.rs]
[Controllers.rs] --> [Mailers.rs]
[Controllers.rs] -r-> [DataViews.rs]
[Controllers.rs] -l-> [APIProviders.rs]
[DataModels.rs] -l-> [DatabaseEntities.rs]
}
package "Database" as db {
[DatabaseEntities.rs] --> [DatabaseMigrations.rs]
}
package "Frontend Server" as frontend {
[main.tsx] -u-> [routes]
[routes] -u-> [components]
[components] -u-> [hooks]
[hooks] -u-> [store]
[hooks] -u-> [api]
[api] -r-> [types]
[store] -l-> [types]
}
package "Mobile App" {
[MainActivity.kt] -u-> [Fragments.kt]
[Fragments.kt] -u-> [ViewModels.kt]
[Fragments.kt] -r-> [Adapters.kt]
[ViewModels.kt] -u-> [APIClient.kt]
[APIClient.kt] -r-> [DataModels.kt]
[DataModels.kt] -l-> [ViewModels.kt]
}
[App.rs] -u- [APIClient.kt] : Rest
[App.rs] -u- [api] : Rest
@enduml

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,81 @@
@startuml
skin rose
skinparam backgroundColor #EEEBDC
node backend [
<b>Backend Server Instance(s)</b>
---
App.rs
....
Router.rs
....
Hooks.rs
....
Controllers.rs
....
DataViews.rs
....
DataModels.rs
....
Mailers.rs
....
APIProviders.rs
....
APIProviders.rs
....
DatabaseEntities.rs
....
DatabaseMigrations.rs
]
node db_server [
<b>Database Server Instance(s)</b>
---
Actual PostgreSQL Database
]
node frontend_host [
<b>Frontend Hosting/CDN</b>
---
main.tsx
....
routes
....
components
....
hooks
....
store
....
api
....
types
]
node workstation [
<b>User Workstation</b>
]
node mobile_devices [
<b>User Mobile Devices</b>
---
MainActivity.kt
....
Fragments.kt
....
ViewModels.kt
....
Adapters.kt
....
APIClient.kt
....
DataModels.kt
]
backend -- db_server : TCP/IP - ORM Connection
frontend_host -u-> workstation : HTTPS - Serves Assets
workstation --> backend : HTTPS - REST API Calls
mobile_devices --> backend : HTTPS - REST API Calls
@enduml

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,96 @@
@startuml
skin rose
skinparam backgroundColor #EEEBDC
hide empty description
[*] --> Registration
state Registration {
Registration --> Email_Validation
Registration --> Google_Authentication
Email_Validation : register()
Email_Validation : send_confirmation_email()
Email_Validation : validate_email()
Google_Authentication : login_with_google()
Google_Authentication : validate_google_token()
Email_Validation --> User_Registered
Google_Authentication --> User_Registered
}
User_Registered --> Login
state Login {
Login --> Credentials_Validation
Login --> Google_Authentication_Login
Credentials_Validation : validate_login()
Credentials_Validation : validate_password()
Google_Authentication_Login : login_via_google()
Credentials_Validation --> User_LoggedIn
Google_Authentication_Login --> User_LoggedIn
}
state User_LoggedIn {
state Main_Menu {
Main_Menu --> Task
Main_Menu --> Task_Group
}
Main_Menu : view_tasks()
Main_Menu : view_task_groups()
Main_Menu : search_tasks(keyword)
Main_Menu : filter_tasks_by_access(access_type)
state Task {
Task --> Create_Task
Task --> View_Task
Task --> Edit_Task
Task --> Delete_Task
}
Task : create(title, description)
Task : edit(task_id, new_title, new_description)
Task : delete(task_id)
Task : view(task_id)
Task : set_access(task_id, access_type)
Task : add_attachment(task_id, file)
Task : download_attachment(task_id, file_id)
Task : get_attachment_list(task_id)
Task : view_history(task_id)
Task : remove_attachment(task_id, file_id)
Create_Task --> Set_Task_Access
Edit_Task --> Set_Task_Access
state Set_Task_Access {
Set_Task_Access --> Public_Access
Set_Task_Access --> Private_Access
Set_Task_Access --> Paid_Access
}
Public_Access : access = public
Private_Access : access = private
Paid_Access : access = paid
state Task_Group {
Task_Group --> Create_Group
Task_Group --> View_Group
Task_Group --> Edit_Group
Task_Group --> Delete_Group
}
Task_Group : create_group(name)
Task_Group : add_task_to_group(task_id)
Task_Group : remove_task_from_group(task_id)
Task_Group : delete_group(group_id)
Task_Group : rename_group(group_id, new_name)
Task_Group : view_group(group_id)
}
User_LoggedIn --> [*]
@enduml

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 34 KiB