Tải bản đầy đủ (.docx) (70 trang)

đồ án 1 xây dựng ứng dụng nhắc lịch công tác

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 (2.34 MB, 70 trang )

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

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN</b>

<b>KHOA CƠNG NGHỆ PHẦN MỀM</b>

<b>ĐỒ ÁN 1</b>

<b>XÂY DỰNG ỨNG DỤNG NHẮC LỊCH CÔNG TÁC</b>

<b>GV HƯỚNG DẪN: ThS. Trần Thị Hồng YếnSV THỰC HIỆN: Phạm Tuấn Anh – 21520147</b>

<b>Nguyễn Thành Thiện Ân - 21521812</b>

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

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

Việc hoàn thành đồ án 1 với đề tài Xây dựng ứng dụng nhắc lịch công tác là kết quảcủa sự cố gắng không ngừng của bản thân, được sự giúp đỡ, nhắc nhở của giáo viênhướng dẫn và được tạo điều kiện học tập của khoa Cơng Nghệ Phần Mềm. Quatrang viết này nhóm xin gửi lời cảm ơn đến những người đã giúp đỡ nhóm trongthời gian làm đồ án.

Xin chân thành cảm ơn cô Trần Thị Hồng Yến đã trực tiếp tận tình hướng dẫn, đưara các góp ý, nhắc nhờ kịp thời, cũng như cung cấp các thông tin về việc làm đồ án.Xin chân thành cảm ơn khoa Công Nghệ Phần Mềm đã tạo điều kiện cho nhóm làmđồ án này.

Trong q trình làm đồ án nhóm khơng thể tránh được khỏi những sai sót, nhómkính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để hồn thiện và pháttriển đồ án hơn.

Nhóm chúng em xin chân thành cảm ơn.

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

<b>LỜI NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN</b>

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

1.7. Các sản phẩm liên quan, tham khảo...5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...6

2.1. Nhu cầu người dùng...6

2.2. Các vấn đề có thể gặp phải đối với loại ứng dụng này...7

2.3. Các kiến thức về việc quản lý thời gian có liên quan...7

2.3.1. Các khía cạnh khác nhau của quản lý thời gian...7

2.3.2. Các lý thuyết về quản lý thời gian...8

2.4. Phương pháp nghiên cứu, xây dựng ứng dụng...8

2.5. Các công nghệ sử dụng...9

2.5.1. .Net MAUI Blazor App (Blazor Hybrid)...9

2.5.1.1. Định nghĩa...9

2.5.1.2. Tổng quan về công nghệ...9

2.5.1.3. Ứng dụng của công nghệ vào đồ án...10

2.5.1.4. Ưu điểm của công nghệ...10

2.5.1.5. Nhược điểm của công nghệ...10

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

2.5.2. Supabase...11

2.5.2.1. Tổng quan về công nghệ...11

2.5.2.2. Ứng dụng của công nghệ vào đồ án...11

2.5.2.3. Ưu điểm của công nghệ...11

2.5.2.4. Nhược điểm của công nghệ...12

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ...13

3.5.1. Sơ đồ Use Case (Use Case Diagram)...17

3.5.2. Sơ đồ trạng thái (State Diagram)...23

3.5.3. Sơ đồ hoạt động (Activity Diagram)...23

3.5.4. Thiết kế cơ sở dữ liệu...30

CHƯƠNG 4: XÂY DỰNG, TRIỂN KHAI ỨNG DỤNG...32

4.1. Kiến trúc phần mềm...32

4.2. Môi trường...32

4.2.1. Môi trường cài đặt...32

4.2.2. Môi trường phát triển ứng dụng...33

4.2.3. Môi trường triển khai ứng dụng...33

4.2.4. Cách cài đặt và chạy ứng dụng...33

4.2.4.1. Đối với nhà phát triển ứng dụng...33

4.2.4.2. Đối với người dùng cuối...36

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

Hình 3.1: Sơ đồ use case tổng quát...17

Hình 3.2: Sơ đồ use case cho chức năng xem task...17

Hình 3.3: Sơ đồ use case cho chức năng xác thực người dùng...18

Hình 3.4: Sơ đồ use case cho chứ năng chat trong board...18

Hình 3.5: Sơ đồ use case cho chức năng thao tác với task...19

Hình 3.6: Sơ đồ use case cho chức năng thơng báo...19

Hình 3.7: Sơ đồ use case cho chứ năng thao tác với board...20

Hình 3.8: Sơ đồ use case cho chức năng tìm và lọc task...20

