97 lines
2.3 KiB
Plaintext
97 lines
2.3 KiB
Plaintext
@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
|