1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng ứng dụng timeplanner lên lịch công việc

80 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Sinh viên thực hiện: Nguyễn Văn Hoà Mã SV: 1911505310217 Lớp: 19T2 Đồ án với đề tài Xây dựng ứng dụng TimePlanner lên lịch công việc xây dựng bằng ngôn ngữ lập trình Kotlin, sử dụng Fire

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

Đà Nẵng, 01/2024 ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG TIMEPLANNER LÊN LỊCH

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

Đà Nẵng, 01/2024 ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG TIMEPLANNER LÊN LỊCH

CÔNG VIỆC

Giảng viên hướng dẫn duyệt

TS.Nguyễn Tấn Thuận

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 4

NHẬN XÉT CỦA HỘI ĐỒNG BẢO VỆ

Trang 5

TÓM TẮT

Tên đề tài: Xây dựng ứng dụng TimePlanner lên lịch công việc Sinh viên thực hiện: Nguyễn Văn Hoà

Mã SV: 1911505310217 Lớp: 19T2 Đồ án với đề tài Xây dựng ứng dụng TimePlanner lên lịch công việc xây dựng bằng ngôn ngữ lập trình Kotlin, sử dụng Firebase và Cloud FireStore để quản lý cơ sở dữ liệu, ngoài ra còn sử dụng các dịch vụ của Firebase như Authentication, Messasing để gửi thông báo đến người dùng, Storage để lưu trữ hình ảnh và tài liệu, cùng các thư viện hỗ trợ như Hilt Dagger, Retrofit2

Ứng dụng bao gồm các chức năng chính dành cho người sử dụng như: đăng ký, đăng nhập, đăng nhập bằng tài khoản google, xem danh sách công việc, tạo công việc cá nhân hay dự án mới, thêm thành viên vào dự án đã tạo, đặt lịch thông báo cho công việc, tìm kiếm công việc đã tạo, tạo danh mục công việc, cập nhật thông tin người dùng, thống kê lượng công việc

Trang 6

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Nguyễn Tấn Thuận Sinh viên thực hiện: Nguyễn Văn Hoà Mã SV: 1911505310217

1 Tên đề tài

Xây dựng ứng dụng TimePlanner lên lịch công việc

2 Các số liệu, tài liệu ban đầu

- Dựa trên qui định upload tài liệu, các qui tắc đặt câu hỏi - Tài liệu tham khảo: https://firebase.google.com/docs/build?hl=vi

3 Nội dung chính của đồ án

Quá trình Xây dựng ứng dụng TimePlanner lên lịch công việc: - Thu thập thông tin tài liệu liên quan và khảo sát thực tế - Phân tích thiết kế các chức năng của hệ thống

- Phân tích thiết kế cơ sơ dữ liệu - Thiết kế giao diện cho các chức năng - Xây dựng hệ thống website

- Kiểm thử chương trình - Hoàn thành báo cáo tổng hợp

4 Các sản phẩm dự kiến

- Ứng dụng TimePlanner lên lịch công việc - File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 11/09/2023 6 Ngày nộp đồ án: 21/01/2024

Đà Nẵng, ngày 21 tháng 01 năm 2024

TS Nguyễn Tấn Thuận

Trang 7

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ chúng em thực hiện đề tài này Đặc biệt là TS Nguyễn Tấn Thuận đã tận tình giúp đỡ em trong suốt quá trình thực hiện đề tài tốt nghiệp này

Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công nghệ thông tin khoa Công nghệ số, trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng đã truyền đạt những kiến thức cần thiết và những kinh nghiệm quý báu cho chúng em trong suốt thời gian 4 năm trên giảng đường để em có thể thực hiện tốt đề tài này Đặc biệt, em xin gởi lời cảm ơn chân thành tới TS Hoàng Thị Mỹ Lệ, TS Nguyễn Tấn Thuận, cùng ThS Lê Vũ - giáo viên chủ nhiệm lớp 19T2 đã giúp đỡ em rất nhiều trong quá trình học tập và công việc

Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi những sai sót Vì vậy em mong quý thầy, cô thông cảm và góp ý để em có thể hoàn thiện đề tài Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này

Em xin chân thành cảm ơn!

Trang 8

Em xin cam đoan:

LỜI CAM ĐOAN

1 Những nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp của thầy Nguyễn Tấn Thuận

2 Mọi tham khảo trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian địa điểm công bố

3 Nếu có những sao chép không hợp lệ, vi phạm, em xin chịu hoàn toàn trách nhiệm

Sinh viên thực hiện

Nguyễn Văn Hoà

Trang 9

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN i

NHẬN XÉT CỦA HỘI ĐỒNG BẢO VỆ ii

Trang 10

Giới thiệu về Android Studio 24

Giới thiệu công cụ Emulator Android 25

Trang 11

Biểu đồ Use Case 27

Sơ đồ usecase tổng quát 27

Sơ đồ usecase chức năng Xem và tìm kiếm danh sách công việc đã tạo 28

Sơ đồ usecase chức năng Tạo một công việc mới 28

Sơ đồ usecase chức năng Xem danh mục công việc 29

Sơ đồ usecase chức năng Xem chi tiết công việc 29

Sơ đồ usecase chức năng Cập nhật thông tin cá nhân 30

Sơ đồ usecase chức năng Xem thống kê công việc 30

Kịch bản cho Use Case 31

