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

đồ án 1 ứng dụng ghi chú tích hợp pomodoro

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 (1.75 MB, 45 trang )

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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

<b>ĐỒ ÁN MÔN HỌC ĐỒ ÁN 1 </b>

<b>ĐỀ TÀI: ỨNG DỤNG GHI CHÚ TÍCH HỢP POMODORO </b>

<b>Giảng viên hướng dẫn: Ths Nguyễn Cơng Hoan </b>

Lớp: SE121.011

Nhóm sinh viên thực hiện:

<i><b>Tp. Hồ Chí Minh, tháng 12 năm 2023</b></i>

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

<b><small>Chương 3: Phân tích bài tốn ...14</small></b>

<small>3.1.Danh sách yêu cầu phần mềm ...14</small>

<small>3.2.Use Case Diagram ...14</small>

<small>3.2.1.Use case Quản lý danh sách tác vụ ...14</small>

<small>3.2.2.Use case Quản lý danh sách công việc ...15</small>

<small>3.2.3.Use case Cài đặt ...18</small>

<small>3.2.4.Use case Đăng xuất ...21</small>

<b><small>Chương 4: Thiết kế ...26</small></b>

<small>4.1.Thiết kế giao diện ...26</small>

<small>4.1.1.Giao diện Home ...26</small>

<small>4.1.2.Giao diện thêm Task ...28</small>

<small>4.1.3.Giao diện thông tin Task ...29</small>

<small>4.1.4.Giao diện mục lục ...30</small>

<small>4.1.5.Giao diện xóa Task ...31</small>

<small>4.1.6.Giao diện màn hình Project ...32</small>

<small>4.1.7.Giao diện chi tiết Project ...33</small>

<small>4.1.8.Giao diện cài đặt ...34</small>

<small>4.1.9.Giao diện làm việc ...35</small>

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

<small>4.1.10.Giao diện nghỉ theo Pomodoro ...39</small>

<small>4.1.11.Giao diện chỉnh sửa Pomodoro...40</small>

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

<b>LỜI CẢM ƠN </b>

Lời đầu tiên, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến thầy Nguyễn Công Hoan là giảng viên hướng dẫn trực tiếp và trang bị cho chúng em những kiến thức căn bản vững chắc để thực hiện đồ án này.

Trong khoảng thời gian thực hiện đồ án, chúng em đã học hỏi thêm được nhiều kiến thức, kinh nghiệm, biết được thêm về nhiều cơng nghệ mới. Nhóm em đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới. Từ đó, vận dụng tối đa những gì đã học hỏi được để hoàn thành báo cáo đồ án này.

Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song báo cáo của nhóm chúng em chắc chắn khơng tránh khỏi những thiếu sót, chúng em rất mong nhận được sự thơng cảm và góp ý chân thành từ q thầy, cơ. Nhóm em xin chân thành cảm ơn.

Tp.HCM, ngày 30 tháng 12 năm 2023

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

<b>LỜI MỞ ĐẦU </b>

Trong đồ án môn học này, em chọn đề tài “Ứng dụng ghi chú tích hợp Pomodoro” để tiếp tục xây dựng ứng dụng ghi chú vì đây là một ứng dụng rất phù hợp với người đi làm cũng như đi học, đặc biệt là trong thời điểm khối lượng công việc nhiều như hiện tại. Với sự phát triển của công nghệ số, chúng ta cần một ứng dụng tích hợp sẵn trong điện thoại, giúp quản lí thời gian làm việc, cũng như phân chia thời gian làm việc bằng Pomodoro theo 1 cách hợp lí và khoa học nhất.

Em mong muốn rằng đồ án này sẽ mang lại cho em và những người sử dụng trải nghiệm độc đáo và linh hoạt. Em sẽ tập trung vào việc thiết kế giao diện người dùng thân thiện và tích hợp các tính năng quản lý cơng việc và thời gian một cách linh hoạt nhất. Em cũng đặt sự chú ý vào việc tối ưu hóa trải nghiệm người dùng để giúp họ theo dõi và cải thiện hiệu suất làm việc theo thời gian.

Ứng dụng áp dụng các công nghệ như React Native, Realm với các tính năng quan trọng như tìm kiếm người dùng, tạo hồ sơ cá nhân, gửi tin nhắn và tương tác trực tuyến. Giao diện người dùng được thiết kế đẹp và thân thiện, mang lại trải nghiệm tương tác mượt mà và tiện lợi.

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

