ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA CÔNG NGHỆ SỐ Đà Nẵng, thá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:
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, thá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 QUẢN LÝ CÔNG VIỆC
CỦA NHÂN VIÊN TẠI CÔNG TY LUTECH
Sinh viên thực hiện : Nguyễn Đăng Khoa
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, thá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 QUẢN LÝ CÔNG VIỆC
CỦA NHÂN VIÊN TẠI CÔNG TY LUTECH
Giảng viên hướng dẫn duyệt
Trang 3NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Trang 4NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
Trang 5TÓM TẮT Tên đề tài: Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech Sinh viên thực hiện: Nguyễn Đăng Khoa
Nội dung tóm tắt đề tài:
Ứng dụng “Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech” là một sản phẩm di động trên hệ điều hành Android nhằm hỗ trợ việc quản lý các đầu việc hiện nay tại công ty
Ứng dụng giúp việc quản lý và triển khai các đầu mục công việc một cách nhanh chóng Quản lý các công việc trong công ty giữa các bên liên quan một cách rõ ràng, minh bạch
Bên cạnh đó, người dùng dễ dàng theo dõi được tiến độ hiện tại, nắm bắt được các công việc cần phải thực hiện Từ đó tạo sự phối hợp nhịp nhàng giữa các nhân viên, tránh gây lãng phí thời gian và phát sinh các công việc dư thừa
Cùng với giao diện đơn giản và dễ sử dụng, ứng dụng tạo cảm giác thoải mái trong quá trình thao tác đối với người dùng
Ứng dụng sử dụng cơ sở dữ liệu Firebase thời gian thực, khi một công việc được tạo mới ngay lập tức thông báo đến các nhân viên có liên quan để nhanh chóng theo dõi, cập nhật tiến độ của công việc
Trang 6TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
2 Các số liệu, tài liệu ban đầu
- Dựa trên nhu cầu quản lý công việc tại công ty Lutech - Các kiến thức nắm được qua việc thực tập và làm việc tại công ty Lutech
3 Nội dung chính của đồ án
- Mở đầu - Chương 1: Cơ sở lý thuyết - Chương 2: Phân tích thiết kế hệ thống - Chương 3: Xây dựng chương trình - Kết luận
Trang 7LỜI NÓI ĐẦU
Trước tiên, em xin gửi lời cảm ơn chân thành đến quý thầy cô đã đồng hành và hỗ trợ em trong quá trình thực hiện đề tài báo cáo khóa luận tốt nghiệp này Đặc biệt,
em muốn bày tỏ lòng biết ơn đến giảng viên TS Hoàng Thị Mỹ Lệ vì sự tận tâm và sự
hướng dẫn cụ thể trong suốt quá trình nghiên cứu
Hơn nữa, em cũng xin được cảm ơn đến các quý thầy cô thuộc
khoa Công Nghệ Số - Trường Đại học Sư phạm Kỹ thuật - Đại Học Đà Nẵng đã đồng
hành, giúp đỡ, truyền đạt những kiến thức quan trọng và chia sẻ rất nhiều những kinh nghiệm quý báu trong suốt quá trình hơn bốn năm học tập tại trường để chúng em hoàn thành công việc của mình!
Tuy nhiên, trong quá trình thực hiện đề tài, do còn hạn chế về kiến thức cũng như thời gian, em không thể tránh khỏi những thiếu sót Vì thế, em mong rằng quý thầy cô có thể thông cảm và đóng góp ý kiến để em có thể hoàn thành đề tài này một cách tốt nhất Những góp ý đó sẽ giúp em hoàn thiện hơn và là hành trang lớn nhất để em vững bước trong tương lai sắp đến!
Em xin chân thành tri ân và cảm ơn!
Trang 8LỜI CAM ĐOAN
Em xin cam đoan: 1 Những nội dung trong luận văn này của bản thân được thực hiện dưới sự
hướng dẫn của giảng viên TS Hoàng Thị Mỹ Lệ Nội dung nghiên cứu, kết quả
trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây
2 Mọi tham khảo trong bài luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian và địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hay dối trá, em xin chịu hoàn toàn trách nhiệm
Sinh viên thực hiện
Trang 9DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT xi
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xi
MỞ ĐẦU 1
1 Mục tiêu và phạm vi đề tài 1
2 Đối tượng nghiên cứu và phạm vi nghiên cứu 1
a Đối tượng nghiên cứu 1
b Phạm vị nghiên cứu 2
3 Phương pháp nghiên cứu và lựa chọn giải pháp công nghệ 2
a Phương pháp nghiên cứu 2
b Lựa chọn giải pháp công nghệ 2
4 Cấu trúc đồ án 2
CHƯƠNG 1 4
1.1 Giới thiệu về hệ quản trị cơ sở dữ liệu Firebase 4
1.1.1 Khái quát về hệ quản trị CSDL Firebase 4
1.1.2 Ưu điểm của Firebase 4
1.1.3 Nhược điểm của Firebase: 5
1.1.4 Một số dịch vụ nổi bật của Firebase 6
1.2 Giới thiệu về ngôn ngữ lập trình Kotlin 9
1.2.1 Giới thiệu Kotlin 9
1.2.2 Tính năng của ngôn ngữ lập trình Kotlin: 10
Trang 101.3 Giới thiệu về môi trường phát triển Android Studio 11
1.3.1 Android Studio là gì? 11
1.3.2 Lịch sử hình thành: 12
1.3.3 Các tính năng của Android Studio: 12
1.4 Trình giả lập Android trên laptop, máy tính LDPLayer 9 15
2.3 Yêu cầu chất lượng ứng dụng 19
2.7 Sơ đồ ERD của hệ thống 37
2.8 Thiết kế cơ sở dữ liệu hệ thống 38
Trang 11CHƯƠNG 3 42
3.1.1 Giao diện “Đăng nhập”: 42
3.1.2 Giao diện “Danh sách dự án” 43
3.1.4 Giao diện “Danh sách nhiệm vụ” 45
3.1.5 Giao diện “Thêm nhiệm vụ” 46
3.1.6 Giao diện “Danh sách công việc” 47
3.1.7 Giao diện “Thêm công việc” 48
3.1.8 Giao diện “Xem công việc” 49
3.1.9 Giao diện “Xem tình trạng công việc của nhân viên” 51
3.1.10 Giao diện “Trang cá nhân” 53
3.1.11 Giao diện “Cập nhật mật khẩu” 54
3.1.12 Giao diện “Mật khẩu cấp 2” 55
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
1 Kết luận 56
2 Hướng phát triển 56
TÀI LIỆU THAM KHẢO 57
Trang 12DANH MỤC BẢNG BIỂU
Bảng 2.1: Kịch bản cho chức năng “Đăng nhập” 20
Bảng 2.2: Kịch bản cho chức năng “Tạo dự án mới” 21
Bảng 2.3: Kịch bản cho chức năng “Cập nhập thời gian dự án” 22
Bảng 2.4: Kịch bản cho chức năng “Thêm nhân viên cho dự án” 23
Bảng 2.5: Kịch bản cho chức năng “Tạo nhiệm vụ” 24
Bảng 2.6: Kịch bản cho chức năng “Tạo công việc” 25
Bảng 2.7: Kịch bản cho chức năng “Thêm tệp đính kèm” 26
Bảng 2.8: Kịch bản cho chức năng “Cập nhật mật khẩu” 27
Bảng 2.9: Kịch bản cho chức năng “Cập nhật mật khẩu cấp 2” 28
Bảng 2.10: Cơ sở dữ liệu bảng “Dự án” 38
Bảng 2.11: Cơ sở dữ liệu bảng “Nhiệm vụ” 38
Bảng 2.12: Cơ sở dữ liệu bảng “Nhân viên_Dự án” 39
Bảng 2.13: Cơ sở dữ liệu bảng “Công việc” 39
Bảng 2.14: Cơ sở dữ liệu bảng “Tệp đính kèm” 39
Bảng 2.15: Cơ sở dữ liệu bảng “Admin” 40
Bảng 2.16: Cơ sở dữ liệu bảng “Nhân viên” 40
Bảng 2.17: Cơ sở dữ liệu bảng “Chức vụ” 40
Bảng 2.18: Cơ sở dữ liệu bảng “Tài khoản” 41
Trang 13DANH MỤC HÌNH ẢNH
Hình 1.1: Logo của hệ quản trị cơ sở dữ liệu Firebase 4
Hình 1.2: Ưu điểm của Firebase 5
Hình 1.3: Cơ sở dữ liệu thời gian thực Firebase Real-time 6
Hình 1.4: Dịnh vụ Authentication 7
Hình 1.5: Dịch vụ lưu trữ Storage 7
Hình 1.6: Dịch vụ Firebase Remote Config 8
Hình 1.7: Dịch vụ Firebase Crashlytic 9
Hình 1.8: Ngôn ngữ lập trình ứng dụng Android Kotlin 9
Hình 1.9: Sự tiện lợi của ngôn ngữ Kotlin so với người tiền nhiệm Java 10
Hình 1.10: New Module Wizard 13
Hình 1.11: Trình mô phỏng điện thoại hệ điều hành Android 14
Hình 1.12: Tệp XML trong Android Studio 15
Hình 1.13: Trình giả lập di động LDPlaey 9 mạnh mẽ 16
Hình 1.14: LDPlayer 9 giả lập di động mang hệ điều hành Android 16
Hình 1.15: LDPlayer 9 với mức tiêu hao bộ nhớ thấp 17
Hình 2.1: Sơ đồ Usecase của hệ thống 20
Hình 2.2: Sơ đồ hoạt động của chức năng “Đăng nhập” 29
Hình 2.3: Sơ đồ hoạt động của chức năng “Tạo dự án” 30
Hình 2.4: Sơ đồ hoạt động của chức năng “Cập nhật thời gian dự án” 31
Hình 2.5: Sơ đồ hoạt động của chức năng “Thêm nhân viên cho dự án” với vai trò người quản lý dự án 32
Hình 2.6: Sơ đồ hoạt động của chức năng “Thêm nhân viên cho dự án” với vai trò người quản lý nhóm dự án 32
Hình 2.7: Sơ đồ hoạt động của chức năng “Tạo nhiệm vụ” 33
Hình 2.8: Sơ đồ hoạt động của chức năng “Tạo công việc” 34
Hình 2.9: Sơ đồ hoạt động của chức năng “Thêm tệp đính kèm” 35
Hình 2.10: Sơ đồ hoạt động của chức năng “Cập nhật mật khẩu” 35
Hình 2.11: Sơ đồ hoạt động của chức năng “Cập nhật mật khẩu cấp 2” 36
Trang 14Hình 3.1: Giao diện “Đăng nhập” 42
Hình 3.2: Giao diện “Danh sách dự án” 43
Hình 3.3: Giao diện “Thêm dự án mới” 44
Hình 3.4: Giao diện “Danh sách nhiệm vụ” 45
Hình 3.5: Giao diện “Thêm nhiệm vụ” 46
Hình 3.6: Giao diện “Danh sách công việc” 47
Hình 3.7: Giao diện “Thêm công việc” 48
Hình 3.8: Giao diện “Xem công việc” 50
Hình 3.9: Giao diện “Xem tình trạng công việc của nhân viên” 52
Hình 3.10: Giao diện “Trang cá nhân” 53
Hình 3.11: Giao diện “Cập nhật mật khẩu” 54
Hình 3.12: Giao diện “Mật khẩu cấp 2” 55
Trang 15DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT
1 CSDL Hệ quản trị cơ sở dữ liệu 2 TNHH Công ty trách nhiệm hữu hạn
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH
1 XML eXtensible Markup
Language()
Ngôn ngữ đánh dấu ứng dụng mở rộng
2 SDK Software Development Kit Bộ công cụ phát triển phần mềm 3 ERD Entity–relationship model Mô hình mối quan hệ-thực thể
4 JVM Java Virtual Machine
Máy ảo Java, dùng để thực thi các chương trình Java (trình thông dịch của Java)
5 IDE Integrated Development
Environment
Môi trường phát triển tích hợp Phần mềm máy tính hỗ trợ các lập trình viên viết mã, và chúng được tích hợp rất nhiều tính năng
6 PC Personal Computer
Một loại máy tính cá nhân với giá cả, kích thước và sự tương thích của nó khiến nó hữu dụng cho từng đối tượng cá nhân
Trang 16Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
MỞ ĐẦU
Công ty TNHH Công nghệ phần mềm Lutech được thành lập vào ngày 30, tháng 9 năm 2021 với sứ mệnh không ngừng cập nhập và cải tiến các ứng dụng nhằm mang các sản phẩm được phát triển bởi những con người trong tập thể này đến tay người dùng một cách chỉnh chu và chất lượng nhất
Hiện nay, công ty đang có xu hướng mở rộng quy mô, từ công ty với quy mô vừa và nhỏ trở thành công ty có quy mô lớn; vì vậy đã tuyển thêm nhiều nhân sự mới và mở ra thêm nhiều phòng ban mới Điều này dẫn đến việc số lượng công việc tại công ty ngày càng nhiều hơn với nhiều nhân viên tham gia vào một dự án hơn; gây ra khó khăn trong việc điều chỉnh cũng như nắm bắt tiến độ các công việc đã và đang triển khai Thực tế, việc phân bổ thủ công thông qua tin nhắn (ví dụ: Skype, Discord,…) và quản lý công việc thông qua Excel ngay tại công ty đang dần trở nên không hiệu quả
Từ đó nhằm đáp ứng nhanh nhất và tiện lợi nhất nhu cầu quản lý các đầu việc tại công ty, đề tài: “Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech” được đưa ra để khắc phục các vấn đề nêu trên
1 Mục tiêu và phạm vi đề tài
Hiện nay tại công ty Lutech, việc phân công nhiệm vụ được phân bổ thủ công thông qua tin nhắn (ví dụ: Skype, Discord,…) và quản lý công việc thông qua Excel Chính vì vậy đã gây ra khó khăn trong nắm bắt tiến độ các công việc đã và đang triển khai đề tài “Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech” đặt ra nhằm mục đích giải quyết khó khăn trong vấn đề quản lý các đầu mục công việc, tạo hiệu quả và tiện ích cho công ty trong công việc Các mục tiêu cụ thể sau:
- Quản lý các công việc trong công ty giữa các bên liên quan một cách rõ ràng, minh bạch
- Cho phép mọi người nắm bắt được quy trình và tiến độ của công việc, tránh quên hay bỏ sót công việc
- Tạo sự phối hợp nhịp nhàng, tránh gây lãng phí thời gian và phát sinh các công việc dư thừa
2 Đối tượng nghiên cứu và phạm vi nghiên cứu a Đối tượng nghiên cứu
Trang 17Các đối tượng nghiên cứu chính bao gồm: - Quản lý dự án
- Quản lý nhóm dự án - Nhân viên tham gia dự án
b Phạm vị nghiên cứu
Các đầu mục công việc của nhân viên tại công ty Lutech
3 Phương pháp nghiên cứu và lựa chọn giải pháp công nghệ a Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết- Thu thập thông tin thông qua sách, các tài liệu, trang web hay ứng dụng tương
tự để tìm được các cơ sở lý thuyết liên quan đến vấn đề nghiên cứu b Lựa chọn giải pháp công nghệ
- Ngôn ngữ lập trình Kotlin: Lập trình ứng dụng và các chức năng tương tác- IDE Android Studio: Môi trường phát triển ứng dụng trên Android, phát triển và quản lý các thành phần của ứng dụng
- Cơ sở dữ liệu Firebase: Lưu trữ và quản lý các thông tin về thông tin nhân viên, đầu mục công việc đã và đang triển khai, công việc đã hoặc chưa hoàn thành,…- Công cụ hỗ trợ thiết kế starUML: Thiết kế các bảng cơ sở dữ liệu, các sơ đồ hoạt
động và sơ đồ Use Case - Trình giả lập điện thoại hệ điều hành Android trên laptop, máy tính: LDPlayer 9 4 Cấu trúc đồ án
Mở đầu
Giới thiệu lý do và các mục tiêu mà đề tài cần giải quyết, phạm vi nghiên cứu của đề tài Giới thiệu tóm tắt nội dung sẽ được trình bày trong các chương trình tiếp theo Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục đích khi xây dựng và phát triển đề tài Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công nghệ để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ
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, hệ
Trang 18Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
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 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 Usecase hệ thống
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
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 19CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu về hệ quản trị cơ sở dữ liệu Firebase 1.1.1 Khái quát về hệ quản trị CSDL Firebase
Firebase là một nền tảng do Google cung cấp, nhằm hỗ trợ việc tạo ra các ứng
dụng web, ứng dụng di động với chất lượng cao [2]
Với việc sử dụng Firebase, các lập trình viên hay nhà phát triển có thể tập trung vào việc phát triển ứng dụng mà không cần phải tự thiết kế, triển khai và quản lý Server hay cơ sở dữ liệu của mình, mà chỉ cần sử dụng các API và SDK do Firebase cung cấp để kết nối với các dịch vụ của nó Bằng cách này, có thể tiết kiệm thời
gian, chi phí và công sức cho việc xây dựng Backend [3]
Firebase là một trong những BaaS (Backend as a service), tức là một dịch vụ
cung cấp các giải pháp Backend cho các ứng dụng web và di động [3]
Hình 1.1: Logo của hệ quản trị cơ sở dữ liệu Firebase
1.1.2 Ưu điểm của Firebase:
Firebase giúp tiết kiệm thời gian và chi phí phát triển ứng dụng, bằng cách cung cấp các dịch vụ và công cụ sẵn có và dễ sử dụng
Trang 20Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Firebase cho phép các nhà phát triển tập trung vào việc xây dựng giao diện và tính năng của ứng dụng, mà không cần lo lắng về việc xử lý và lưu trữ dữ liệu ở phía máy chủ
Firebase hỗ trợ nhiều nền tảng khác nhau, như Web, Android, iOS, Unity, C++,
Firebase có khả năng mở rộng tự động theo quy mô của ứng dụng, không cần phải quản lý cơ sở hạ tầng hay máy chủ
Firebase được hưởng lợi từ hệ thống máy chủ mạnh mẽ và an toàn của Google, đảm bảo hiệu suất cao và độ tin cậy cao cho các ứng dụng
Firebase hỗ trợ nhiều ngôn ngữ lập trình và nền tảng khác nhau, cho phép phát triển các ứng dụng đa nền tảng một cách hiệu quả và dễ dàng
Firebase có nhiều tính năng hữu ích cho việc phát triển ứng dụng như xác thực
người dùng, lưu trữ tệp tin, thực hiện kiểm thử phần mềm và gỡ lỗi [3]
Hình 1.2: Ưu điểm của Firebase
1.1.3 Nhược điểm của Firebase:
Firebase có giới hạn về dung lượng lưu trữ và số lượng kết nối trong phiên bản miễn phí Để sử dụng các tính năng nâng cao hoặc quy mô lớn hơn, các nhà phát triển phải trả phí theo mức sử dụng
Trang 21Firebase có thể không đáp ứng được một số yêu cầu đặc biệt hoặc phức tạp của các ứng dụng Ví dụ, Firebase Realtime Database chỉ hỗ trợ cơ sở dữ liệu NoSQL, không hỗ trợ các truy vấn phức tạp hay các thao tác với dữ liệu với nhiều điều kiện liên quan
Firebase có thể gặp khó khăn trong việc tích hợp với một số công nghệ hoặc dịch vụ khác Ví dụ, Firebase không hỗ trợ GraphQL hay Apollo Client, hai công
nghệ phổ biến trong việc xây dựng API hiện đại [3]
1.1.4 Một số dịch vụ nổi bật của Firebase:
1.1.4.1 Firebase Real-time Database:
Dịch vụ Realtime database cho phép người dùng lưu trữ và đồng bộ dữ liệu theo thời gian thực Dịch vụ này được lưu trữ trực tiếp trên iCloud Trong trường hợp thiết bị của người dùng ngoại tuyến thì chúng sẽ sử dụng tới bộ nhớ của thiết bị và tự động đồng bộ lên server khi thiết bị kết nối trực tuyến trở lại [1]
Hình 1.3: Cơ sở dữ liệu thời gian thực Firebase Real-time
1.1.4.2 Firebase Authentication:
Dịch vụ Authentication cung cấp cho ứng dụng của người dùng một số phương pháp xác thực thông qua Email, mật khẩu, số điện thoải, tài khoản Google, tài khoản Facebook… Với tính năng này, người dùng sẽ dễ dàng xây dựng trình đăng nhập mà không cần sử dụng dữ liệu đăng ký riêng [1]
Trang 22Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Hình 1.4: Dịnh vụ Authentication
1.1.4.3 Firebase Cloud Storage: [2]
Là một dịch vụ lưu trữ đám mây của Firebase, giúp người dùng lưu trữ và quản lý các tệp tin như hình ảnh, video, tài liệu, và các loại dữ liệu khác
Hình 1.5: Dịch vụ lưu trữ Storage
1.1.4.4 Firebase Remote Config:
Remote Config có 2 nhiệm vụ cơ bản là:• Cập nhật các ứng dụng một cách nhanh chóng và dễ dàng mà không cần xuất bản bản dựng mới lên app/play store
• Dễ dàng cài đặt phân đoạn hoạt động trong ứng dụng dựa trên yêu cầu thiết bị hoặc người dùng đang sử dụng nó
Trang 23Để làm được điều đó, Firebase sẽ cài đặt các thông số bên máy chủ giúp người dùng cập nhật các dữ liệu ngay lập tức dù là thay đổi bố cục, bảng màu hay một phần cụ thể nào đó trong ứng dụng Điều này hết sức hữu dụng bởi các ứng dụng thôngthường sẽ bị mất hoàn toàn cài đặt nếu người dùng gỡ ứng dụng đi [1]
Hình 1.6: Dịch vụ Firebase Remote Config
Công cụ này còn hỗ trợ việc chia nhóm các bất thường phát sinh, truy xuất tình
trạng có liên quan đến crash ấy, giúp tiết kiệm thời gian xử lý sự cố [2]
Trang 24Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Tuy chỉ mới vừa ra mắt, nhưng Kotlin được cho là một đối đáng gờm và có thể
soán ngôi Java bất cứ lúc nào, đặc biệt là trong lập trình Android [4]
Hình 1.8: Ngôn ngữ lập trình ứng dụng Android Kotlin
Trang 251.2.2 Tính năng của ngôn ngữ lập trình Kotlin:
Việc học lập trình Kotlin sẽ trở nên đơn giản hơn rất nhiều, nếu có kiến thức về Java Mà nếu không, thì quá trình học tập cũng khá đơn giản, bởi lượng kiến thức của ngôn ngữ này rất dễ nắm bắt, đồng thời việc viết mã ứng dụng cũng được thực hiện nhanh chóng hơn
Nhờ có Kotlin mà công việc của các nhà lập trình cải thiện hiệu suất hoạt động rõ rệt, chỉ sử dụng khối lượng mã tối thiểu ít hơn 1/5 so với Java, mà vẫn đảm bảo chất lượng sản phẩm
Kotlin cung cấp chức năng Thư viện Chuẩn có thể giúp các nhà phát triển Kotlin theo nhiều cách, đặc biệt các hàm trong ngôn ngữ này cũng dễ dàng mở rộng để phục vụ tốt hơn cho các công việc trong lập trình
Cung cấp tính năng Lazy Loading, hỗ trợ tải những nội dung cần thiết ban đầu cho ứng dụng và giúp làm giảm khá nhiều thời gian tải và khởi chạy cho chương trình Việc này sẽ mang đến cho người dùng những trải nghiệm tuyệt vời nhất
Hoạt động tốt và hiệu quả hơn với NullPointerException (lỗi này sẽ xuất hiện ngay khi người dùng gán giá trị null đến với một đối tượng nào đó), mang đến nhiều lợi ích sử dụng cho nhà lập trình trong giai đoạn đầu quá trình phát triển
Kotlin là một ngôn ngữ lập trình hiện đại biết cách xử lý các tập hợp bất biến Có sẵn các API với chức năng phong phú sẽ tự động trả về dưới dạng bộ sưu tập và
được đặc trưng bởi chức năng giống nhau [4]
Hình 1.9: Sự tiện lợi của ngôn ngữ Kotlin so với người tiền nhiệm Java
Trang 26Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
1.2.3 Ưu điểm và nhược điểm khi sử dụng ngôn ngữ lập trình Kotlin:
1.2.3.1 Ưu điểm khi sử dụng ngôn ngữ lập trình Kotlin:
Hoạt động với mã nguồn mở, sở hữu cú pháp ngắn gọn và mang lại sự thuận tiện trong quá trình Debug
Các đoạn mã code của Kotlin đơn giản, dễ học và đọc hiểu Hoạt động tương thích gần như 100% với Java, mọi việc thực hiện trong Java đều dễ dàng ứng dụng vào Kotlin
Kotlin là một ngôn ngữ an toàn, sở hữu cơ chế null-safety, có thể giảm thiểu cũng như loại bỏ được hầu hết các nguồn tham chiếu Null
Dễ dàng sử dụng toàn bộ những Framework và thư viện có sẵn trong Java Đặc biệt, mang lại sự thuận tiện khi kết hợp với Maven, Gradle cùng các hệ thống build khác
Kotlin được hỗ trợ ưu tiên trong Android Studio và IDE giúp lập trình viên dễ dàng thực hiện công việc hơn
1.2.3.2 Nhược điểm khi sử dụng ngôn ngữ lập trình Kotlin:
Phần hàm của Kotlin vẫn chưa được cập nhật kiểu Aliases, nên khi bắt buộc làm việc với hàm này các lập trình viên phải viết thủ công, khiến cho phần mã nguồn trở nên dư thừa
Còn đối với Class, nó luôn được mặc định là Class final và khi muốn nó trở thành định dạng Class thông thường, phải thực hiện thêm từ khóa Open
Kotlin không thực hiện tự động ép kiểu với những dữ liệu thuộc dạng nguyên
Cộng đồng hỗ trợ người dùng còn khá hạn chế [4] 1.3 Giới thiệu về môi trường phát triển Android Studio:
1.3.1 Android Studio là gì?
Android Studio là IDE chính thức được sử dụng trong phát triển ứng dụng Android dựa trên IntelliJ IDEA
Trang 27Chức năng chính của Android Studio là cung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu trường
Ngôn ngữ lập trình được sử dụng trong Android Studio là Java và Kotlin, nó sẽ được cài đặt sẵn trên thiết bị của người dùng
Khi sử dụng Android Studio thì người dùng chỉ cần viết, chỉnh sửa và lưu trữ chúng trên các dự án của mình và các tệp nằm trong dự án đó Đồng thời, Android
Studio còn cung cấp quyền truy cập vào Android SDK [5]
1.3.2 Lịch sử hình thành:
Android Studio đã được công bố vào năm 2013 tại hội nghị Google I/O và được phát hành vào năm 2014 sau nhiều phiên bản khác nhau Trước đó, thì các nhà phát triển của Android thường sử dụng các công cụ như Eclipse IDE hoặc một IDE Java chung để hỗ trợ cho nhiều ngôn ngữ lập trình khác
Android Studio giúp cho việc tạo ứng dụng dễ dàng hơn so với các phần mềm chuyên dụng Với người mới, sẽ có rất nhiều thứ phải học và nhiều thông tin có sẵn Thậm chí, chúng còn thông qua nhiều kênh chính thức hoặc có thể có lỗi khiến
người dùng hoang mang [5]
1.3.3 Các tính năng của Android Studio:
1.3.3.1 Chạy ứng dụng tức thì
Công nghệ này tích hợp hỗ trợ các thay đổi được thực hiện trong quá trình phát triển ứng dụng và hỗ trợ người dùng chạy thử ngay lập tức mà không mất thời gian để xây dựng lại APK và cài đặt
Người dùng có thể thấy các thay đổi ngay lập tức khi nó được thực hiện bằng cách khởi chạy URL trên ứng dụng Android, cài đặt các thư viện gốc với ứng
dụng Android Instant hay còn gọi là “New Module Wizard” [6]
Trang 28Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Hình 1.10: New Module Wizard
1.3.3.2 Bộ cục ứng dụng trực quan
Giao diện chỉnh sửa và phát triển xây dựng bố cục một cách nhanh chóng bằng các thao tác kéo thả nhanh chóng Bản xem trước các ứng dụng có thể xem được trên màn hình và thay đổi tương ứng với các kích thước động Điều này sẽ
làm cho quá trình thử nghiệm ứng dụng dễ dàng và toàn diện hơn [6]
1.3.3.3 Trình mô phỏng nhanh
Android Studio có một tính năng mô phỏng hiển thị giống như điện thoại Android để kiểm tra các ứng dụng đang trông như thế nào trong các thiết bị vật lý
Nó mang lại trải nghiệm thời gian thực cho các ứng dụng Android, cho phép người dùng kiểm tra các ứng dụng của mình nhanh hơn trên các thiết bị cấu hình khác nhau như máy tính bảng, điện thoại Đồng thời, Android Studio sẽ hỗ trợ
vòng đời phát triển ứng dụng của mình ngắn và hiệu quả hơn [6]
Trang 29Hình 1.11: Trình mô phỏng điện thoại hệ điều hành Android
1.3.3.4 Trình chỉnh sửa mã code thông minh
Android Studio cung cấp cho người dùng trình chỉnh sửa mã code thông minh và nhanh chóng Các mã gợi ý với các thư viện có sẵn nhằm tăng tốc độ viết mã và độ chính xác Các đoạn mã gợi ý sẽ giúp người dùng hoàn thành trước
và phân tích dữ liệu cũ của người dùng trong quá trình xây dựng ứng dụng [6]
1.3.3.5 Xây dựng ứng dụng cho tất cả thiết bị hệ điều hành Android
Android Studio xây dựng các ứng dụng cho mọi kích thước màn hình, cho các thiết bị đeo và trên cả các thiết bị giả lập với độ phân giải và kích thước màn hình khác nhau Nó cũng có thể giả lập được các loại tính năng khác nhau, mà
phần cứng thực sự chưa có như theo dõi vị trí GPS, cảm ứng đa điểm [6]
1.3.3.6 Kết nối với Firebase
Android Studio giúp mang lại trải nghiệm thời gian thực với phát triển dự án dựa trên IOT với các nâng cấp trong ứng dụng
Kết nối Firebase giúp tạo các bản cập nhật trực tiếp và cung cấp kết nối với cơ sở dữ liệu được cập nhật liên tục Để có được các ứng dụng chất lượng cao, các nhà phát triển sử dụng kết nối Firebase, nó giúp xây dựng cơ sở hạ tầng để
mở rộng xây dựng ứng dụng [6]
1.3.3.7 Xem trước màu sắc, chạy thử
Trang 30Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Android Studio giúp xem trước phần mã XML trong bản xem trước để các nhà phát triển ứng dụng biết có lỗi hay không trước khi khởi chạy ứng dụng Tính năng này cung cấp chức năng mạnh mẽ và các tính năng nâng cao về kéo và thả
hoặc thay đổi kích thước ứng dụng [6]
Hình 1.12: Tệp XML trong Android Studio
1.3.3.8 Kho lưu trữ Maven
Trong Android Studio, có thể thực hiện tích hợp Maven cùng với kho lưu trữ các tính năng tích hợp của nó, bên trong các thư viện hỗ trợ trình quản lý SDK của IDE được sử dụng Đó là một loại kho lưu trữ có một thư mục chứa nhiều
tệp jar khác nhau như dự án jar cùng các plugin [6]
1.4 Trình giả lập Android trên laptop, máy tính LDPLayer 9 1.4.1 LDPLayer 9 là gì?
LDPlayer 9 là trình giả lập Android trên máy tính Windows, hỗ trợ chạy các ứng dụng và game mobile trên máy tính Với sự tích hợp hệ điều hành Android 9, LDPlayer 9 đã tạo nên nền tảng tuyệt vời dành cho người dùng dễ dàng cài đặt ứng dụng và các thể loại game Android trên PC Ngoài ra, LDPlayer 9 còn hỗ trợ vận hành đồng thời game 64-bit và 32-bit, tính tương thích càng thêm xuất sắc
LDPlayer 9 là 1 trong những sản phẩm đáng tự hào nhất trong lịch sử phát triển LDPlayer Trong những năm qua, trình giả lập LDPlayer 3 và LDPlayer 4 đã được cài đặt hơn 300 triệu Điều này chứng tỏ trình giả lập LDPlayer đã được đông đảo
Trang 31Hình 1.13: Trình giả lập di động LDPlaey 9 mạnh mẽ
1.4.2 Ưu điểm của LDPLayer 9
1.4.2.1 Trang bị core Android 9
Core Android 9 mà LDPlayer 9 đã sử dụng không chỉ là phiên bản Android 9 bình thường, mà là bản đã được đội kỹ thuật LDPlayer tối ưu hóa, cho nó có thể vận hành hoàn hảo game mobile cũng như các ứng dụng của hệ điều hành
Android, giảm bớt tình trạng bị lỗi giật, bị văng và không tương thích [7]
Hình 1.14: LDPlayer 9 giả lập di động mang hệ điều hành Android
1.4.2.2 Tốc độ phản hổi cực nhanh
Từ khi ra mắt, những sản phẩm của LDPlayer luôn được người dùng đánh giá cao vì đặc điểm “nhẹ và nhanh”, khác hoàn toàn với những trình giả lập của các đối thủ khác, LDPlayer 9 tiếp tục phát huy thế mạnh này, mang lại tốc độ
Trang 32Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
phản hồi càng nhanh, giảm bớt thời gian tải ứng dụng, đặc biệt chú trọng cải
thiện trải nghiệm của người dùng [7]
1.4.2.3 Mức tiêu hao CPU và bộ nhớ Ram thấp
LDPlayer 9 đã kết hợp thế mạnh tinh hoa từ thời đại LDPlayer 3 và LDPlayer 4 Từ khi ra mắt toàn cầu phiên bản LDPlayer đầu tiên, LDPlayer luôn không ngừng cản thiện trải nghiệm sử dụng, tranh thủ phát huy hiệu năng cực hạn của máy tính, laptop Lần này đã đặc biệt tối ưu hóa LDPlayer 9, cho nó ít chiếm dụng bộ nhớ RAM và CPU, sẵn sàng cung cấp hiệu năng cực hạn nhất cho người
dùng [7]
Hình 1.15: LDPlayer 9 với mức tiêu hao bộ nhớ thấp
1.4.2.4 Tính tương thích được cải thiện
Trình giả lập Android đã thỏa mãn nhu cầu chạy game mobile hay các ứng dụng khác trên PC cho nhiều người dùng, nhưng nhiều hãng trình giả lập khác hay bị lỗi, sẽ gây trải nghiệm tốn kém khi chạy game, ví dụ như mới bấm khởi động game là bị văng ra
Sức mạnh của LDPlayer 9 hơn hẳn 2 người tiền nhiệm của mình là LDPlayer
3 và LDPlayer 4 cộng lại vì đã có sự cải tiến tương thích mạnh mẽ [7]
Trang 33CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Xác định các tác nhân:
- Admin : Quản trị viên hệ thống - Quản lý dự án: Người khởi tạo và thêm các thành viên liên quan vào dự án - Quản lý nhóm dự án: Người tham gia quản lý công việc và các nhân viên
trong dự án theo sự phân công của quản lý dự án
- Nhân viên: Người tham gia vào dự án và thực hiện công việc được chỉ định 2.2 Các yêu cầu chức năng
2.1.1 Admin
- Đăng nhập - Quản lý tài khoản
2.2.1 Quản lý dự án
- Đăng nhập - Xem thông tin cá nhân - Tìm kiếm công việc - Tạo dự án
- Cập nhật dự án - Xem thông tin dự án - Xem thông tin nhiệm vụ - Xem tình trạng công việc của nhân viên
2.2.2 Quản lý nhóm dự án
- Đăng nhập - Xem thông tin cá nhân - Tìm kiếm công việc
Trang 34Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
- Tạo nhiệm vụ - Xem thông tin nhiệm vụ - Tạo công việc
- Xem tình trạng công việc của nhân viên
2.2.3 Nhân viên
- Đăng nhập - Xem thông tin cá nhân - Tìm kiếm công việc - Xem thông tin dự án - Xem thông tin nhiệm vụ - Xem thông tin công việc - Cập nhật công việc
2.3 Yêu cầu chất lượng ứng dụng:
- Giao diện phù hợp với đối tượng sử dụng, đơn giản và hợp lý - Ngôn ngữ Tiếng Việt
- Đảm bảo tính bảo mật cao, an toàn người dùng - Tốc độ xử lý và truy cập cơ sở dữ liệu nhanh
Trang 352.4 Sơ đồ Usecase cho hệ thống
Hình 2.1: Sơ đồ Usecase của hệ thống
2.5 Kịch bản: 2.5.1 Chức năng “Đăng nhập”
Bảng 2.1: Kịch bản cho chức năng “Đăng nhập”
Tên Usecase Đăng nhập
Người dùng muốn đăng nhập để sử dụng các chức năng của ứng
Trang 36Xây dựng ứng dụng quản lý công việc của nhân viên tại công ty Lutech
Tác nhân Admin, quản lý dự án, quản lý nhóm dự án, nhân viên
Đầu vào
- Tài khoản người dùng đã được tạo sẵn - Tài khoản người dùng đã được phân quyền - Thiết bị của người dùng đã được kết nối Interet khi thực hiện đăng nhập
Đầu ra Người dùng đăng nhập vào ứng dụng thành công
Các bước thực hiện
1 Người dùng khởi chạy ứng dụng → Bắt đầu Usecase 2 Ứng dụng hiển thị giao diện đăng nhập
3 Người dùng nhập tài khoản, mật khẩu và nhấn nút "Đăng nhập"
4 Ứng dụng xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng → Usecase dừng lại
Các bước phát sinh
Không
Các trường hợp ngoại lệ
3.a Người dùng nhập thiếu tên tài khoản hoặc mật khẩu và ấn nút “Đăng nhập” → Hệ thống thông báo nhập thiếu thông tin
3.b Người dùng nhập tên đăng nhập không tồn tại → Hệ thống thông báo “Tài khoản không tồn tại”
3.c Người dùng nhập sai mật khẩu → Hệ thống thông báo nhập sai mật khẩu
2.5.2 Chức năng “Tạo dự án mới”
Bảng 2.2: Kịch bản cho chức năng “Tạo dự án mới”
Tên Usecase Tạo dự án mới Mô tả Người dùng muốn thêm một dự án mới
Tác nhân Quản lý dự án
Đầu vào
- Thời gian bắt đầu của dự án - Thời gian kết thúc của dự án - Tên dự án
- Mô tả về dự án (nếu có)
Đầu ra Người dùng tạo mới dự án thành công