Kịch bản use-case “Đăng nhập” 31

Kịch bản use case “Xem và tìm kiếm danh sách công việc” 31

Kịch bản usecase Tạo mới công việc 32

Kịch bản usecase Xem chi tiết công việc 33

Kịch bản usecase Sửa chi tiết công việc 33

Kịch bản usecase Xoá công việc 33

Kịch bản Usecase Cập nhật thông tin cá nhân 34

Kịch bản use case Thống kê công việc 35

Sơ đồ hoạt động (Activity Diagram) 36

Đăng nhập 36

Xem danh sách công việc 37

Tìm kiếm công việc 38

Tạo công việc mới 39

Cập nhật danh mục công việc 41

Thống kê công việc 42

Cập nhật thông tin cá nhân 43

Trang 12

Sơ đồ tuần tự Đăng nhập 44

Sơ đồ tuần tự Xem danh sách công việc 44

Sơ đồ tuần tự Tìm kiếm công việc 45

Sơ đồ tuần tự Tạo công việc mới 45

Sơ đồ tuần tự Xem danh mục công việc 46

Sơ đồ tuần tự Thống kê công việc 46

Sơ đồ tuần tự Cập nhật thông tin người dùng 47

Sơ đồ lớp 47

Thiết kế giao diện 48

Đăng nhập 48

Đăng ký tài khoản 49

Danh sách công việc 50

Tạo công việc mới 52

Xem chi tiết công việc 53

Danh mục công việc 55

Cập nhật thông tin cá nhân 56

Thống kê công việc 57

Thiết kế cơ sở dữ liệu 58

Trang 13

Giao diện chương trình 64

Biểu tượng app 64

Giao diện màn hình Đăng ký và Đăng nhập 65

Giao diện màn hình Trang chủ 66

Giao diện màn hình Bảng 66

Giao diện màn hình “Cá Nhân” 67

Giao diện màn hình “Chỉnh sửa thông tin cá nhân” 67

Giao diện màn hình “Tạo công việc cá nhân mới” 68

Giao diện màn hình “Tạo dự án mới” 68

Giao diện màn hình “Chi tiết công việc cá nhân” 69

Giao diện màn hình “Chi tiết dư án” 69

Giao diện màn hình “Quản lý danh mục” 70

Giao diện màn hình “Danh sách công việc cá nhân” 70

Giao diện màn hình “Danh sách dự án” 71

KẾT LUẬN 72

TÀI LIỆU THAM KHẢO 73

Trang 14

DANH MỤC BẢNG BIỂU

Bảng 3.1: Kịch bản Usecase đăng nhập 31

Bảng 3.2: Kịch bảng Usecase Xem và tìm kiếm danh sách công việc 31

Bảng 3.3: Kịch bảng Usecase Tạo mới công việc 32

Bảng 3.4: Kịch bản Usecase Xem chi tiết công việc 33

Bảng 3.5: Kịch bản Usecase Sửa chi tiết công việc 33

Trang 15

DANH MỤC HÌNH VẼ

Hình 2.1: Realtime Database là một cơ sở dữ liệu theo thời gian thực 15

Hình 2.2: Cloud Storage là tính năng cho phép người dùng ứng dụng lưu trữ và quản lý nội dung đã tạo ra 16

Hình 2.3: Firebase có chức năng phát triển ứng dụng di động 18

Hình 2.4: Biểu tượng Android 19

Hình 2.5: Các biểu tượng phiên bản của Android 20

Hình 2.6: Kiến trúc của hệ điều hành Android 21

Hình 3.1: Usecase tổng quát 27

Hình 3.2: Usecase Xem và tìm kiếm danh sách công việc đã tạo 28

Hình 3.3: Usecase Tạo một công việc mới 28

Hình 3.4: Usecase Xem danh mục công việc 29

Hình 3.5: Usecase Xem chi tiết công việc 29

Hình 3.6: Usecase Cập nhật thông tin cá nhân 30

Hình 3.7: Usecase Xem thống kê công việc 30

Hình 3.8: Sơ đồ hoạt động đăng nhập 36

Hình 3.9: Sơ đồ hoạt động xem danh sách công việc 37

Hình 3.10: Sơ đồ hoạt động tìm kiếm công việc 38

Hình 3.11: Sơ đồ hoạt động Tạo công việc mới 39

Hình 3.12: Sơ đồ hoạt động Tạo danh mục công việc 40

Hình 3.13: Sơ đồ hoạt động Cập nhật danh mục công việc 41

Hình 3.14: Sơ đồ hoạt động Thống kê công việc 42

Hình 3.15: Sơ đồ usecase Cập nhật thông tin cá nhân 43

Hình 3.16: Sơ đồ tuần tự Đăng nhập tài khoản 44

Hình 3.17: Sơ đồ tuần tự Xem danh sách công việc 44

Hình 3.18: Sơ đồ tuần tự Tìm kiếm công việc 45

Hình 3.19: Sơ đồ tuần tự Tạo công việc mới 45

Hình 3.20: Sơ đồ tuần tự Xem danh mục công việc 46

Hình 3.21: Sơ đồ tuần tự Thống kê công việc 46

Hình 3.22: Sơ đồ tuần tự Cập nhật thông tin người dùng 47

Hình 3.23: Giao diện Đăng nhập 48

Hình 3.24: Giao diện Đăng ký tài khoản 49

Trang 16