<b>Chương 1: Tổng quan </b>

1.1. Mục tiêu đề tài

Phần mềm ngày nay đã trở thành một phần khơng thể thiếu trong cuộc sống, đóng vai trị quan trọng trong việc hỗ trợ nhiều khía cạnh từ quản lý, kiểm toán đến giao tiếp và xã hội. Trong những năm gần đây, xu hướng mới nhất của phần mềm đang hướng tới mảng giao tiếp và quản lý cơng việc, nơi mà ứng dụng đó chính là người đồng hành quan trọng trong quá trình tìm hiểu và kết nối với cơng việc.

Q trình quản lý công việc và thời gian thường đi qua các bước cụ thể, bắt đầu từ việc phân chia công việc, theo đó là giai đoạn thực hiện và cuối cùng là đánh giá kết quả. Việc ra đời của các ứng dụng ghi chú tích hợp Pomodoro giúp tối ưu hóa và đơn giản hóa q trình này, giúp em dễ dàng theo dõi công việc, tập trung hiệu quả và đạt được kết quả mong muốn.

1.2. Đối tượng nghiên cứu

Đối tượng chính của nghiên cứu này là những người sử dụng ứng dụng ghi chú tích hợp Pomodoro, đặc biệt là những cá nhân đang tìm kiếm một cơng cụ hiệu quả để quản lý công việc và thời gian trong môi trường làm việc đa nhiệm ngày nay. Các đối tượng nghiên cứu này bao gồm:

<b> Những Người Cần Tối Ưu Hóa Quản Lý Cơng Việc: Các cá nhân có nhu cầu </b>

tối ưu hóa q trình làm việc và phân chia công việc thành các đợt Pomodoro để nâng cao hiệu suất làm việc.

cải thiện khả năng tập trung và giữ được sự chú ý trong công việc một cách hiệu quả.

<b> Cộng Đồng Học Sinh và Sinh Viên: Sinh viên và học sinh đang tìm kiếm cơng </b>

cụ hữu ích để quản lý thời gian học tập và các nhiệm vụ liên quan.

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

 <b>Các Chuyên Gia và Người Làm Việc Tự Do: Những người làm việc tự do hoặc </b>

chuyên gia đang tìm kiếm phương tiện để tự quản lý thời gian và công việc một cách hiệu quả.

tâm đến việc phát triển thói quen làm việc hiệu quả và muốn sử dụng kỹ thuật Pomodoro như một công cụ hỗ trợ.

Bằng cách tập trung nghiên cứu vào nhóm đối tượng này, chúng ta sẽ có cơ hội hiểu rõ hơn về cách ứng dụng ghi chú tích hợp Pomodoro có thể đáp ứng nhu cầu và mong muốn của họ, đồng thời cung cấp những giải pháp thực tế và linh hoạt nhất để họ quản lý công việc và thời gian.

 Đối tượng đề tài hướng đến:

+ Học sinh, sinh viên, người đi làm.

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

<b>Chương 2: Cơ sở lý thuyết và Công nghệ sử dụng </b>

2.1. Cơ sở lý thuyết

2.1.1. Front-end là gì?

<b> Front-end, hay cịn được gọi là phía giao diện người dùng của ứng dụng, </b>

là một phần khơng thể thiếu trong q trình phát triển ứng dụng. Nó chịu trách nhiệm xây dựng giao diện mà người dùng tương tác và trải nghiệm. Front-end không chỉ liên quan đến việc hiển thị thông tin, mà còn đặt ra thách thức về việc tạo ra trải nghiệm người dùng mượt mà và hấp dẫn.  Front-end được tích hợp và sử dụng một cách quan trọng trong nhiều