Hình 3.9: Sơ đồ use case cho chức năng thao tác với tag...21

Hình 3.10: Sơ đồ use case cho chức năng phân cơng cơng việc...21

Hình 3.11: Sơ đồ use case cho chắc năng quản lý quyền truy cập trong board...22

Hình 3.12: Sơ đồ use case cho chức năng cài đặt người dùng...22

Hình 3.13: Sờ đồ use case cho chắc năng thao tác với custom view...23

Hình 3.14: Sơ đồ trạng thái...23

Hình 3.15: Sơ đồ hoạt động cho chức năng đăng ký tài khoản...24

Hình 3.16: Sờ đồ hoạt động cho chức năng tạo task mới...24

Hình 3.17: Sơ đồ hoạt động cho chức năng xem task...25

Hình 3.18: Sơ đồ hoạt động cho chức năng tìm kiếm task...25

Hình 3.19: Sơ đồ hoạt động cho chức năng tạo custom view...26

Hình 3.20: Sơ đồ hoạt động cho chức năng tạo board...26

Hình 3.21: Sơ đồ hoạt động cho chức năng tạo tag...27

Hình 3.22: Sơ đồ hoạt động cho chức năng quản lý thành viên trong board...27

Hình 3.23: Sơ đồ hoạt động cho chức năng phân công công việc...28

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

Hình 3.24: Sơ đồ hoạt động cho chức năng thơng báo...28

Hình 3.25: Sơ đồ hoạt động cho chức năng đổi mật khẩu...29

Hình 3.26: Sơ đồ hoạt động cho chức năng chat...29

Hình 3.27: Lược đồ cơ sở dữ liệu quan hệ của ứng dụng (chỉ thể hiện khóa)...30

Hình 3.28:Lược đồ cơ sở dữ liệu quan hệ của ứng dụng (chỉ thể hiện tên quan hệ) 31Hình 4.1: Kiến trúc phần mềm...32

Hình 4.2: Logo Visual Studio IDE...33

Hình 4.3: Cài đặt .NET MAUI workload ở Visual Studio Installer...34

Hình 4.4: Chọn framework để chạy ứng dụng...34

Hình 4.5: Thao tác với file launchSettings.json...35

Hình 4.6: Thao tác với file WorkScheduleReminder.MAUIBlazor.csproj...35

Hình 4.7: Logo WebView2 Runtime...36

Hình 4.8: Tải file nén .zip chứa folder installer bản mới nhất...37

Hình 4.9: File có đi .msix...37

Hình 4.20: Màn hình làm việc 1 board ở chế độ kanban...46

Hình 4.21: Màn hình làm việc 1 board theo chế độ table...46

Hình 4.22: Màn hình làm việc 1 board theo chế độ calendar...47

Hình 4.23: Hộp thoại chi tiết task...48

Hình 4.24: Hộp thoại cài đặt thơng báo...49

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

Hình 4.25: Hộp thoại thao tác với tag và chọn tag...50

Hình 4.26: Hộp thoại phân cơng cơng việc...50

Hình 4.27: Hộp thoại chọn section cho 1 task trong board...51

Hình 4.28: Hộp thoại chat...52

Hình 4.29: Hộp thoại thơng tin và quản lý thành viên trong board...52

Hình 4.30: Hộp thoại lọc task theo ngày hết hạn...53

Hình 4.31: Hộp thoại lọc task theo người được phân cơng...54

Hình 4.32: Hộp thoại lọc task theo tag được gắn...55

Hình 4.33: Hộp thoại tạo board...56

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

<b>DANH MỤC BẢNG</b>

Bảng 3.1: Quyền hạn trong board...16Bảng 3.2: Quyền xem đối với các loại view...16

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

<b>TÓM TẮT ĐỒ ÁN</b>

Đồ án “Xây dựng ứng dụng nhắc lịch công tác” để giải quyết những thách thức màcá nhân phải đối mặt trong việc quản lý lịch trình làm việc của họ một cách hiệuquả, nhấn mạnh sự cần thiết của một giải pháp quản lý lịch làm việc chuyên dụng. Đồ án lấy kiến thức về lịch sử phát triển của công cụ lập lịch cũng như sự thay đổitrong mơ hình quản lý thời gian làm nền tảng cho việc xây dựng ứng dụng.

Việc xây dựng các tính năng, chức năng của ứng dụng được dựa vào thông qua cáckhảo sát về người dùng, các vấn đề hiện có trong việc xây dựng ứng dụng quản lýthời gian cũng như các lý thuyết về quản lý thời gian.