Hình 3.25: Giao diện Danh sách công việc 50

Hình 3.26: Giao diện Tạo công việc 52

Hình 3.27: Giao diện Chi tiết công việc 53

Hình 3.28: Giao diện Danh mục công việc 55

Hình 3.29: Giao diện Cập nhật thông tin cá nhân 56

Hình 3.30: Giao diện Thống kê công việc 57

Hình 4.1: Biểu tượng app 64

Hình 4.2: Giao diện màn hình “Đăng ký và Đăng nhập” 65

Hình 4.3: Giao diện màn hình “Trang chủ” 66

Hình 4.4: Giao diện màn hình “Bảng” 66

Hình 4.5: Giao diện màn hình “Cá nhân” 67

Hình 4.6: Giao diện “Chỉnh sửa thông tin cá nhân” 67

Hình 4.7: Giao diện “Tạo công việc mới” 68

Hình 4.8: Giao diện “Lịch sử đặt vé” 68

Hình 4.9: Giao diện “Chi tiết công việc cá nhân” 69

Hình 4.10: Giao diện “Chi tiết dự án” 69

Hình 4.11: Giao diện “Quản lý danh mục” 70

Hình 4.12: Giao diện “Danh sách công việc cá nhân” 70

Hình 4.13: Giao diện “Danh sách dự án” 71

Hình 4.14: Giao diện “Thông báo” 71

Trang 17

DANH MỤC CHỮ VIẾT TẮT

2 ERD Entity Relationship Diagram Sơ đồ thực thể quan hệ 3 MVVM Model-View-ViewModel Mô hình cấu trúc ứng dụng

Trang 18

MỞ ĐẦU

1 Đặt vấn đề

Trong thời đại hiện đại, nhu cầu quản lý công việc cá nhân ngày càng trở nên quan trọng, đặc biệt là trong môi trường làm việc và cuộc sống hối hả ngày nay Những thách thức đặt ra bởi sự bận rộn, cuộc sống nhanh chóng, và cả những thay đổi đột ngột trong kế hoạch làm việc đã tạo nên sự cần thiết cho một giải pháp hiệu quả để quản lý thời gian và công việc cá nhân

Mặc dù có nhiều ứng dụng và công cụ có sẵn để hỗ trợ quản lý công việc, tuy nhiên, nhiều người vẫn gặp khó khăn khi tìm kiếm một giải pháp tích hợp đầy đủ chức năng và dễ sử dụng, điều này tạo nên sự cần thiết cho một ứng dụng giúp người dùng dễ dàng quản lý trong một không gian làm việc duy nhất

Với mục tiêu giải quyết những thách thức trên, đề tài "Xây dựng ứng dụng TimePlanner lên lịch công việc" nhằm đáp ứng nhu cầu ngày càng cao của người sử dụng, mang lại trải nghiệm linh hoạt, tiện lợi và hiệu quả trong việc quản lý thời gian và công việc cá nhân

2 Đối tượng nghiên cứu và phạm vi nghiên cứu

a Đối tượng nghiên cứu Những người có nhu cầu cần một ứng dụng để lưu trữ công việc, nhắc nhở khi đến hạn hoặc đơn giản là ghi chú lại những việc quan trọng cần làm

b Phạm vi nghiên cứu Đề tài nghiên cứu về ứng dụng lên lịch công việc, áp dụng cho mọi người

3 Phương pháp nghiên cứu

- Phương pháp nghiên cứu lý thuyết thu nhập thông tin qua sách, các tài liệu trang web để tìm được các cơ sở lý thuyết mà mình nghiên cứu

- Phương pháp triển khai thực nghiệp: xây dựng ứng dụng

4 Giải pháp công nghệ

- Ngôn ngữ lập trình : JavaScript - Công nghệ: Firebase

- Cơ sở dữ liệu đám mây: Cloud Firestore - Công cụ hỗ trợ: Android Studio, Emulator android

Trang 19

b Chương 1: Cơ sở lý thuyết Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình Kotlin, Firebase và cơ sở dữ liệu đám mây Cloud Firestore, hệ điều hành Android

c Chương 2: Phân tích thiết kế hệ thống Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chức năng của hệ thống Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD Thiết kế cơ sở dữ liệu Xây dựng kịch bản cho từng use-case trong hệ thống

d Chương 3: Xây dựng chương trình Xây dựng giao diện và chức năng của hệ thống e Phần kết luận

Kết luận chung cho các chương trong đồ án Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát triển

Trang 20

CƠ SỞ LÝ THUYẾT Ngôn ngữ lập trình Kotlin

Kotlin là gì? Kotlin là một ngôn ngữ lập trình đa nền tảng (cross-platform) được phát triển bởi JetBrains, một công ty phát triển phần mềm có trụ sở tại Nga Kotlin được thiết kế để chạy trên Java Virtual Machine (JVM) và có thể sử dụng để phát triển ứng dụng di động, web và backend

Mục tiêu chính của Kotlin là cung cấp một ngôn ngữ lập trình hiện đại, có tính năng mạnh mẽ và cú pháp dễ đọc, giúp tăng cường hiệu suất và năng suất của lập trình viên Kotlin được xây dựng với mục tiêu tương thích ngược (interoperability) với Java, điều này có nghĩa là mã nguồn Java hiện có có thể được tích hợp và sử dụng trong dự án Kotlin và ngược lại [1]