trường hợp, đặc biệt là khi:

 Xây Dựng Giao Diện Người Dùng (UI): Front-end đóng vai trị quan trọng trong việc xây dựng giao diện người dùng hấp dẫn và dễ sử dụng cho ứng dụng và trang web.

 Tăng Tương Tác Người Dùng: Khi cần tạo ra trải nghiệm người dùng tích cực và tương tác cao, Front-end giúp thực hiện các chức năng như thao tác click, kéo và thả, và các hiệu ứng động.

 Phát Triển Ứng Dụng Di Động: Front-end chơi một vai trò quyết định trong phát triển ứng dụng di động, bao gồm cả việc tối ưu hóa giao diện cho các thiết bị di động và tích hợp các tính năng đặc biệt của điện thoại.

 Xây Dựng Trang Thương Mại Điện Tử (E-commerce): Trong các dự án thương mại điện tử, Front-end làm nổi bật các sản phẩm, tối ưu hóa q trình mua sắm và cung cấp trải nghiệm mua sắm trực tuyến linh hoạt.

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

 Tích Hợp Chức Năng Xử Lý Dữ Liệu Người Dùng: Khi cần thu thập, xử lý và hiển thị dữ liệu động từ người dùng, Front-end đảm nhận vai trị chính trong việc tương tác với Back-end.

2.2. Công nghệ sử dụng 2.2.1. Front End

2.2.1.1. React Native a. Khái niệm

React Native là một framework được phát triển bởi Facebook cho phép phát triển ứng dụng di động đa nền tảng bằng cách sử dụng JavaScript và React. React Native cho phép các nhà phát triển sử dụng cùng một mã nguồn để phát triển ứng dụng cho cả iOS và Android, giúp tiết kiệm thời gian và công sức trong việc phát triển ứng dụng. React Native sử dụng một hệ thống giao diện dựa trên các thành phần (component-based) giống như React, cho phép các nhà phát triển xây dựng giao diện người dùng linh hoạt và dễ dàng. Ngoài ra, React Native cũng cung cấp nhiều thư viện và công cụ hỗ trợ cho việc phát triển ứng dụng di động, giúp cho quá trình phát triển trở nên nhanh chóng và hiệu quả hơn.

b. Đặc trưng

Các đặc trưng cơ bản của React Native bao gồm:

<small> </small> Cross-platform: React Native cho phép phát triển ứng dụng cho cả iOS và Android bằng cách sử dụng cùng một mã nguồn. <small> </small> Component-based: React Native sử dụng một hệ thống giao

diện dựa trên các thành phần (component-based), giúp cho việc xây dựng giao diện người dùng trở nên dễ dàng và linh hoạt hơn.

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

<small> </small> Hot reloading: React Native hỗ trợ tính năng hot reloading, cho phép các nhà phát triển thực hiện các thay đổi trực tiếp trên ứng dụng mà không cần phải khởi động lại.

<small> </small> Native functionality: React Native cho phép truy cập đến các tính năng của hệ điều hành như camera, định vị, và thông báo. <small> </small> Performance: React Native được tối ưu để đạt hiệu suất cao trên

các thiết bị di động, giúp cho ứng dụng chạy mượt mà và đáp ứng tốt với các thao tác của người dùng.

<small> </small> Third-party library: React Native cung cấp rất nhiều thư viện và công cụ hỗ trợ cho việc phát triển ứng dụng, giúp cho quá trình phát triển trở nên dễ dàng và nhanh chóng hơn.

c. Kiến trúc

Kiến trúc mới của React Native là một sự cải tiến lớn so với kiến trúc cũ, nhằm giải quyết các vấn đề về hiệu suất, tính linh hoạt và khả năng mở rộng của nền tảng này. Kiến trúc mới bao gồm bốn thành phần chính là:

<small> </small> JSI (JavaScript Interface): Là một lớp trừu tượng hóa giữa mã JavaScript và mã native, cho phép gọi các hàm native một cách trực tiếp từ JavaScript mà không cần thông qua bridge. JSI cũng cho phép sử dụng các công cụ JavaScript khác nhau như Hermes, V8 hay JSC.

<small> </small> Fabric: Là tên mới của UIManager, có trách nhiệm quản lý các thành phần giao diện người dùng (UI component) bên native. Fabric sử dụng JSI để giao tiếp với JavaScript và cải thiện hiệu suất render UI bằng cách sử dụng nhiều luồng và hỗ trợ các tính

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

<small> </small> Turbo Module: Là tên mới của Native Module, là các module native được viết bằng Java, Objective-C hay Swift để cung cấp các chức năng khơng có sẵn trong JavaScript. Turbo Module sử dụng JSI để giao tiếp với JavaScript và được tải lười (lazy load) khi cần thiết thay vì được khởi tạo ngay từ đầu.