Việc thiết kế ứng dụng sẽ đi sâu vào các vấn đề như thiết kế các tính năng, chứcnăng, vẽ các sơ đồ và tài liệu liên quan cũng như tiến hành cài đặt và triển khai ứngdụng dựa trên các công nghệ và môi trường đã định sẵn trong phần thiết kế.

Với vấn đề về thời gian và nhân lực, các tính năng của ứng dụng hiện tại đảm bảonhững yêu cầu cơ bản của một ứng dụng quản lý thời gian. Trong tương lai, ứngdụng có thể phát triển và tích hợp thêm các tính năng, chức năng mới để làm tăngtính thơng minh của ứng dụng cũng như hướng người dùng hơn.

Tóm tắt nội dung của từng chương trong báo cáo đồ án:

 Chương 1. MỞ ĐẦU: Giới thiệu về động lực, mục tiêu và phạm vi của nghiêncứu, cũng như tổng quan về ứng dụng được xây dựng và các sản phẩm thamkhảo.

 Chương 2. CƠ SỞ LÝ THUYẾT: Tập trung trình bày về cơ sở lý thuyết, yêucầu người dùng, vấn đề có thể phát sinh, kiến thức quản lý thời gian, phươngpháp nghiên cứu và xây dựng ứng dụng, cùng với các công nghệ được chọn vàưu/nhược điểm của chúng. Đây là bước quan trọng để hiểu rõ và xác định hướngphát triển cho đề tài.

 Chương 3. PHÂN TÍCH THIẾT KẾ: Tập trung vào phân tích thiết kế ứng dụngvới các tính năng, thuật ngữ, chức năng, và ma trận quy định. Sơ đồ Use Case,

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

trạng thái, hoạt động, và thiết kế cơ sở dữ liệu được thể hiện, cung cấp cái nhìntồn diện về cách ứng dụng hoạt động và tương tác.

 Chương 4. XÂY DỰNG, TRIỂN KHAI ỨNG DỤNG: Nội dung về xây dựng vàtriển khai ứng dụng. Mô tả kiến trúc phần mềm, môi trường cài đặt, môi trườngphát triển và triển khai. Hướng dẫn cài đặt ứng dụng cho nhà phát triển và ngườidùng cuối, bao gồm cách cài đặt Microsoft Edge WebView2 Runtime và triểnkhai ứng dụng. Liệt kê danh sách màn hình và các thành phần chi tiết của ứngdụng.

 Chương 5. KẾT LUẬN: Nội dung về đánh giá quá trình làm việc và sự thuận lợicủa đề tài cũng như gặp khó khăn với thời gian và kinh nghiệm làm đồ án củanhóm. Kết quả đạt được bao gồm lý thuyết, công nghệ, ứng dụng và phát triểncon người. Đặc biệt, hướng phát triển của đồ án tập trung vào mở rộng nền tảngvà tích hợp trí tuệ nhân tạo.

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

<b>1.CHƯƠNG 1: MỞ ĐẦU</b>

<b>1.1.Lí do chọn đề tài</b>

 Tính thực tiễn và hữu ích: Ứng dụng nhắc lịch công tác mang lại giá trị thực tếvà hữu ích cho nhiều người. Việc quản lý thời gian và công việc là một tháchthức phổ biến, và một ứng dụng nhắc lịch có thể giúp người dùng giải quyết vấnđề này một cách hiệu quả.

 Nhu cầu người dùng: Nhu cầu của người dùng hiện nay đặt ra yêu cầu cao đốivới các công cụ quản lý thời gian thông minh. Người dùng đánh giá cao nhữngứng dụng giúp họ duy trì lịch trình làm việc có tổ chức và hiệu quả.

 Thách thức khoa học và công nghệ: Việc xây dựng một ứng dụng nhắc lịch cóthể đưa ra những thách thức kỹ thuật thú vị và có ý nghĩa. Nghiên cứu và pháttriển các giải pháp cho những thách thức này có thể mang lại đóng góp đáng kểcho cộng đồng nghiên cứu và công nghệ.

 Tương lai phát triển và nâng cấp: Việc phát triển ứng dụng nhắc lịch không chỉlà việc giải quyết một vấn đề ngày nay mà còn tạo ra cơ hội để phát triển vànâng cấp trong tương lai, bằng cách thêm vào các tính năng mới, tích hợp cơngnghệ mới, và cải thiện trải nghiệm người dùng.