Lịch sử phát triển Năm 2010: JetBrains bắt đầu nghiên cứu và phát triển Kotlin như một ngôn ngữ mới dựa trên JVM

Tháng 7 năm 2011: Phiên bản M1 Tháng 6 năm 2013: Kotlin được phát triển dưới dạng dự án mã nguồn mở Tháng 2 năm 2016: Phiên bản 1.0 của Kotlin được phát hành

Tháng 5 năm 2017: Google công bố hỗ trợ chính thức Kotlin trong việc phát triển ứng dụng Android

Tháng 10 năm 2017: Phiên bản Kotlin 1.2 được phát hành với multiplatform projects và kotlinx.coroutines

Tháng 5 năm 2019: Kotlin 1.3 ra mắt với tính năng chính là Kotlin/Native Tháng 12 năm 2020: Kotlin 1.4 (kotlinx.serialization và JVM IR compiler)

Tháng 8 năm 2021: Kotlin 1.5 (sealed interfaces và implicit conversions).[1]

Giới thiệu API

Api: API là viết tắt của Application Programming Interface (Giao diện lập trình ứng dụng), một phần mềm trung gian cho phép hai ứng dụng nói chuyện với nhau Mỗi

Trang 21

khi sử dụng một ứng dụng như Facebook, gửi tin nhắn tức thì hoặc kiểm tra thời tiết trên điện thoại, có nghĩa là bạn đang sử dụng API

Kiến trúc API thường được giải thích dưới dạng máy chủ và máy khách Ứng dụng gửi yêu cầu được gọi là máy khách, còn ứng dụng gửi phản hồi được gọi là máy chủ Như vậy, trong ví dụ về thời tiết, cơ sở dữ liệu của cơ quan thời tiết là máy chủ còn ứng dụng di động là máy khách API hoạt động theo 4 cách khác nhau, tùy vào thời điểm và lý do chúng được tạo ra

Cách hoạt động của API:

a) API SOAP Các API này sử dụng Giao thức truy cập đối tượng đơn giản Máy chủ và máy khách trao đổi thông đệp bằng XML Đây là loại API kém linh hoạt được dùng phổ biến trước đây

b) API RPC Những API này được gọi là Lệnh gọi thủ tục từ xa Máy khách hoàn thành một hàm (hoặc thủ tục) trên máy chủ còn máy chủ gửi kết quả về cho máy khách

c) API Websocket API Websocket là một bản phát triển API web hiện đại khác sử dụng các đối tượng JSON để chuyển dữ liệu API WebSocket hỗ trợ hoạt động giao tiếp hai chiều giữa ứng dụng máy khách và máy chủ Máy chủ có thể gửi thông điệp gọi lại cho các máy khách

d) API RESTĐây là loại API phổ biến và linh hoạt nhất trên web hiện nay Máy khách gửi yêu cầu đến máy chủ dưới dạng dữ liệu Máy chủ dùng dữ liệu đầu vào từ máy khách này

Firebase

Đôi nét lịch sử Tiền thân của nền tảng Firebase chính là Envolve Envolve đến với người dùng dưới mô hình startup, họ cung cấp cho người dùng những API để dễ dàng tích hợp tính năng chat vào trang web Thế nhưng, người dùng lại sử dụng Envolve để truyền dữ liệu ứng dụng chứ không đơn thuần là nhắn tin trò chuyện Chính điều này đã khiến các nhà phát triển Envolve quyết định tách riêng chat system và the real-time architecture

Trang 22

Và năm 2012, Firebase ra đời dưới dạng Backend-as-a-Service với chức năng thời gian thực Sau khi được Google mua lại vào năm 2014 thì Firebase nhanh chóng phát triển thành nền tảng phát triển ứng dụng đa năng của di động và website như ngày nay.Nền tảng này là sự kết hợp giữa cloud với hệ thống máy chủ của Google để tập trung chính cho 2 đối tượng là:

Develop & test your app: phát triển và thử nghiệm các ứng dụng được thiết kế Grow & engage your audience: phân tích dữ liệu và tối ưu hóa trải nghiệm với

người dùng.[2] Những tính năng chính của Firebase

Realtime Database

Realtime Database là một cơ sở dữ liệu thời gian thực Ngay sau khi bạn đăng ký tài khoản trên Firebase, bạn sẽ nhận được Realtime Database được lưu trữ dưới dạng JSON và được đồng bộ hóa theo thời gian thực đối với mọi kết nối

Đối với các ứng dụng được xây dựng trên đa nền tảng như Android, IOS và WebApp, tất cả client sẽ cùng sử dụng một cơ sở dữ liệu Bên cạnh đó, hệ thống dữ liệu này sẽ tự động cập nhật khi lập trình viên phát triển ứng dụng Sau đó, tất cả dữ liệu này sẽ được truyền tải thông qua các kết nối SSl có 2048 bit [3]

Hình 1.1: Realtime Database là một cơ sở dữ liệu theo thời gian thực

Trang 23

Authentication

Authentication là tính năng giúp xác thực danh tính của người dùng ứng dụng Firebase cung cấp các bước xác thực thông qua Email, Facebook, Twitter, GitHub hay Google Điều này giúp cho các thông tin cá nhân của khách hàng được bảo vệ một cách tốt nhất, hạn chế được tình trạng bị hacker đánh cắp Đồng thời việc xác thực danh tính qua Firebase sẽ giúp người dùng tiếp cận sản phẩm nhanh chóng và an toàn hơn [3]

