Tải bản đầy đủ (.pdf) (35 trang)

Capstone Project 1 Meeting Planner Architecture Design.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (925.09 KB, 35 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>MENTOR: Duc, Nguyen Manh MSc.PROJECT TEAM: </b> The Autumn

<b>TEAM MEMBERS: Toan, Truong Nguyen Vinh </b>

Thang, Huynh Ba Sang, Truong Quang, Nguyen Phu

<b>INTERNATIONAL SCHOOL</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

[Meeting Planner] – Architecture Design

<b>Project Information</b>

<b>Project Title</b> Web application for schedule meeting

<b>Start Date</b> Aug 12, 2020 <b>End Date</b> Dec 5, 2020

<b>Lead Institution</b> International School, Duy Tan University

<b>Project Mentor &</b>

Toan Truong Nguyen

Vinh <sup></sup> <sup>0899887640</sup> Sang, Truong 0835500520

Thang, Huynh Ba 0905548920 Quang, Nguyen Phu 0905674603

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

[Meeting Planner] – Architecture Design

DOCUMENT NAME Document

Title <sup>Architecture Design </sup> Author(s) The Autumn

Date 10 Dec, 2020 File name:

<b> </b>

<b>REVISION HISTORY</b>

1.0 Thang, Huynh Ba 14-Sep-2020 Create Architecture design document

1.1 Thang, Huynh Ba 1-Nov-2020 Update 1.2 Thang, Huynh Ba 10-Dec-2020 Format document

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

[Meeting Planner] – Architecture Design

Document Approval

The following signatures are required for approval of this document

Mentor <sup>Duc, Nguyen Manh MSc.</sup>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

[Meeting Planner] – Architecture Design

<b>5High level architecture...32</b>

<b>5.1Component and Connector view (C&C view)...32</b>

<b>5.2Module view...34</b>

<b>5.3Allocation view...35</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

[Meeting Planner] – Architecture Design

<b>1Introduction1.1Purpose</b>

This specification covers following:

Brief specification of the project, high level requirement, system context for the system.

Use case diagram, detail quality attribution.

Architecture presented by various architecture view types: Component and Connect tor view, Module view, Allocation view.

Toan, Truong Nguyen Vinh Scrum Master Thang, Huynh Ba Product Owner Quang, Nguyen Phu Scrum Member Sang, Truong Scrum Member Table 2: Development team

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

[Meeting Planner] – Architecture Design

<b>2.2Business Driver2.2.1Business Problems</b>

In a company or team working together or a group who want to organize a meeting or an appointment, they often have problems how to choose the best time that works for everyone, it seems simple, but there are many problems as this time is suitable for one person but not for the others. And that often takes time.

<b>2.2.2Business Need</b>

Customer need Meeting Planner system that can handle the following issues: Want to create a quick and effect meeting.

Everyone can join into poll and give their best time. Save time when scheduling aa meeting.

Can connect with online meeting tool during quarantine time.

<b>2.3Project Goals</b>

When user use our Meeting Planner system, it can help: Creating a poll voting an meeting.

A system that easy to use.

Everyone can save time when they want to arrange aa meeting Give they the best time when they finish the poll

<b>3Architecture Drivers3.1High-Level Requirements</b>

Refer to [MP]_Product_Backlog_Ver1.2

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

[Meeting Planner] – Architecture Design

<b>3.2System Context</b>

<b>System context description:</b>

The user, they can:

- Create a meeting schedule;

- Livestream while meeting;

- Chat real time. The host, they can:

- Add / delete users in meeting;

- Create, manage, remove schedule. The admin, they can:

- Manage number poll that user created;

- Mange user.

<b>3.3 Architecture Driver Specification</b>

Use Case Entities

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

[Meeting Planner] – Architecture Design

UC01, UC02, UC03, UC04, UC05, UC08, UC09, UC14, UC15, UC16, UC17, UC18, UC19,

<b>Description</b> Host is a person who using the system

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

[Meeting Planner] – Architecture Design

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

[Meeting Planner] – Architecture Design

Operational Use Cases

Preconditions User is already logged out Primary Flow 1. Navigate to /login in browser

2. Type user’s credentials to login form. 3. Submit form by pressing Enter key or Sign In

1. The system will prompt user “input wrong email, password”. 2. User clicks ok to continue.

3. If [Email] and password are correct, continue to step

-In step 2, 3 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

[Meeting Planner] – Architecture Design

Preconditions User is not log in into system. Primary Flow 1. Navigate to /register in browser

2. Type user’s credentials to register form. 3. Submit form by pressing Enter key or Sign Up Post

Conditions Alternate Flows

- In step 1 of the Primary Flow, if [Email] is not match format or is exist. The system will prompt user “Email is exist” or “not correct format”.

-In step 2, 3 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

[Meeting Planner] – Architecture Design

Title Update profile

Description User want to edit their profile information

Entities Involved

Preconditions User is already logged in Primary Flow 1. Navigate to /profile in browser

2. Edit profile information.

3. Submit form by pressing “Save” button. Post

Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

[Meeting Planner] – Architecture Design

Title Update password

Description User want to change their new password

Entities Involved

Preconditions User is already logged in Primary Flow 1. Navigate to /change in browser

2. Enter new password.

3. Submit form by pressing “change” button. Post

Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

[Meeting Planner] – Architecture Design

Title Forgot password Description User forgot password Entities

Preconditions User is already logged out Primary Flow 1. Navigate to /profile in browser

2. Edit profile information.

3. Submit form by pressing Save button. Post

Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

[Meeting Planner] – Architecture Design

Title Manage user

Description Admin want to know how many users was registed to using the system.

Entities Involved

Preconditions Admin is already logged in Primary Flow 1. Navigate to /admin in browser

2. Enter “manage user” button Post

Conditions Alternate Flows

show error message.

- In step 2 of the Primary Flow, if the system has a problem, it will

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

[Meeting Planner] – Architecture Design

Title Manage poll

Description Admin want to know how many polls was created to using the system.

Entities Involved

Preconditions Admin is already logged in Primary Flow 1. Navigate to /admin in browser

2. Enter “manage poll” button Post

Conditions Alternate Flows

show error message.

- In step 2 of the Primary Flow, if the system has a problem, it will

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

[Meeting Planner] – Architecture Design

Title Create poll

Description User want to create a poll to adding their friend or colleague and voting the time.

Entities Involved

Preconditions User is already logged in Primary Flow 1. Navigate to /admin in browser

2. Fill out provided field on the page. 3. press “continue” button to continue. Post

Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

[Meeting Planner] – Architecture Design

Title Set option

Description User want to choose list of available time for their poll. Entities

Preconditions User is already logged in Primary Flow 1. Navigate to /schedule in browser

2. click and choose time.

3. press “more” button to adding another option 4. press “continue” button to continue. Post

Conditions Alternate Flows

show error message.

- In step 2, 3, 4 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

[Meeting Planner] – Architecture Design

Title Invite participants

Description User want to add their friend or colleague into their poll.

Entities Involved

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. type Email name in invite participants field. 3. press “Send” button to invite.

Post Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

[Meeting Planner] – Architecture Design

Title Edit poll

Description User want to change the time option.

Entities Involved

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. click “edit” button

3. Change information’s poll at /create in browser and press

show error message.

- In step 2, 3, 4 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

[Meeting Planner] – Architecture Design

Title Delete participant

Description User want to delete an invitee.

Entities Involved

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. Press “Delete” button next to invitee name. Post

Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

[Meeting Planner] – Architecture Design

Title Finish poll

Description User want to get a best time option.

Entities Involved

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. click “final option” button

Post Conditions Alternate Flows

show error message.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

[Meeting Planner] – Architecture Design

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. Type something on comment field 3. press enter

Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2, 3 of the Primary Flow, if the system has a problem, it will

<b> </b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

[Meeting Planner] – Architecture Design

Title Answer poll

Description User want to get give your selection.

Entities involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser 2. Click on radio button on each option field. 3. press “save” button

Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2, 3 of the Primary Flow, if the system has a problem, it will

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

[Meeting Planner] – Architecture Design

Title Change answer poll

Description User want to change your selection.

Entities Involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /schedule/vote in browser

2. Press “edit” next to invitee’s name on table option 3. Chose new selection.

4. press “save” button Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2, 3, 4 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

[Meeting Planner] – Architecture Design

Title View confirmed

Description User want to change your selection.

Entities Involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /dashboard in browser 2. Press “view confirmed” Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2 of the Primary Flow, if the system has a problem, it will

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

[Meeting Planner] – Architecture Design

Title View all

Description User want to change your selection.

Entities Involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /dashboard in browser 2. Press “view confirmed” Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2 of the Primary Flow, if the system has a problem, it will

<b> </b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

[Meeting Planner] – Architecture Design

Description User want to change your selection.

Entities Involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /dashboard in browser 2. type name of poll on search box. 3. press enter or icon search. 4. press “save” button Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2, 3 4 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

[Meeting Planner] – Architecture Design

Description User want to change your selection.

Entities Involved E02

Preconditions User is already logged in

Primary Flow 1. Navigate to /dashboard in browser 2. type name of poll on search box. 3. press enter or icon search. 4. press “save” button Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2, 3, 4 of the Primary Flow, if the system has a problem, it

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

[Meeting Planner] – Architecture Design

Title Send Notification

Description User want to send final option to participants (include zoom room if meeting online).

Entities Involved E03

Preconditions User is already logged in

Primary Flow 1. Navigate to /option/vote in browser 2. click ‘final option’ button. Post Conditions

Alternate Flows In step 1 of the Primary Flow, if the system has problem, it will show error message.

In step 2 of the Primary Flow, if the system has a problem, it will

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

[Meeting Planner] – Architecture Design

<b>3.4Quality Attributes4Constraints4.1Business Constraint</b>

Project will be started on: 12 – Aug– 2020. Project will be finished on: 05 – Dec– 2020. Project will be finished in 100 days (hours).

<b>4.2Technical Constraint</b>

- Operating System: Windows, Linux, macOS, any device used Web Browser.

- Develop Tools: VSCode.

- Source version control: Git (Github).

- Database: Postgresql Database.

- Internet Connection.

<b>5High level architecture</b>

<b>5.1Component and Connector view (C&C view)</b>

The diagram below shows the overview architecture including component and other related component. We have representations and behaviors for important components in the following sections.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

[Meeting Planner] – Architecture Design

<b>Figure 1: Component & connector viewProse:</b>

Client here is Admin or Client uses our system via Web Browser. When user access to system, they will see a Service Request entry point if they're not authenticated to the system. Once they're authenticated to the system via an account registered by sending service request, if user were admin they will be able to manage poll and user, and if user were client they will be able to create poll after that they become host of the poll which was created, they will be able to invite participants, finish poll and send notification. All features managed by Authentication Layer of processing unit to determine what data will be displayed associate to the login user.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

[Meeting Planner] – Architecture Design

<b>5.2Module view</b>

Figure 2: Module view

<b>Prose: </b>

To process and authorize request from user, all packages are tied up together to authorize the association between user and data (Data Authorization Layer). All requests come from users firstly processed by Middleware, it will determine user is authenticated to the system or not. Then, controllers can handle the business logic. All data access logic is controlled by repository to handle all the data access logics with the association of criteria layers to filter data of users that they can be retrieved. Finally, depending on endpoints, data will be responded to API Gateway or Web Browse

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

[Meeting Planner] – Architecture Design

<b>5.3Allocation view</b>

Figure 3: Allocation view Prose:

When User access to system via Internet, all requests is processed in a central Web Server. Web Server and Database Servers are associated to the same Security Group, data accessing is only produced between Web Server and Database Servers. Web Server determines action is read or write to allocate request to exact database server to retrieve data or execute insertion request. All write actions are performed in Master Database Server and synchronize to all Slave Database Servers. This architecture will help to reduce overwhelming when read and write actions happened in one central database server.

</div>

×