<small> </small> CodeGen: Là một công cụ để sinh ra các định nghĩa kiểu (type definition) cho các UI component và Native Module, giúp cho việc kiểm tra kiểu và tối ưu hóa mã nguồn dễ dàng hơn.

Kiến trúc mới của React Native hứa hẹn mang lại nhiều lợi ích cho các nhà phát triển ứng dụng cross-platform, như tăng tốc độ khởi động, giảm dung lượng ứng dụng, cải thiện trải nghiệm người dùng và hỗ trợ các tính năng mới của React. Hiện tại, kiến trúc mới đang được triển khai dần dần trong các phiên bản mới nhất của React Native.

d. Cách hoạt động

React Native hoạt động bằng cách sử dụng các thành phần (components) và các module Native để tạo giao diện người dùng và truy cập đến các tính năng của hệ điều hành.

Khi một ứng dụng React Native được khởi động, nó sẽ thực hiện các bước sau:

<small> </small> JavaScript thread thực thi mã nguồn JavaScript: Mã nguồn JavaScript của ứng dụng được thực thi trên JavaScript thread. JavaScript thread sẽ tạo ra các thành phần (components) và tương tác với các module Native để truy cập đến các tính năng của hệ điều hành.

<small> </small> UI thread vẽ giao diện người dùng: UI thread là một luồng riêng biệt được sử dụng để vẽ giao diện người dùng. UI thread sử

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

dụng các thành phần được định nghĩa trong mã nguồn JavaScript để tạo và hiển thị giao diện người dùng.

<small> </small> Native modules truy cập tính năng của hệ điều hành: Khi cần truy cập đến các tính năng của hệ điều hành như camera, định vị, và thông báo, JavaScript thread sẽ gọi các module Native để thực hiện các thao tác này.

<small> </small> Thay đổi trên giao diện được cập nhật: Khi người dùng tương tác với giao diện, các sự kiện sẽ được gửi đến UI thread để xử lý và cập nhật lại giao diện người dùng.

e. Các thành phần chính

Các thành phần chính của React Native bao gồm:

<small> </small> Components: Là các thành phần cơ bản để xây dựng giao diện của ứng dụng. React Native cung cấp các components cơ bản như Text, View, Image, TextInput, Button, FlatList, ScrollView, v.v...

<small> </small> Props: Là các thuộc tính được sử dụng để truyền dữ liệu và cấu hình cho các components.

<small> </small> State: Là trạng thái của một component, khi state thay đổi thì component sẽ được cập nhật lại. State được quản lý bởi React và có thể được sử dụng để lưu trữ các giá trị động của ứng dụng. <small> </small> Style: Là các thuộc tính để cấu hình kiểu dáng cho các

components, tương tự như CSS trong web.

<small> </small> Navigator: Là các thành phần để quản lý điều hướng giữa các màn hình trong ứng dụng.

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

<small> </small> API: Là các phương thức và lớp được cung cấp bởi React Native để truy cập các tính năng và chức năng của thiết bị, chẳng hạn như Camera, Location, AsyncStorage, v.v...

<small> </small> Native Modules: Là các module được viết bằng ngơn ngữ lập trình Native (Java hoặc Objective-C/Swift) để cung cấp các tính năng phức tạp hơn cho ứng dụng

2.2.2. Back End 2.2.2.1. Realm

a. Khái niệm