Cloud Storage

Cloud Storage là tính năng cho phép lưu trữ và quản lý nội dung đã tạo ra như ảnh, video, nội dung, văn bản, Firebase Storage cung cấp các API hỗ trợ bạn upload và download các file từ ứng dụng một cách trơn tru mà không cần quan tâm đến chất lượng đường truyền mạng với độ bảo mật cao [3]

Hình 1.2: Cloud Storage là tính năng cho phép người dùng ứng dụng lưu trữ

và quản lý nội dung đã tạo ra

Cloud Firestore

Cloud Firestore được phát triển từ tính năng Realtime Database Trải qua nhiều lần nâng cấp, Cloud Firestore có giao diện trực quan và khả năng mở rộng ưu việt hơn so với Realtime Database Tính năng này của Firebase giúp đồng bộ mọi dữ liệu trên các ứng dụng thông qua việc đăng ký thời gian thực và cung cấp hỗ trợ ngoại tuyến cho thiết bị di động cũng như website [3]

Trang 24

Hosting

Hosting được phân phối thông qua tiêu chuẩn công nghệ bảo mật SSl từ hệ thống mạng CDN CDN là một mạng lưới máy chủ giúp lưu trữ các bản sao của các nội dung tĩnh trên website Thông qua CDN, người dùng có thể truy cập và sử dụng các dịch vụ trên web khi cài Firebase Hosting một cách nhanh chóng và ổn định hơn [3]

Cloud Functions

Cloud Functions giúp chạy code backend tự động nhằm phản hồi các sự kiện được kích hoạt bởi tính năng của Firebase và HTTPS request Cloud Functions có tính bảo mật cao và luôn thực hiện chính xác những gì mà bạn muốn [3]

Analytics

Analytics giúp bạn có thể phân tích hành vi của người sử dụng ứng dụng của bạn Qua đó, bạn sẽ biết được khách hàng thường xuyên truy cập tính năng nào và các thông tin về hiệu quả quảng cáo, tình trạng trả phí, để có thể đưa ra được chiến lược phát triển phù hợp Để thực hiện tính năng Analytics của Firebase, bạn cần cài đặt Software Development Kit (SDK) [3]

Chức năng của Firebase

Phát triển ứng dụng di dộng và web

Với cơ sở dữ liệu khổng lồ, Firebase giúp lập trình viên phát triển ứng dụng di động một cách nhanh chóng và giúp giảm thiểu chi phí Song song đó, Firebase cho phép phát triển ứng dụng trên cả nền tảng iOS và Android nên có thể đáp ứng mọi yêu cầu về hệ điều hành

Ngoài việc hỗ trợ phát triển ứng dụng di động, Firebase còn giúp xây dựng ứng dụng website Các API đơn giản và hữu dụng giúp bạn có thể xây dựng ứng dụng mà không cần backend và server [3]

Lưu trữ và đồng bộ dữ liệu

Firebase thường xuyên sao lưu dữ liệu nhằm đảo bảo tính sẵn có của dữ liệu Bên cạnh đó, chức năng này của Firebase còn giúp cho mọi thông tin và dữ liệu của người dùng sẽ được bảo mật một cách tốt nhất nếu có trường hợp xấu xảy ra Đặc biệt, khi sử dụng gói dịch vụ mất phí, bạn có thể dễ dàng sử dụng cấu hình cơ sở dữ liệu thời gian thực của Firebase để thực hiện các bản sao lưu tự động [3]

Trang 25

Quản lý đăng nhập

Firebase Authentication giúp nhà phát triển quản lý người dùng ứng dụng một cách đơn giản và an toàn Cụ thể, Firebase cung cấp nhiều phương pháp quản lý đăng nhập thông qua email với mật khẩu Google và Facebook Việc đăng nhập này vừa đảm bảo xác thực được người dùng, vừa không để lộ thông tin cá nhân [3]

Phân tích dữ liệu

Chức năng phân tích dữ liệu của Firebase giúp lập trình viên có một cái nhìn tổng quan về ứng dụng thông qua các số liệu thống kê, biểu đồ, bảng biểu, Cụ thể, bạn sẽ biết được số liệu về số khách hàng đã truy cập vào app và web, khách hàng đang sử dụng trong 30 phút vừa qua, Qua đó, bạn có thể xây dựng được những chiến lược phát triển ứng dụng sao cho phù hợp với nhu cầu của thị trường [3]

Hình 1.3: Firebase có chức năng phát triển ứng dụng di động

Android

Hệ điều hành Android là gì? Android là một hệ điều hành có dạng mã nguồn mở, nó hoạt động dựa trên nền tảng Linux và được thiết kế dành riêng cho những thiết bị di động cảm ứng hoặc máy tính bảng Trước đây, hệ điều hành này được phát triển bởi tổng công ty Android và được tài trợ bởi Google Cho đến năm 2005 thì Google đã mua lại hệ điều hành này và cho ra

Trang 26

mắt người dùng vào năm 2007 Android này sở hữu mã nguồn mở nên lập trình viên có thể dễ dàng điều chỉnh và phân phối nó một cách tự do Đây chính là một trong những yếu tố đã giúp cho Android trở thành nền tảng xây dựng điện thoại thông minh phát triển nhất trên thế giới