<b>1.2.Mục đích </b>

 Tối ưu hóa hiệu suất làm việc: Mục tiêu có thể là tối ưu hóa hiệu suất cá nhânthơng qua việc cung cấp một công cụ quản lý thời gian thơng minh. Ứng dụngnhắc lịch có thể giúp người sử dụng quản lý công việc, ghi chú sự kiện quantrọng, và đảm bảo tuân thủ lịch trình.

 Học tập và tìm hiểu cơng nghệ: Mục tiêu có thể liên quan đến việc thử nghiệmvà phát triển các công nghệ mới trong lĩnh vực ứng dụng di động, đám mây,hoặc trí tuệ nhân tạo.

 Tương tác xã hội và chia sẻ lịch trình: Mục đích có thể là tạo ra một ứng dụngnhắc lịch mà người dùng có thể dễ dàng chia sẻ lịch trình cơng việc của họ với

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

đồng nghiệp, bạn bè, hoặc gia đình. Điều này có thể cải thiện tương tác xã hội vàgiao tiếp trong cộng đồng.

 Đóng góp cho cộng đồng: Mục đích có thể là đóng góp vào cộng đồng ngườidùng bằng cách cung cấp một giải pháp thực tế và hiệu quả.

<b>1.3.Đối tượng nghiên cứu</b>

 Nền tảng, công nghệ sử dụng để triển khai ứng dụng. Nhu cầu của người dùng cuối, người dùng tiềm năng. Giao diện, chức năng phù hợp với nhu cầu của người dùng.

<b>1.4.Phạm vi nghiên cứu</b>

 Tập trung tìm hiểu nhu cầu của người dùng, thiết kế giao diện, chức năng choứng dụng.

 Xây dựng ứng dụng nhắc lịch công tác.

<b>1.5.Nền tảng, động lực trong việc xây dựng ứng dụng</b>

 Sự phát triển lịch sử của các công cụ lập lịch: Lịch sử của các công cụ lập lịchbắt nguồn từ sự ra đời của máy tính cá nhân. Các cơng cụ ban đầu chủ yếu tậptrung vào danh sách việc cần làm đơn giản, phát triển thành các ứng dụng lịchphức tạp hơn.

 Sự thay đổi mơ hình trong quản lý thời gian: Sự gia tăng của cơng việc từ xa vàlịch trình linh hoạt đã dẫn đến sự thay đổi mơ hình trong quản lý thời gian. Ứngdụng có tính đến sự năng động thay đổi của môi trường làm việc hiện đại, cungcấp khả năng thích ứng và linh hoạt trong việc lên lịch.

<b>1.6.Tổng quát về ứng dụng</b>

Ứng dụng “Nhắc nhở Lịch làm việc” được thiết kế để giúp người dùng duy trì mộtcách tiếp cận có cấu trúc và tổ chức đối với các cam kết làm việc của họ. Bằng cáchtận dụng công nghệ hiện đại, ứng dụng nhằm mục đích cung cấp nhắc nhở kịp thời,ưu tiên cơng việc và tăng cường năng suất tổng thể. Dự án ra đời từ nhận thức rằng

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

các ứng dụng quản lý thời gian thông thường hiện nay thiếu sự cụ thể cần thiết đểđáp ứng các thách thức đặc biệt của lịch trình liên quan đến cơng việc.

<b>1.7.Các sản phẩm liên quan, tham khảo</b>

 Tick Tick. Any.do.

<i><small>Hình 1.1: Logo ứng dụng Tick TickHình 1.2: Logo ứng dụng Any.do</small></i>

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

<b>2.CHƯƠNG 2: CƠ SỞ LÝ THUYẾT</b>

