8.3 KiB
8.3 KiB
Use Case Low Detail Overview:
@startuml
left to right direction
skinparam packageStyle rectangle
skinparam usecase {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
FontSize 16
RoundCorner 20
}
title Use Case Low Detail Overview
actor "User Interface" as User
rectangle "Flask App" as App {
usecase "View Homepage" as ViewHomepage
usecase "Change Settings" as ChangeSettings
usecase "Fetch Candle History" as FetchCandleHistory
usecase "Initialize Indicators" as InitializeIndicators
usecase "Sign Up" as SignUp
usecase "Sign In" as SignIn
usecase "Sign Out" as SignOut
User --> ViewHomepage
User --> ChangeSettings
User --> FetchCandleHistory
User --> InitializeIndicators
User --> SignUp
User --> SignIn
User --> SignOut
}
@enduml
Use Case Medium Detail Overview:
@startuml
left to right direction
skinparam packageStyle rectangle
skinparam usecase {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
FontSize 16
RoundCorner 20
}
title Use Case Medium Detail Overview
actor "User Interface" as User
rectangle "Flask App" as App {
usecase "View Homepage" as ViewHomepage
usecase "Change Settings" as ChangeSettings
usecase "Fetch Candle History" as FetchCandleHistory
usecase "Initialize Indicators" as InitializeIndicators
usecase "Sign Up" as SignUp
usecase "Sign In" as SignIn
usecase "Sign Out" as SignOut
User --> ViewHomepage
User --> ChangeSettings
User --> FetchCandleHistory
User --> InitializeIndicators
User --> SignUp
User --> SignIn
User --> SignOut
ViewHomepage --> (Log In)
ViewHomepage --> (Connect to Alpaca Exchange)
ViewHomepage --> (Retrieve Rendered Data)
ChangeSettings --> (Adjust Setting)
FetchCandleHistory --> (Retrieve Candle History)
InitializeIndicators --> (Retrieve Indicator Data)
SignUp --> (Create New User)
SignUp --> (Log In)
SignIn --> (Log In)
SignOut --> (Log Out)
}
@enduml
Use Case View Homepage:
@startuml
left to right direction
skinparam packageStyle rectangle
skinparam usecase {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
FontSize 16
RoundCorner 20
}
title Use Case View Homepage
actor "User Interface" as User
rectangle "Flask App" as App {
usecase "View Homepage" as ViewHomepage
usecase "Log In" as LogIn
usecase "Connect to Alpaca Exchange" as ConnectToAlpaca
usecase "Retrieve Rendered Data" as RetrieveRenderedData
usecase "Retrieve Candle History" as RetrieveCandleHistory
usecase "Retrieve Indicator Data" as RetrieveIndicatorData
usecase "Log Out" as LogOut
User --> ViewHomepage
ViewHomepage --> LogIn
ViewHomepage --> ConnectToAlpaca
ViewHomepage --> RetrieveRenderedData
ViewHomepage --> RetrieveCandleHistory
ViewHomepage --> RetrieveIndicatorData
ViewHomepage --> LogOut
LogIn --> (Authenticate User)
LogIn --> (Set User Session)
ConnectToAlpaca --> (Set Alpaca API Keys)
ConnectToAlpaca --> (Connect to Alpaca Exchange)
RetrieveRenderedData --> (Load or Create User)
RetrieveRenderedData --> (Connect User to Exchange)
RetrieveRenderedData --> (Get Rendered Data)
RetrieveCandleHistory --> (Get Candle History)
RetrieveIndicatorData --> (Get Indicator Data)
LogOut --> (Log Out User)
}
@enduml
Sequence Request Homepage
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
title Sequence Request Homepage
actor "User Interface" as User
participant "Flask App" as App
participant "BrighterTrades" as BrighterTrades
participant "Config" as Config
participant "User Storage" as UserStorage
User -> App: Request Homepage
App -> BrighterTrades: Create BrighterTrades object
App -> Config: Load server configuration
App -> UserStorage: Load or create user
App -> BrighterTrades: Connect user to exchange
BrighterTrades -> Config: Retrieve API keys
App -> BrighterTrades: Get rendered data
App -> BrighterTrades: Get JS initialization data
App --> User: Serve Homepage
@enduml
Use Case Change Settings:
@startuml
title Use Case Change Settings
left to right direction
skinparam packageStyle rectangle
skinparam usecase {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
FontSize 16
}
skinparam actor {
BackgroundColor lightgreen
BorderColor black
FontColor darkblue
FontSize 16
}
actor "User Interface" as User
rectangle "Flask App" as App {
usecase "Change Settings" as ChangeSettings
usecase "Adjust Setting" as AdjustSetting
User --> ChangeSettings
ChangeSettings --> AdjustSetting
AdjustSetting --> (Retrieve User Session)
AdjustSetting --> (Check User Login)
AdjustSetting --> (Get Setting)
AdjustSetting --> (Update Setting)
}
@enduml
Sequence Change Settings
@startuml
title Sequence Change Settings
skinparam sequence {
ActorBackgroundColor lightgreen
ParticipantBackgroundColor lightblue
ActorBorderColor black
ParticipantBorderColor black
ActorFontColor darkblue
ParticipantFontColor darkblue
FontSize 14
}
actor "User Interface" as User
participant App as "Flask App"
participant BrighterTrades as "BrighterTrades"
participant Config as "Config"
participant UserStorage as "User Storage"
User -> App: Submit Settings Change
App -> BrighterTrades: Adjust Setting
BrighterTrades -> UserStorage: Get User Data
App --> User: Redirect to Homepage
@enduml
Use Case Fetch Candle History:
@startuml
left to right direction
skinparam packageStyle rectangle
skinparam usecase {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface" as User
rectangle "Flask App" as App {
usecase "Fetch Candle History" as FetchCandleHistory
usecase "Retrieve Candle History" as RetrieveCandleHistory
User --> FetchCandleHistory
FetchCandleHistory --> RetrieveCandleHistory
RetrieveCandleHistory --> (Get User Session)
RetrieveCandleHistory --> (Check User Login)
RetrieveCandleHistory --> (Retrieve Chart View)
RetrieveCandleHistory --> (Fetch Candle Data)
}
@enduml
Sequence Request candle history
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface" as User
participant App as "Flask App"
participant BrighterTrades as "BrighterTrades"
participant Candles as "Candles"
participant UserStorage as "User Storage"
User -> App: Request Candle History
App -> BrighterTrades: Process Incoming Message
BrighterTrades -> UserStorage: Get User Data
App -> Candles: Get Candle History
Candles --> App: Return Candle History
App --> User: Serve Candle History
@enduml
Sequence Initialize Indicators:
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface" as User
User -> app: Requests initialized indicators
activate app #005500
app -> Indicators: initialize indicators
activate Indicators #005500
Indicators -> app: return initialized indicators
deactivate Indicators
app -> User: Returns initialized indicators
deactivate app
@enduml
Sequence Sign in:
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface"
"User Interface" -> app: requests "Sign In"
activate app #005500
app -> "Sign In": enter email and password
activate "Sign In" #005500
"Sign In" -> app: authenticate user
deactivate "Sign In"
app -> "User Interface": Return "Signed In" result
deactivate app
@enduml
Sequence Sign up:
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface" as User
User -> app: send "Sign Up" request
activate app #005500
app -> "Sign Up": email, password, and confirm password
activate "Sign Up" #005500
"Sign Up" -> app: create new user
deactivate "Sign Up"
app -> User: Return "Signed Up" result
deactivate app
@enduml
Sequence Sign out:
@startuml
skinparam participant {
BackgroundColor lightblue
BorderColor black
FontColor darkblue
}
actor "User Interface" as User
User -> app: send "Sign Out" request
activate app #005500
app -> "Sign Out": sign out user
activate "Sign Out" #005500
"Sign Out" -> app: clear user data
deactivate "Sign Out"
app -> User: return "Signed Out" result
deactivate app
@enduml