Hình 1.4: Biểu tượng Android Hiện tại, Android đã chiếm 65% so với thị phần điện thoại thông minh trên toàn thế giới vào quý 3 năm 2012 Theo điều tra thì đã có khoảng 500 triệu thiết bị được kích hoạt và có đến 1.3 triệu lượt được hoạt mỗi ngày Vào tháng 10/2020 thì android đã có hơn 700.000 ứng dụng và số lượng tải từ Google Play ước tính lên khoảng 25 tỷ lượt Mặc dù có sự ra đời của iOS của Apple thì khiến Android có phần nào ảnh hưởng Tuy nhiên, Android vẫn đứng ở vị trí đầu tiên trong thị phần thế giới [4]

Lịch sử phiên bản Android Android phát triển rất nhanh, tới nay đã trải qua nhiều lần chỉnh sửa và nâng cấp với các phiên bản sau:

Android 1.5 Cupcake Android 1.6 Donut Android 2.1 Eclair Android 2.2 Froyo

Trang 27

Android 2.3 Gingerbread Android 3.2 Honeycomb – Phiên bản Android đầu tiên được thiết kế cho máy tính bảng

Android 4.0 Ice Cream Sandwich Android 4.1 Jelly Bean

Android 4.2 Jelly Bean Android 4.3 Jelly Bean Android 4.4 KitKat

Android 5.0 Lollipop Android 6.0 Marshmallow Android 7.0 Nougat

Oreo(8.0) Pie(9.0) [5] Android 10 Quince Tart Android 11 Red Velvet Cake Android 12 Snow Cone

Android 12L Snow Cone v2 Android 13 Tiramisu

Android 14 Upside Down Cake [6]

Hình 1.5: Các biểu tượng phiên bản của Android

Trang 28

Kiến trúc hệ điều hành Android Hệ điều hành Android là 1 ngăn xếp các thành phần phần mềm, được chia thành 5 phần và 4 lớp chính như trong hình bên dưới

Hình 1.6: Kiến trúc của hệ điều hành Android

Linux Kernel

Dưới cùng là lớp Linux - Linux 3.6 cùng với khoảng 115 bản vá Lớp này cung cấp 1 cấp độ trừu tượng giữa phần cứng của thiết bị và các thành trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn hình hiển thị Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà Linux có thể làm tốt như mạng kết nối và 1 chuỗi các trình điều khiển thiết bị, giúp cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn [7]

Các thư viện

Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit - trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu SQLite - hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viện chơi và ghi âm audio, video, hay các thư viện SSL chiụ trách nhiệm bảo mật Internet [7]

Trang 29

Các thư viện Android

Đây là các thư viện dựa trên Java phục vụ cho việc phát triển Android Ví dụ của các thư viện này bao gồm các thư viện ứng dụng dùng để xây dựng giao diện người dùng, vẽ đồ họa hay truy cập cơ sở dữ liệu 1 số thư viện chính của Android:

android.app - Cung cấp quyền truy cập vào ứng dụng và là nền tảng của tất cả ứng dụng Android

android.content - Cung cấp quyền truy cập nội dung (content), truyền tải thông điệp giữa các ứng dụng hay các thành phần của ứng dụng

android.database - Đựoc sử dụng để truy cập dữ liệu của content provider và cơ sở dữ liệu SQLite

android.opengl - giao diện các phuơng thức Java để sử dụng OpenGL ES android.os - Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của hệ điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại android.text - Đựoc sử dụng để hiển thị và điều chỉnh chữ trên màn hình thiết bị android.view - Các thành phần cơ bản trong việc xây dựng giao diện người dùng

của ứng dụng android.widget - Tập các thành phần giao diện người dùng đã được xây dựng sẵn như các nút, các nhãn (label), list view,

android.webkit - Tập các lớp cho phép xây dựng khả năng duyệt web [7]

Android Runtime

Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên Phần này cung cấp 1 bộ phận quan trọng là Dalvik Vỉtual Machine - là 1 loại Java Virtual Machine được thiết kế đặc biệt để tối ưu cho Android

Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Java Dalvik VM giúp mọ ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện (instance) riêng của Dalvik virtual Machine

Android Runtime cũng cung cấp 1 tập các thư viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụng Android bằng Java [7]

Trang 30

Application Framework

Lớp Android Framework cung cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng các lớp Java Các nhà phát triển ứng dụng được phép sử dụng các dịch vụ này trong ứng dụng của họ

Android Framework bao gồm các dịch vụ chính sau: Activitty Manager - Kiểm soát tất cả khía cạnh của vòng đời ứng dụng và ngăn xếp các Activity

Content Providers - Cho phép các ứng dụng chia sẽ dữ liệu với các ứng dụng khác

Resource Manager - Cung cấp quyền truy cập vào các tài nguyên như các chuỗi, màu sắc, các layout giao diện người dùng

Notifications Manager - Cho phép các ứng dụng hiển thị cảnh báo và các thông báo cho người dùng

View System - Tập các thành phần giao diện (view) được sử dụng để tạo giao diện người dùng [7]

Màn hình chính sẽ xuất hiện khi bạn khởi động thiết bị, gồm có các tiện ích và biểu tượng ứng dụng Widget có chức năng hiển thị những thông tin cập nhật các nội dung về thời tiết cùng với tin tức Mỗi nhà sản xuất sẽ cho ra mắt các màn hình khác nhau tùy vào cá tính của họ Bạn cũng có thể tùy thích chọn các theme cho màn hình thông qua các app trên Google Play