<b>2.1.Nhu cầu người dùng</b>

 Quản lý thời gian hiệu quá: Người dùng muốn có một cơng cụ giúp họ quản lýthời gian một cách hiệu quả, xác định nhiệm vụ ưu tiên, và giữ cho lịch trình làmviệc của họ có tổ chức.

 Nhắc nhớ và thơng báo chính xác: Người dùng mong đợi tính năng nhắc nhở vàthơng báo chính xác về các sự kiện, cuộc họp, hoặc công việc quan trọng để họkhơng bỏ lỡ.

 Đồng bộ hóa trên nhiều thiết bị: Đối với người dùng hiện đại, khả năng đồng bộhóa dữ liệu và lịch trình trên nhiều thiết bị là quan trọng để họ có thể làm việcmọi nơi mà khơng mất thơng tin.

 Tích hợp cơng cụ và dịch vụ khác: Người dùng muốn có khả năng tích hợp lịchtrình của họ với các cơng cụ khác như email, danh bạ, công cụ quản lý côngviệc, và các ứng dụng khác để tối ưu hóa quá trình làm việc.

 Giao diện người dùng thân thiện và dễ sử dụng: Giao diện người dùng thân thiệnvà dễ sử dụng là yếu tố quan trọng. Người dùng muốn có trải nghiệm linh hoạtvà thoải mái khi sử dụng ứng dụng.

 Chia sẻ lịch trình và tương tác xã hội: Người dùng có thể muốn chia sẻ lịch trìnhcủa họ với đồng nghiệp, bạn bè, hoặc gia đình. Tính năng này giúp tạo ra tươngtác xã hội và giao tiếp hiệu quả.

 Tùy chỉnh cá nhân hóa: Khả năng tùy chỉnh lịch trình và cá nhân hóa thơng tin làquan trọng để ứng dụng phản ánh chính xác lối sống và mục tiêu của từng ngườidùng.

 Độ an toàn và bảo mật: Người dùng đặt yêu cầu cao đối với độ an tồn và bảomật của thơng tin cá nhân và dữ liệu lịch trình của họ.

 Tính năng thơng minh và dự đốn: Ứng dụng được mong đợi có khả năng thơngminh, có thể dự đốn nhu cầu người dùng, và đưa ra gợi ý hay lời khuyên hữuích.

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

 Sự linh hoạt và tích hợp với cuộc sống hằng ngày: Người dùng muốn có mộtứng dụng linh hoạt và tích hợp mạnh mẽ với cuộc sống hàng ngày của họ, từcông việc đến hoạt động giải trí.

<b>2.2.Các vấn đề có thể gặp phải đối với loại ứng dụng này</b>

 Đồng bộ hóa dữ liệu: Đảm bảo đồng bộ hóa dữ liệu lịch trình một cách chínhxác và nhanh chóng trên nhiều thiết bị và nền tảng khác nhau.

 Thời gian thực: Xử lý các sự kiện và nhắc nhở trong thời gian thực mà khônggây tải nặng cho hệ thống.

 Phân quyền: Xác định và quản lý quyền truy cập của người dùng, đồng thờicung cấp một hệ thống phân quyền linh hoạt.

 Hiệu suất và tiêu tốn năng lượng: Đối mặt với thách thức của việc tối ưu hiệusuất và giảm tiêu tốn năng lượng để đảm bảo trải nghiệm người dùng tích cực vàtốn ít năng lượng.

 Bảo mật và quyền riêng tư: Bảo vệ thông tin cá nhân của người dùng và đảmbảo tính an tồn cho dữ liệu lịch trình.

<b>2.3.Các kiến thức về việc quản lý thời gian có liên quan</b>

<i>(Các nội dung trình bày trong phần này được chọn lọc để có liên quan đến đề tàiđồ án và xây dựng ứng dụng)</i>

<b>2.3.1. Các khía cạnh khác nhau của quản lý thời gian</b>

 Thiết lập mục tiêu: Thiết lập các mục tiêu rõ ràng và có thể đạt được cung cấp ýthức về phương hướng và mục đích, cho phép các cá nhân ưu tiên nhiệm vụ củahọ cho phù hợp.

 Ưu tiên: Xác định các nhiệm vụ dựa trên tầm quan trọng và mức độ khẩn cấpcủa chúng giúp các cá nhân tập trung vào các hoạt động có mức độ ưu tiên cao,đảm bảo rằng các nhiệm vụ thiết yếu được hoàn thành trước tiên.

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

 Lập kế hoạch: Tạo một lịch trình có cấu trúc hoặc danh sách việc cần làm chophép các cá nhân phân bổ các khoảng thời gian cụ thể cho các hoạt động khácnhau, đảm bảo cách tiếp cận có hệ thống để hồn thành nhiệm vụ.

 Phân cơng: Giao nhiệm vụ cho người khác khi thích hợp giúp phân phối khốilượng công việc và cho phép các cá nhân tập trung vào các nhiệm vụ địi hỏichun mơn và sự chú ý.

 Theo dõi thời gian: Theo dõi và đánh giá thời gian được sử dụng như thế nàocho phép các cá nhân xác định các lĩnh vực cải thiện và thực hiện các điều chỉnhcần thiết cho lịch trình của họ.

