You are on page 1of 15

<Group 8>

<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

Confidential ©<Your Time>, 2022 Page 2 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

Table of Contents
1. Introduction 4

2. Architectural Goals and Constraints 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

Confidential ©<Your Time>, 2022 Page 3 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

Software Architecture Document


1. Introduction
Software architecture is, simply, the organization of a system. This organization includes all components,
how they interact with each other, the environment in which they operate, and the principles used to design
the software. In many cases, it can also include the evolution of the software into the future.
The behavior and structure of the software impact significant decisions, so they need to be appropriately
rendered and built for the best possible results.
2. Architectural Goals and Constraints
System constraints that have a significant bearing on the architecture:
- User & local application data must be in a format supported by DBMS of Your Time system
- Tasks and events are updated continuously in the background.
- The Your Time system will be implemented as a client-server system.
- The Your Time System must ensure complete protection of data from unauthorized access
- All performance and loading requirements, as stipulated in the Vision Document and the
Supplementary Specification, must be taken into consideration as the architecture is being
developed.

Confidential ©<Your Time>, 2022 Page 4 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

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

Confidential ©<Your Time>, 2022 Page 5 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

Brief Description: Allow system access to display notifications


8. Customize
Brief Description: Allow user to changes layout options for the weekly planner, change
color, theme calendar, event
9. Contact
Brief Description: Display developer contact information, address phone number
10. Challenge
Brief Description: Show events of a group or organization in nearest area to your
location, guide and suggest you some activities users could do in their free time
11. Premium upgrade
Brief Description: Users pay money to upgrade their membership to premium for none
ads and a more customizable calendar board.
12. Share
Brief Description: Allow user to share their free time, schedule, and their event to another
user
13. Widget
Brief Description: Add to the home screen of device a widget that show the schedule and
user’s free time for easy checking

4. Logical View
Model view of Your Time using flutter:

Confidential ©<Your Time>, 2022 Page 6 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

Confidential ©<Your Time>, 2022 Page 7 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

4.1 Component: Client GUI

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.

Confidential ©<Your Time>, 2022 Page 8 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

4.2 Component: Administration

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.

4.3 Component: Your Time Registration

Confidential ©<Your Time>, 2022 Page 9 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

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.

4.4 Component: Your Time Database

Confidential ©<Your Time>, 2022 Page 10 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

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

Confidential ©<Your Time>, 2022 Page 11 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

+ getUser(): return recent Array list of User


4.5 Component: Controller

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

Confidential ©<Your Time>, 2022 Page 12 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

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

Confidential ©<Your Time>, 2022 Page 13 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

+ 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

Confidential ©<Your Time>, 2022 Page 14 of 15


<Your Time> Version: <1.0>
Software Architecture Document Date: <14/07/22>
SAD01

6. Implementation View
PA4

Confidential ©<Your Time>, 2022 Page 15 of 15

You might also like