Realm Database là một cơ sở dữ liệu di động, nhẹ và hiệu quả, được thiết kế để sử dụng trong phát triển ứng dụng di động. Realm Database được ưa chuộng trong cộng đồng phát triển ứng dụng di động do nó mang lại nhiều lợi ích như hiệu suất cao, tích hợp dễ dàng và khả năng đồng bộ dữ liệu linh hoạt giữa các thiết bị. b. Đặc trưng

 Hiệu Suất Cao: Realm được tối ưu hóa để cung cấp hiệu suất đọc và ghi dữ liệu nhanh chóng, giảm thiểu độ trễ khi tương tác với cơ sở dữ liệu.

 NoSQL Database: Realm là một cơ sở dữ liệu NoSQL, sử dụng mơ hình dữ liệu đối tượng thay vì SQL truyền thống, giúp đơn giản hóa q trình lập trình và tương tác với dữ liệu.

 Dễ Dàng Điều Chỉnh Schema: Realm cho phép thay đổi cấu trúc dữ liệu mà không cần thực hiện quá trình migration phức tạp, giúp giảm thiểu các vấn đề liên quan đến sự thay đổi cấu trúc của dữ liệu.

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

 Tích Hợp Dễ Dàng: Realm tích hợp dễ dàng vào dự án, hỗ trợ nhiều ngơn ngữ lập trình như Swift (iOS), Kotlin và Java (Android), giảm độ phức tạp của việc tích hợp.

 Đồng Bộ Dữ Liệu Linh Hoạt: Cung cấp khả năng đồng bộ dữ liệu giữa các thiết bị, cho phép duy trì tính nhất qn của dữ liệu trên nhiều nền tảng.

 Hỗ Trợ Đa Nền Tảng: Hỗ trợ đa nền tảng, cho phép chia sẻ cơ sở dữ liệu giữa các hệ điều hành như iOS và Android.

 Hỗ Trợ Async Queries: Hỗ trợ truy vấn bất đồng bộ, giúp ứng dụng duy trì tính độc lập khi thực hiện các truy vấn dữ liệu.  Hỗ Trợ Encryption: Realm hỗ trợ mã hóa dữ liệu để bảo vệ

thơng tin nhạy cảm khỏi sự truy cập trái phép.

 Community và Tài Liệu: Có một cộng đồng sử dụng rộng rãi và tài liệu phong phú, giúp người phát triển nhanh chóng giải quyết vấn đề và cập nhật thông tin mới nhất.

 Open Source: Realm là một dự án mã nguồn mở, cho phép cộng đồng tham gia phát triển và cải thiện cùng với sự hỗ trợ từ nhóm phát triển chính.

c. Kiến trúc

Kiến trúc của Realm Database là một kiến trúc hiệu suất cao và linh hoạt được thiết kế để đáp ứng nhu cầu lưu trữ và quản lý dữ liệu trong ứng dụng di động. Dưới đây là một cái nhìn tổng quan về kiến trúc của Realm Database:

 Realm Core: Realm Core là một thư viện lõi chia sẻ giữa các nền tảng (iOS, Android), đảm bảo đồng nhất trong cách dữ liệu được xử lý.

 Bộ Nhớ Máy Tính (Memory-Mapped Files): Realm sử dụng bộ nhớ máy tính (memory-mapped files) để cho phép

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

ứng dụng truy cập trực tiếp vào cơ sở dữ liệu từ bộ nhớ, giảm bớt độ trễ và tăng hiệu suất.

 Transactions: Realm sử dụng giao dịch để đảm bảo tính nhất quán dữ liệu. Mọi thay đổi dữ liệu đều phải nằm trong một giao dịch.

 Encryption: Realm hỗ trợ mã hóa dữ liệu để bảo vệ thơng tin nhạy cảm khỏi sự truy cập trái phép.

 Bảo Mật: Cung cấp cơ chế kiểm soát truy cập và quản lý quyền để bảo vệ dữ liệu.

d. Ưu điểm và nhược điểm

 Realm được tối ưu hóa cho hiệu suất cao, với truy xuất dữ liệu nhanh chóng và ghi dữ liệu hiệu quả.  Sử dụng mơ hình đối

tượng giúp đơn giản hóa quá trình lập trình và tương tác với dữ liệu.  Hỗ trợ đồng bộ dữ liệu

giữa các thiết bị di động, giúp duy trì tính nhất qn của dữ liệu.

 Có khả năng thay đổi cấu trúc dữ liệu mà không cần thực hiện quá trình

migration phức tạp.  Hỗ trợ đa nền tảng, cho

phép chia sẻ cơ sở dữ liệu

 Trong một số dự án lớn Realm có thể gặp khó khăn trong việc thích ứng.

 Kích thước của cơ sở dữ liệu Realm có thể tăng nhanh chóng khi có nhiều dữ liệu, ảnh hưởng đến kích thước của ứng dụng.  Realm không hỗ trợ một

số truy vấn phức tạp như các cơ sở dữ liệu SQL truyền thống.

 Có thể gặp khó khăn khi đồng bộ dữ liệu Realm với các cơ sở dữ liệu ngoại vi không sử dụng Realm.

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