<b>2.3.2. Các lý thuyết về quản lý thời gian</b>

 Lý thuyết pickle jar: nhấn mạnh sự ưu tiên và phân bố thời gian hiệu quả. Hãytưởng tượng một cái lọ đại diện cho thời gian có sẵn và nhiều loại đá, sỏi và cátđại diện cho các nhiệm vụ và hoạt động khác nhau. Lý thuyết cho thấy rằng đểphù hợp với tất cả các vật phẩm vào bình, trước tiên một cá nhân nên đặt nhữngtảng đá lớn (nhiệm vụ ưu tiên cao) tiếp theo là đá cuội (nhiệm vụ phụ), và sau đólà cát (các hoạt động ít quan trọng hơn).

 Phương pháp Alpen: Phương pháp này nhấn mạnh việc lập kế hoạch kỹ lưỡngvà tổ chức các nhiệm vụ. Nó liên quan đến việc liệt kê tất cả các nhiệm vụ, ướctính thời gian cần thiết cho mỗi nhiệm vụ, thêm thời gian đệm cho các trườnghợp không lường trước được, đưa ra quyết định về mức độ ưu tiên của nhiệm vụvà xem xét các nhiệm vụ đã hoàn thành để phản ánh và cải thiện.

<b>2.4.Phương pháp nghiên cứu, xây dựng ứng dụng</b>

 Đọc tài liệu về nền tàng, công nghệ để triển khai ứng dụng. Nghiên cứu và phân tích yêu cầu cho ứng dụng.

 Lập danh sách các chức năng cho ứng dụng dựa trên nghiên cứu, khảo sát thựcnghiệm (tham khảo các chức năng hữu ích trong các ứng dụng tương đương đãcó sẵn trên thị trường).

 Lập biểu đồ cơ sở dữ liệu phụ thuộc vào danh sách các chức năng.

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

 Thiết kế giao diện người dùng.

 Thiết lập cơ sở dữ liệu, xây dựng prototype cho ứng dụng. Kiểm thử và gỡ lỗi trên prototype.

 Hồn thiện prototype thành sản phẩm chính thức, phát triển và tối ưu hóa sảnphẩm.

 Blazor WASM: Là một công nghệ web phát triển bởi .NET Foundation(Microsoft), giới thiệu lần đầu vào năm 2018, cho phép viết ứng dụng, giao diện

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

web (SPA – single page application) sử dụng mã nguồn C# và .NET chạy trựctiếp trong trình duyệt của người dùng. Điểm độc đáo của Blazor WASM là khảnăng chạy mã C# trên máy phía client và tận dụng kho thư viện đồ sộ của .NETthay vì phải dựa vào mã JavaScript như các framework và thư viện web truyềnthống.

 Blazor Hybrid: Là sự kết hợp giữa .NET MAUI và Blazor wasm để cho phépphát triển ứng dụng đa nền tảng sử dụng cả mã nguồn C# và .NET cũng như mãnguồn Blazor (các component được viết theo cú pháp giống HTML), mang đếnmột trải nghiệm của công nghệ web hoạt động như ứng dụng native.

<b>2.5.1.3.Ứng dụng của công nghệ vào đồ án</b>

Công nghệ được sử dụng để phát triển ứng dụng có giao diện đồ họa phía clienttrong đồ án.

<b>2.5.1.4.Ưu điểm của công nghệ</b>

 Mang đến cho developer trải nghiệm phát triển ứng dụng quen thuộc như khiphát triển ứng dụng web. (Với những developer đã quen với HTML, CSS). Sử dụng được cùng một lúc ưu điểm của công nghệ web (linh hoạt, dễ tiếp cận,

v.v.) và công nghệ native (hiệu suất cao, truy cập đầy đủ tính năng của hệ thống/hệ điều hành, mang lại trải nghiệm người dùng tốt nhất, v.v.).

 Tận dụng được cả hai kho thư viện đồ sộ của .NET và công nghệ web.

 Tận dụng được khả năng sở hữu một bộ mã nguồn, nhưng phát triển được ứngdụng hoạt động được trên nhiều nền tảng khác nhau, tiết kiệm chi phí, cơng sứcvà thời gian.

<b>2.5.1.5.Nhược điểm của cơng nghệ</b>

Cơng nghệ cịn mới, tài liệu tham khảo và kho thư viện, plugin đặc thù cho cơngnghệ chưa nhiều dẫn đến phát sinh một số khó khăn nhỏ khi phát triển ứng dụng.

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

<b>2.5.2.2.Ứng dụng của công nghệ vào đồ án</b>

Công nghệ được sử dụng để có được một server được cài đặt sẵn với khả năng tùychỉnh, cung cấp dữ liệu cho phía client.