Thanh trạng thái của Android OS sẽ hiển thị thông tin về thiết bị và kết nối của thiết bị, ví dụ như kết nối Wi-Fi sẽ cho người dùng biết được cường độ tín hiệu của nó Bạn có thể kéo thanh trạng thái xuống để xem màn hình thông báo

Trang 31

Android OS cũng bao gồm các tính năng để tiết kiệm pin sử dụng Để tiết kiệm pin cho thiết bị, hệ điều hành sẽ thực hiện dừng các app không được phép dùng và mức sử dụng của CPU Android ngoài ra còn có thể quản lý bộ nhớ, tự động đóng các quá trình không hoạt động được lưu trữ trong bộ nhớ của nó

Android cũng hỗ trợ các tính năng như sau: Bluetooth

Edge 3G Wifi Tin nhắn SMS và MMS Máy quay Video, máy ảnh kỹ thuật số GPS

La bàn Máy đo gia tốc Đồ họa 3D tăng tốc Ứng dụng đa nhiệm [8]

Công cụ sử dụng phát triển hệ thống

Giới thiệu về Android Studio Android Studio là Môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng dụng Android Nhờ có công cụ cho nhà phát triển và trình soạn thảo mã mạnh mẽ của IntelliJ IDEA, Android Studio cung cấp thêm nhiều tính năng giúp bạn nâng cao năng suất khi xây dựng ứng dụng Android, chẳng hạn như:

Một hệ thống xây dựng linh hoạt dựa trên Gradle Một trình mô phỏng nhanh và nhiều tính năng

Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android Tính năng Live Edit (Chỉnh sửa trực tiếp) để cập nhật các thành phần kết hợp trong trình mô phỏng và thiết bị thực theo thời gian thực

Mã mẫu và quá trình tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến cũng như nhập mã mẫu

Trang 32

Đa dạng khung và công cụ thử nghiệm Công cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng hữu dụng, khả năng tương thích với phiên bản và các vấn đề khác

Hỗ trợ C++ và NDK Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging và App Engine [9]

Giới thiệu công cụ Emulator Android Trình mô phỏng Android mô phỏng các thiết bị Android thông qua máy tính để bạn có thể kiểm thử ứng dụng của mình trên nhiều thiết bị và cấp độ API Android mà không cần đến thiết bị thực tế Trình mô phỏng mang lại những lợi ích sau đây:

Tính linh hoạt: Ngoài khả năng mô phỏng nhiều thiết bị và cấp độ API Android,

trình mô phỏng còn có sẵn các cấu hình được xác định trước cho nhiều loại máy tính bảng, điện thoại Android, thiết bị Wear OS và thiết bị Android TV

Độ chân thực cao: Trình mô phỏng cung cấp hầu hết các tính năng của một thiết

bị Android thực tế Bạn có thể mô phỏng cuộc gọi điện thoại và tin nhắn văn bản đến, chỉ định vị trí của thiết bị, mô phỏng nhiều tốc độ mạng, mô phỏng cảm biến xoay và các cảm biến phần cứng khác, truy cập vào Cửa hàng Google Play và nhiều chức năng khác

Tốc độ: Việc kiểm thử ứng dụng trên trình mô phỏng có thể sẽ nhanh và dễ dàng

hơn so với khi dùng thiết bị thực tế Ví dụ: bạn có thể chuyển dữ liệu sang trình mô phỏng nhanh hơn so với khi sử dụng thiết bị kết nối qua USB [10]

Trang 33

PHÂN TÍCH THIẾT KẾ HỆ THỐNG Khảo sát hệ thống

Khảo sát thực tế Hiện nay, trong cuộc sống hối hả và ngày càng nhiều công việc cần phải quản lý, nhu cầu sử dụng ứng dụng có thể quản lý công việc đang ngày càng tăng cao Việc quản lý công việc theo dõi tiến độ là những yếu tố quan trọng đối với nhiều người Để giải quyết những thách thức này, việc thành lập một ứng dụng lên lịch công việc đáp ứng đầy đủ nhu cầu người dùng là hết sức cần thiết

Khảo sát người dùng Nhu cầu quản lý công việc, ghi chú, lên kết hoạch cho các hoạt đông ngày càng tăng, nhiều ứng dụng ra đời nhưng lại tốn phí, ứng dụng miễn phí thì chứa quảng cáo gây bất tiện cho người dùng

Đặc tả yêu cầu phần mềm

Xác định các tác nhân ❖ Đề tài gồm một tác nhân chính:

Người dùng (User) Các yêu cầu chức năng ❖ User

Xem danh sách công việc đã tạo Tìm kiếm và lọc công việc

Xem chi tiết công việc Tạo một công việc hoặc dự án mới Thêm thành viên vào dự án

Xem danh mục công việc Tạo danh mục cá nhân

Xem thống kê công việc Lập lịch cho công việc (đặt thông báo, lên lịch theo thời gian) Cập nhật thông tin cá nhân

Trang 34

Đăng nhập Yêu cầu phi chức năng Giao diện, đẹp mắt, đơn giản, dễ sử dụng Đảm bảo tính bảo mật, an toàn

Tốc độ xử lý nhanh chóng

Biểu đồ Use Case

Sơ đồ usecase tổng quát