giữa các hệ điều hành như iOS và Android.

 Hỗ trợ truy vấn bất đồng bộ, giúp ứng dụng duy trì tính linh hoạt và phản hồi nhanh chóng.

 Cung cấp tính năng mã hóa dữ liệu để bảo vệ thơng tin nhạy cảm và cơ chế bảo mật cho quản lý quyền.

 Có một cộng đồng sử dụng rộng rãi và tài liệu phong phú, giúp người phát triển dễ dàng giải quyết vấn đề.

 Do sử dụng mơ hình đối tượng, việc diễn giải dữ liệu có thể trở nên khó khăn đối với những người mới tham gia dự án.

 Có thể gặp khó khăn khi tương tác với các thư viện hoặc công nghệ khơng tương thích với Realm.

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

<b>Chương 3: Phân tích bài tốn </b>

3.1. Danh sách yêu cầu phần mềm

3.2. Use Case Diagram

3.2.1. Use case Quản lý danh sách tác vụ

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

<b>Tên Use case</b> Quản lý danh sách tác vụ

<b>Mô tả</b> Use case cho phép người dùng quản lý danh sách các tác vụ

<b>Tiền điều kiện (pre-conditions)</b>

Người dùng phải đăng nhập vào ứng dụng

<b>Hậu điều kiện (post-conditions)</b>

<b>Mức quan trọng</b> Cao

<b>Tác nhân chính</b> Người dùng

<b>Loại use case</b> 1. Chi tiết

<b>Các bên liên quan</b> Người dùng: tìm kiếm, thêm, xóa, sửa tác vụ Admin: tạo các bài viết

<b>Mối quan hệ</b> Liên hệ: tác nhân Người dùng3.2.2. Use case Quản lý danh sách công việc

<b>Tên Use case </b> Quản lý danh sách công việc

<b>Mã Use case </b> UC02

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

<b>Mô tả </b> Use case cho phép người dùng quản lý danh sách các công việc

<b>Tiền điều kiện (pre-conditions) </b>

Người dùng phải đăng nhập vào ứng dụng

<b>Hậu điều kiện (post-conditions) </b>

<b>Mức quan trọng </b> Cao

<b>Tác nhân chính </b> Người dùng

<b>Loại use case </b> Chi tiết

<b>Các bên liên quan Người dùng: xác nhận hồn thành , thêm, xóa, sửa công </b>

việc

Admin: tạo các bài viết

<b>Mối quan hệ </b> Liên hệ: tác nhân Người dùng

Mở rộng: use case Thêm công việc, use case Sửa công việc, use case Xóa cơng việc, use case Xác nhận hồn thành công việc

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

<b>Luồng sự kiện chính </b>

hiện luồng sự kiện phụ S1

S1: Xác nhận hồn thành cơng việc

2)<small> </small>Xác nhận đã hoàn thành 3)<small> </small>Kết thúc

S2: Thêm công việc

1)<small> </small>Chọn thêm công việc

2)<small> </small>Nhập các thông tin công việc 3)<small> </small>Chọn xác nhận

4)<small> </small>Kết thúc

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

S3: Xóa công việc

1)<small> </small>Chọn công việc cần xóa 2)<small> </small>Chọn xác nhận

3)<small> </small>Kết thúc

S4: Sửa công việc

1)<small> </small>Chọn công việc cần sửa

3)<small> </small>Chọn xác nhận 4)<small> </small>Kết thúc

<b>Luồng sự kiện lỗi hoặc ngoại lệ </b>

3.2.3. Use case Cài đặt

<b>Tên Use case </b> Cài đặt

<b>Mã Use case </b> UC03

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

<b>Mô tả </b> Use case cho phép người dùng thay đổi các cài đặt về thời gian và chủ đề

<b>Tiền điều kiện (pre-</b>

<b>conditions) </b>

Người dùng phải đăng nhập vào ứng dụng

<b>Hậu điều kiện (post-</b>

<b>conditions) </b>

<b>Mức quan trọng </b>

Trung bình

<b>Tác nhân chính Người dùng </b>

<b>Loại use case </b> Tổng quát

<b>Các bên liên quan </b>

Người dùng: thay đổi theme, cài đặt chu kỳ pomodoro, cài đặt thời gian cho một pomodoro, cài đặt thời gian nghỉ ngắn và thời gian nghỉ dài

<b>Mối quan hệ </b> Liên hệ: tác nhân Người dùng

</div>

×