<b>2.5.2.3.Ưu điểm của cơng nghệ</b>

 Hỗ trợ, đáp ứng đầy đủ những dịch vụ cần thiết của một server thông thường màkhông phải tự tay xây lại (tiết kiệm chi phí, cơng sức, thời gian và mang lại sựđảm bảo về mặt hiệu năng).

 Hỗ trợ việc tùy chỉnh server thông qua việc viết các webhook và edge function.

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

 Tận dụng được những ưu điểm của hệ quản trị cơ sở dữ liệu quan hệPostgreSQL (có khả năng thực hiện được những truy vấn phức tạp, v.v.).

<b>2.5.2.4.Nhược điểm của cơng nghệ</b>

 Vì là cơng nghệ mới nên tài liệu tham khảo chưa nhiều, thường xuyên có cácbản vá/cập nhật thay đổi tính năng của Supabase (chưa stable, mã nguồn củaứng dụng dễ hoạt động sai, có khả năng phải viết lại mã nguồn của ứng dụng khicập nhật Supabase lên các phiên bản mới).

 Một số tính năng và hiệu năng tốt nhất phải trả phí.

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

<b>3.CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ</b>

<b>3.1.Các tính năng của ứng dụng</b>

Sau khi tìm hiểu các lý thuyết, khảo sát nhu cầu, tham khảo các ứng dụng khác trênthị trường cũng như cân nhắc về mặt thời gian, nguồn lực, nhóm đã đưa ra danhsách các tính năng (features) như sau:

 Thêm, xóa, sửa lịch, sự kiện cơng tác của cá nhân hoặc đội nhóm Nhắc nhở, thông báo lịch, sự kiện công tác cá nhân hoặc đội nhóm.

 Theo dõi, xem lịch, sự kiện cơng tác cá nhân hoặc đội nhóm theo giờ, ngày,tuần, tháng, năm.

 Phân cơng cơng việc cho thành viên trong đội nhóm.

 Quản lý quyền truy cập (thêm, xóa, sửa, xem) lịch, sự kiện công tác, phân côngcủa thành viên trong đội nhóm.

 Ghi chú, trao đổi (chat) cho cơng việc trong đội nhóm.

 Tìm kiếm, tra cứu lịch, sự kiện cơng tác cá nhận hoặc đội nhóm theo nhãn. Đăng nhập, đăng xuất, đồng bộ hóa dữ liệu giữa các thiết bị.

 Một số cài đặt nhỏ liên quan đến cá nhân hóa cho người dùng.

<b>3.2.Các thuật ngữ liên quan tới ứng dụng</b>

<i>(Có thể cịn một số thuật ngữ khác nhưng chỉ liệt kê một số thuật ngữ cần thiết hoặccó thể gây khó hiểu)</i>

 Task: Một cơng việc, sự kiện.

 Subtask: Nhiệm vụ phụ, 1 thuộc tính của task. Danh sách các subtask có thểđược dùng như là các bước để hoàn thành task.

 Tag (nhãn): Gắn nhãn vào một task để nhận dạng, phân loại, mức độ ưu tiên hayvì mục đích cung cấp thơng tin. Mỗi người dùng có một danh sách các tag choriêng mình. Mỗi board có một danh sách tag riêng.

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

 Tagging (nhãn đang gắn cho 1 task): Một task được gắn 1 hay nhiều tag, hoặckhơng có tag nào. 1 task của một cá nhân sẽ được gắn tag từ danh sách tag củacá nhân đó, 1 task của một board sẽ được gắn tag từ danh sách tag của board đó. Reminder: Là một thuộc tính của task, là nơi người dùng có thể tùy chỉnh việc

thơng báo của 1 task.

 Workspace: Nơi truy cập vào các board để làm việc cùng hội nhóm.

 Board: Nơi làm việc của hội nhóm. Bất kì cá nhân nào cũng có thể tạo board vàmời người khác vào board của mình để bắt đầu làm việc. Ở mục workspace củamỗi tài khoản chỉ hiện lên những board thuộc sở hữu hoặc được người khác mờivào. Các task ở board thường được phân loại theo section.

 Section: Là 1 phần của board, mỗi board có 1 hoặc nhiều section. Section mụcđích chính dùng để phân loại task trong board theo ý muốn của người dùng.Section khác với tag ở chỗ, task sẽ được biểu diễn theo danh sách từng section.Mặt khác, task có thể được phân loại và biểu diễn theo thời gian, hoặc theongười được giao task đó.

 Default view: Những màn hình xem cơ bản sẵn có của mỗi người dùng, ởdefault view có thể xem cơng việc của cá nhân, hoặc công việc được giao ởworkspace (tức là ở tất cả các board tham gia). Các task ở default view thườngđược phân loại theo ngày mà task kết thúc.

 Custom view: Màn hình xem khơng sẵn có, được tạo ra tùy theo mục đích và ýmuốn của người dùng. Custom view lấy nguồn từ các board mà cá nhân đó thamgia, có thể tùy chọn xem board nào, section nào. Các task trong custom viewthường được phân loại theo thời gian, theo board/section, hoặc theo nhữngngười tham gia các board đó tùy theo lựa chọn người dùng. custom view là mànhình chỉ xem (read-only) khơng thể chỉnh sửa hay thêm task trong custom view.