Hình 2.1: Usecase tổng quát

Trang 35

Sơ đồ usecase chức năng Xem và tìm kiếm danh sách công việc đã tạo

Hình 2.2: Usecase Xem và tìm kiếm danh sách công việc đã tạo Sơ đồ usecase chức năng Tạo một công việc mới

Hình 2.3: Usecase Tạo một công việc mới

Trang 36

Sơ đồ usecase chức năng Xem danh mục công việc

Hình 2.4: Usecase Xem danh mục công việc Sơ đồ usecase chức năng Xem chi tiết công việc

Hình 2.5: Usecase Xem chi tiết công việc

Trang 37

Sơ đồ usecase chức năng Cập nhật thông tin cá nhân

Hình 2.6: Usecase Cập nhật thông tin cá nhân Sơ đồ usecase chức năng Xem thống kê công việc

Hình 2.7: Usecase Xem thống kê công việc

Trang 38

Kịch bản cho Use Case

Thông tin tài khoản

Output Hệ thống thông báo đăng nhập hệ thống thành công

Basic flow 1 Actor vào ứng dụng ➔ Bắt đầu use case

2 Actor nhập thông tin tài khoản (tên tài khoản, mật khẩu), hoặc chọn đăng nhập với Google

3 Actor nhấn nút đăng nhập Hệ thống kiểm tra và trả về trang Trang chủ (đã đăng nhập) ➔ Kết thúc use case

Alternative flow

Exception flow 2.1 Actor thoát khỏi hệ thống ➔ Use case kết thúc mà chưa

được đăng nhập 3.1 Nhập sai tài khoản hoặc mật khẩu ➔ Thông báo không tìm thấy tài khoản hoặc sai mật khẩu ➔Quay lại bước 2

Kịch bản use case “Xem và tìm kiếm danh sách công việc” Bảng 2.2: Kịch bảng Usecase Xem và tìm kiếm danh sách công việc

Use case name Xem và tìm kiếm danh sách công việc Description User muốn xem danh sách công việc đã tạo

Input Actor vào giao diện ứng dụng

Output Hệ thống hiển thị thành công danh sách công việc

Basic flow 1 Actor truy cập vào ứng dụng → Bắt đầu Usecase

2 Actor xem danh sách công việc được hiển thị ở tab “Công việc”

Trang 39

3 Actor nhấn vào chữ “Tất cả” → ứng dụng chuyển sang màn hình tìm kiếm công việc

4 Actor nhập từ khoá tìm kiếm Actor nhấn nút tìm kiếm → Hệ thống hiển thị danh sách công việc theo từ khoá → Usecase kết thúc

Alternative flow

Exception flow 2.1 Actor chuyển tab khác hoặc thoát ứng dụng → Usecase kết

thúc 3.1 Actor nhấn trở về → Chuyển sang bước 2 5.1 Actor nhập thông tin tìm kiếm không hợp lệ hoặc không có dữ liệu ➔ Hệ thống trả về danh sách rỗng

Kịch bản usecase Tạo mới công việc

Bảng 2.3: Kịch bảng Usecase Tạo mới công việc

Use case name Tạo mới công việc Description User muốn tạo mới một công việc

Thông tin công việc muốn tạo

Output Hệ thống hiển thị công việc đã được tạo thành công lên giao

diện

Basic flow 1 Actor nhấn vào nút tạo mới công việc ➔ Bắt đầu use

case 2 Actor chọn loại công việc 3 Actor nhập thông tin công việc 4 Actor nhấn nút xác nhận Hệ thống hiển thị thông tin công việc vừa tạo ra trên giao diện → Usecase kết thúc

Alternative flow

2.a Actor chọn loại công việc là Dự án Thêm thành viên dự án

Exception flow 3.1 Actor nhấn huỷ → Usecase kết thúc

Trang 40

Kịch bản usecase Xem chi tiết công việc

Bảng 2.4: Kịch bản Usecase Xem chi tiết công việc

Use case name Xem chi tiết công việc Description User muốn xem chi tiết công việc

Output Hệ thống hiển thị thông tin chi tiết công việc

Basic flow 1 Actor chọn một công việc trong danh sách công việc trên

giao diện ➔ Bắt đầu use case Hệ thống hiển thị chi tiết về công việc → Usecase kết thúc

Alternative flow

Kịch bản usecase Sửa chi tiết công việc

Bảng 2.5: Kịch bản Usecase Sửa chi tiết công việc

Use case name Sửa chi tiết công việc Description User muốn chỉnh sửa chi tiết công việc

Input Thông tin chi tiết công việc

Output Thông tin chi tiết công việc sau khi chỉnh sửa

Basic flow 1 Actor chọn một công việc➔ Bắt đầu use case

2 Actor chình sửa chi tiết công việc (tiêu đề, mô tả công việc, tệp đính kèm…)

3 Actor nhấn vào nút “Xác nhận” Hệ thống hiển thị ra thông báo chỉnh sửa thành công ➔ Use case kết thúc

Alternative flow

1 a Actor chọn loại công việc là Dự án Chỉnh sửa thành viên

Exception flow 3.1 Actor nhấn trở về → Usecase kết thúc

Kịch bản usecase Xoá công việc

Bảng 2.6: Kịch bản Usecase bình luận

Use case name Xoá công việc Description User muốn xoá công việc

Ngày đăng: 19/09/2024, 20:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w