Professional Documents
Culture Documents
Software Architecture v1
Software Architecture v1
Software Architecture v1
<Your Time>
Software Architecture Document
Version <1.0>
<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01
Revision History
Date Version Description Author
<14/07/22> <1.00> First version of SA document Phan Gia Huy
Table of Contents
1. Introduction 4
3. Use-Case Model 4
4. Logical View 4
4.1 Component: Client GUI
4.2 Component: Administration
4.3 Component: Your Time Registration
4.4 Component: Your Time Database
4.5 Component: Controller
4.6 Component: Business component
4.7 Component: UserInterfaces
5. Deployment 4
6. Implementation View 4
3. Use-Case Model
1. Create account
Brief Description: Allows any user to create a new account from sign up form.
2. Login
Brief Description: Allow users who already have an account to log in
3. Edit profile
Brief Description: Allow users to customize their profile
4. Assign Schedule
Brief Description: Allow users edit their schedule and timeline to show their free time
5. To-do list
Brief Description: Allow user add to-do list
6. ViewType
Brief Description: Allow user to changes the view types of their schedule
7. Notification reminder
4. Logical View
Model view of Your Time using flutter:
This class helps to monitor and control the display state of the application
Include: All the graphic lib, default application configuration, automatic crash application handle
+ getDialog(): return file dialog of information of user, admin and app config.
+ crashHandle(): handle exception scenario into crash problem, exit app.
The administration class has all the permissions that the user class has to directly edit the application
configs and get information and edits from the dialog.
+ setID(): setID for administration & user account
+ getID(): getID of administration & user account
+ setName(): setName for administration & user account
+ getName(): getName of administration & user account
+ setPassword(): Randomly generate and secure a password for input of 1 user ID or no parameters for
yourself, the password will be automatically sent to the ID's email.
+ getDialog():Extract the text file about the update information and the number of visitors as well as the
configs in the dialog file
+ deActive(): self deactivate account or user ID account
+ getUserInfo(): show all the public information about parameter UID.
This class component supports user registration with and configurations such as editing registration form
for the registration manager.
+ setName(string): set the username to registration form
+ getName(): get the user registration name
+ setPw(password): set the password to registration form
+ getPw(): get the password that user already input (help to reshow the password)
+ setEmai(email): check email is registered, valid email
+ geEmail(): returns the email entered by the user
+ createAcc(): check all boxes are filled and valid, then send registration request to registration API
+ display & edit form function: edit, show and add or remove boxes of registration form.
The Your Time database class further supports and stores user information and application system
information
+ Database(): init database
+ addUser(User): add user to the array list Users
+ connect(): checking and connect to the database information
+ disconnect(): disconnect to db server.
+ getFromDatabase(): get the user information and connect status of the database
+ addUserToDatabase(User): Add all user to the main database
Controller component supports the system to control user data, supports storing data into the database
+ Controller(): init Controller
+ addUser(User): add user to the array list Users
+ getUser(): return recent Array list of User
4.6 Component: Business component
Class helps control the transaction process, connects to a bank account, saves transaction history, and
secures transactions
+ run(): init or restore all the user business data
+ addCredit(): allow to add credit by parameter
+ increase and decrease Credit function: increase and decrease according to user transactions
+ bankConnect(): connect your account to your bank account
+ purchase(): make a deals with user option
4.7 Component: UserFeatures
Integrate all user features and interact via interfaces by the view layer
+ setName(string) & getName(): setter & getter of username attribute
+ setPassword(): set password by user input
+ rePassword(): for forgot password features
+ getID(): return ID of user account
+ deActive(): deactivate account this function not direct use by user
+ connectBank(): make a connect to your bank account
+ setUserLevel() and getUserLevel(): setter and getter of UserLevel attribute, set by parameter types and
get will return the type
+ editSchedule(): allow user to edit add, mark remove event, change their schedule
+ removeSchedule(): remove whole scheduler of user
+ _customize(): call the customize function to edit color, background color, color of event,...
+ _editProfile(): Open profile interfaces and save profile
+ _createWidget(): create widget on the desktop or home screen of device to show their event, or their free
time
+ exportFreeTime(): export schedule to pdf file or png file
Diagram:
5. Deployment
PA4
6. Implementation View
PA4