<b>3.3.Các chức năng của ứng dụng</b>

Các chức năng (functions) của ứng được phát triển từ các tính năng ở mục 3.1: Xác minh người dùng:

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

o Tạo tài khoản bằng email.

o Đăng nhập bằng tài khoản đã tạo.o Đăng nhập bằng tài khoản Facebook.o Đăng nhập bằng khoản Google.o Quên mật khẩu.

 Thao tác với task:o Thêm task.o Xóa task.

o Chỉnh sửa reminder của task.o Chỉnh sửa tagging của task.o Chỉnh sửa ghi chú của task.o Chỉnh sửa danh sách subtask.

o Chỉnh sửa danh sách các tệp đính kèm.

o Chỉnh sửa section mà task thuộc về (task ở board). Theo dõi task theo chế độ:

o Kanban.o Table.o Calendar.

 Thông báo về ngày kết thúc của task. Thao tác với board:

o Tạo board.o Xóa board.

o Thêm section vào board.o Chỉnh sửa tên section.o Xóa section khỏi board. Thao tác với custom view:

o Tạo custom view.

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

o Xóa custom view.o Chỉnh sửa custom view. Thao tác với tag:

o Thêm tag.o Xóa tag.o Chỉnh sửa tag. Phân cơng cơng việc.

 Quản lý quyền truy cập board:o Thêm người vào board.o Xóa thành viên khỏi board.

o Chỉnh sửa quyền của thành viên trong board.o Rời board.

 Cài đặt cá nhân:o Đổi mật khẩu.o Xóa tài khoản.o Đổi màu nền.o Đổi ảnh nền.o Đổi ảnh đại diện.

Thao tácvới board

Thao tácvới tag

Thao tácvới task

Xem task

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

<b>3.5.1. Sơ đồ Use Case (Use Case Diagram)</b>

<i>Hình 3.6: Sơ đồ use case tổng quát</i>

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

<i>Hình 3.7: Sơ đồ use case cho chức năng xem task</i>

<i>Hình 3.8: Sơ đồ use case cho chức năng xác thực người dùng</i>

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

<i>Hình 3.9: Sơ đồ use case cho chứ năng chat trong board</i>

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

<i>Hình 3.10: Sơ đồ use case cho chức năng thao tác với task</i>

<i>Hình 3.11: Sơ đồ use case cho chức năng thơng báo</i>

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

<i>Hình 3.12: Sơ đồ use case cho chứ năng thao tác với board</i>

<i>Hình 3.13: Sơ đồ use case cho chức năng tìm và lọc task</i>

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

<i>Hình 3.14: Sơ đồ use case cho chức năng thao tác với tag</i>

<i>Hình 3.15: Sơ đồ use case cho chức năng phân công cơng việc</i>

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

<i>Hình 3.16: Sơ đồ use case cho chắc năng quản lý quyền truy cập trong board</i>

<i>Hình 3.17: Sơ đồ use case cho chức năng cài đặt người dùng</i>

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

<i>Hình 3.18: Sờ đồ use case cho chắc năng thao tác với custom view</i>

<b>3.5.2. Sơ đồ trạng thái (State Diagram)</b>

<i>Hình 3.19: Sơ đồ trạng thái</i>

<b>3.5.3. Sơ đồ hoạt động (Activity Diagram)</b>

<i>(Sơ đồ hoạt động có rất nhiều ảnh nên phần này chỉ để một số ảnh đặc trưng chotừng nhóm chức năng lớn)</i>

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

<i>Hình 3.20: Sơ đồ hoạt động cho chức năng đăng ký tài khoản</i>

<i>Hình 3.21: Sờ đồ hoạt động cho chức năng tạo task mới</i>

</div>

×