Lý do chọn đề tài: Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ thuậtđặc biệt là công nghệ thông tin, với những ứng dụng của công nghệ thông tin vàocác lĩnh vực đã
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
ĐỒ ÁN CƠ SỞ 3
ĐỀ TÀI: XÂY DỰNG APP NHẮC NHỞ UỐNG
NƯỚC
Sinh viên thực hiện : TRƯƠNG HOÀNG TÚ - 19IT5
VÕ NGUYỄN NHẬT TRƯỜNG - 19IT5
Giảng viên dạy : THS TRẦN THU THỦY
Trang 2
Đà nẵng, tháng 6 năm 2021
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
ĐỒ ÁN CƠ SỞ 3
ĐỀ TÀI: XÂY DỰNG APP NHẮC NHỞ UỐNG
NƯỚC
Sinh viên thực hiện : TRƯƠNG HOÀNG TÚ - 19IT5
VÕ NGUYỄN NHẬT TRƯỜNG - 19IT5
Giảng viên dạy : THS TRẦN THU THỦY
Đà Nẵng, tháng 6 năm 2021
Trang 4MỞ ĐẦU
1 Lý do chọn đề tài:
Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ thuậtđặc biệt là công nghệ thông tin, với những ứng dụng của công nghệ thông tin vàocác lĩnh vực đã đóng góp phần to lớn cho sự nghiệp phát triển của con người.Nên việc các thiết bị điện tử xuất hiện trong cuộc sống là một điều rất bìnhthường và cần thiết, hiện nay ai cũng dễ dàng có cho mình một chiếc điện thoạithông minh với giá cả rất là phải chăng Với những kiến thức đã học, chúng emquyết định lên ý tưởng kết hợp việc học vào thực tiễn, tạo ra một ứng dựng nhắcnhở mọi người uống nước đúng giờ, nó giúp cho những người quá bận tâm vàocông việc, hay những người quên hẳn đi việc uống nước, đó là một vấn đề hếtsức nghiêm trọng vì nước là thứ không thể thiếu đối với cơ thể con người, chonên ứng dụng này sẽ lên lịch, và nhắc nhở cho mọi người việc uống nước đúnggiờ, điều độ, giúp mọi người vừa có thể làm việc, vừa có thể ghi nhớ thời giantiếp nạp năng lượng cần thiết cho cơ thể đúng lúc
Từ vốn kiến thức có được trong quá trình học tập và thông qua tham khảomột số trang về ứng dụng lên lịch, nhắc nhở cùng một số trang khác Nhómchúng em đã thực hiện đề tài: “Xây dựng ứng dụng nhắc nhở uống nước”
2 Mục đích nghiên cứu:
Ứng dụng sau khi xây dựng xong sẽ đáp ứng được các yêu cầu cơ bản sau:
Giúp cho khách hàng: Lên lịch cho việc uống nước đúng giờ của mình,giúp tiết kiệm thời gian, bảo vệ và nâng cao sức khỏe
Giúp cho quản trị: Có thêm kinh nghiệm về việc xây dựng ứng dụng,giúp cho nhiều người tiết kiệm thời gian, kiếm thêm nguồn thu nhập từviệc phát triễn ứng dụng
3 Đối tượng ứng dụng và phạm vi ứng dụng:
Đối tượng ứng dụng của đề tài:
Mọi người tiêu dùng trên nhiều nơi có nhu cầu về việc tiết kiệm thờigian cho bản thân, nhưng vẫn có thể đáp ứng được nhu cầu sức khỏe.Phạm vi nghiên cứu của đề tài:
Tìm hiểu kỹ thuật, cách thức hoạt động và các đối tượng trong môn họclập trình Android
Hiểu được cách lưu trữ dữ liệu của hệ quản trị cơ sở dữ liệu SQLite
Sử dụng ngôn ngữ Java và hệ quản trị SQLite để xây dựng ứng dụng
4 Ý nghĩa khoa học thực tiễn của đề tài:
Trong thời công nghệ thông tin đang ngày càng phát triển việc ứng dụng vàohoạt động “Xây dựng ứng dụng nhắc nhở uống nước” đã mang lại nhiều ý nghĩasau:
Đỡ tốn thời gian cho người tiêu dùng cũng như nhà quản lý trong việclên lịch trình hợp lý cho việc bảo vệ sức khỏe của mình
Giúp nhà quản lý dễ dàng hơn trong việc quản lý sản phẩm, và đưa sảnphẩm đến với dung dùng
Trang 5LỜI CẢM ƠN
Trước hết, xin gởi lời cảm ơn chân thành đến cô giáo Trần Thu Thủy đã
tận tình chỉ dẫn, góp ý để báo cáo của nhóm tránh nhiều sai sót và hoàn thiệnhơn Đề án này được được thực hiện bởi nhóm gồm 2 thành viên thuộc sinh viêncủa trường Đại học Công nghệ thông tin và Truyền thông Việt – Hàn Đà Nẵng.Xin gởi lời cảm ơn đến các tác giả bài viết, các trang web đã góp phần cung cấpcho chúng tôi các tiện ích và thông tin cần thiết để thực hiện đồ án
Cuối cùng, mặc dù nhóm đã rất cố gắng nhưng chắc chắn sẽ còn rất nhiềusai sót mà chưa thể khắc phục hết được vì vậy rất mong thầy đóng góp ý kiến,phê bình để nhóm rút thêm kinh nghiệm cho những lần sau
Xin chân thành cảm ơn!
Trang 6NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Ký tên
Trang 7MỤC LỤC
Trang
MỞ ĐẦU 1
MỤC LỤC 6
DANH MỤC CÁC BẢNG 8
DANH MỤC CÁC HÌNH 9
Chương 1 Giới thiệu 10
1.1 Tổng quan 10
1.2 Phương pháp, kết quả 10
1.2.1 Nhiệm vụ thiết kế 10
1.3 Giới thiệu về kiến trúc và công nghệ chính được sử dụng 10
1.3.1 Java 11
1.3.2 Android Studio 11
1.3.3 SQLite 11
1.3.4 Hệ quản trị cơ sở dữ liệu Firebase 12
1.3.5 Android runtime 12
1.3.6 Máy ảo genymotion 12
1.4 Cấu trúc đồ án 12
Chương 2 Phân tích thiết kế hệ thống 13
2.1 Phân tích yêu cầu hệ thống 13
2.1.1 Các yêu cầu chức năng 13
2.1.2 Các yêu cầu phi chức năng 13
2.2 Bảng chú giải 13
2.2.1 Giới thiệu 13
2.2.2 Các định nghĩa 13
2.3 Đặc tả bổ sung 14
2.3.1 Mục tiêu 14
2.3.2 Phạm vi 14
2.3.3 Tài liệu tham khảo 14
2.3.4 Chức năng 14
2.3.5 Tính khả dụng 14
2.3.6 Tính ổn định 14
2.3.7 Hiệu suất 14
2.3.8 Sự hỗ trợ 14
2.3.9 Tính bảo mật 14
2.3.10 Các ràng buộc thiết kế 14
2.4 Các tác nhân của hệ thống 14
2.5 Mô tả các chức năng của các danh mục 15
2.5.1 Chức năng theo dõi lượng nước hằng ngày: 16
2.5.2 Nhập thông tin: 16
2.5.3 Trang dashboard: 17
2.5.4 Trang cài đặt: 17
2.5.5 Trang thiết lập lại: 18
Chương 3 Triển khai xây dựng website 19
3.1 Cài đặt ứng dụng trên máy tính 19
3.1.1 Cài đặt phần mềm Android Studio 19
3.2 Thiết kế giao diện website 25
3.2.1 Giao diện người dùng 25
Chương 4 Kết luận và Hướng phát triển 27
4.1 Kết luận 27
Trang 84.2 Hướng phát triển 284.2.1 Để tài có thể được mở rộng và phát triển theo các hướng sau: 284.2.2 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động 284.2.3 Đưa vào triển khai ứng dụng trên thực tế 28DANH MỤC TÀI LIỆU THAM KHẢO 29
Trang 9DANH MỤC CÁC BẢNG
Bảng 2 1 - Danh sách các tác nhân của hệ thống 15
Bảng 2 2 – Theo dõi lượng nước hằng ngày 16
Bảng 2 3 – Nhập thông tin 16
Bảng 2 4 – Dashboard 17
Bảng 2 5 – Cài đặt 17
Bảng 2 6 – Thiết lập lại 18
Trang 10DANH MỤC CÁC HÌNH
Hình 3 1 – Kết quả sau khi download Android Studio 19
Hình 3 2 - Giao diện thiết lập cấu hình 20
Hình 3 3 – Giao diện thiết lập cấu hình 20
Hình 3 4 – Giao diện thiết lập cấu hình 21
Hình 3 5 – Chọn thư mục cài đặt 21
Hình 3 6 – Tải các thư mục 22
Hình 3 7 – Giao diện thông báo khi tải xong 22
Hình 3 8 – Bắt đầu chạy Android Studio 23
Hình 3 9 – Giao diện thiết lập cấu hình 23
Hình 3 10 – Lựa chọn theme 24
Hình 3 11 - Giao diện sao khi cài đặt tất cả hoàn tất 24
Hình 3 12 – Giao diện nhắc nhở uống nước đúng thời gian 25
Hình 3 13 – Giao diện trang nhập thông tin người dùng 25
Hình 3 14 – Giao diện trang cài đặt 26
Hình 3 15 – Giao diện trang thiết lập lại 26
Trang 11Chương 1 Giới thiệu
1.1 Tổng quan
Với sự phát triển của công nghệ thông tin, việc mỗi người có cho mình mộtchiếc điện thoại thông minh đã là việc rất dễ dàng, hiện nay rất nhiều ngườikhông chú ý và quan tâm đến sức khỏe của bản thân, với việc thường ngày chúng
ta vẫn làm như uống nước, mọi người thấy đây là một việc rất là bình thường vàkhông quan trọng, đây là một suy nghĩ rất là sai, việc bổ sung nước cho cơ thể rất
là cần thiết đối với cơ thể con người ( hơn 70% cơ thể con người là nước ), chúng
em nhận thấy sự cần thiết của việc bổ sung nước cho cơ thể nên đã quyết định tạo
ra ứng dụng nhắc nhở uống nước giúp con người giải quyết vấn đề bổ sung nướccho bản thân
Ứng dụng nhắc nhở uống giúp người dùng uống nước đúng giờ và đúngcách, giúp giữ dáng và cấp nước mỗi ngày, cải thiện chế độ dinh dưỡng Ứngdụng theo dõi lượng nước nạp vào cơ thể và đưa ra giải pháp tốt nhất cho ngườidùng, ứng dụng sẽ nhắc bạn khi quên uống nước, bạn sẽ không bao giờ bị khát vàmất nước Ứng dụng có nhiều sự lựa chọn về loại nước, biểu đồ thống kê, cóthêm nhiều phần thưởng cho sự nỗ lực của bạn, thông báo nhanh gọn, lời nhắcthông minh, giao diện dễ sử dụng, đây sẽ là một ứng dụng rất đáng được cài đặtcho chiếc điện thoại thông minh của nhiều người
1.2 Phương pháp, kết quả
1.2.1 Nhiệm vụ thiết kế
Giao diện người dùng của một ứng dụng rất quan trọng, nó trực tiếp đốimặt với người dùng Tuy nhiên để nâng cao trải nghiệm của nhiều người dùngcần phải có nhiều chức năng tương tác giữa người dùng và quản trị viên Vì vậy,trong đồ án này, thiết kế giao diện chiếm một phần lớn và liên quan đến nhiềukhía cạnh của công nghệ
Giao diện người dùng của trang sử dụng công nghệ Java để hỗ trợ hoạtđộng của giao diện người dùng
Cấu trúc ứng dụng được thiết kế để người dùng có thể tạo cho mình mộtlịch để bổ sung lượng nước đủ và đúng, nhiều tính năng có thể lựa chọn, nhiềuloại thức uống kèm theo những lời khuyên bổ sung, cung cấp đầy đủ các biểu đồ
để hiển thị lượng nước uống một ngày, một tuần và một tháng gần đây, từ đó cóthể điều chỉnh lượng nước nạp vào phù hợp Kèm theo nhiều phần thưởng nhỏcho sự cố gắng của bạn trong việc bảo vệ sức khỏe của bản thân
1.3 Giới thiệu về kiến trúc và công nghệ chính được sử dụng
Môi trường phát triển đồ án này là Window 10, ngôn ngữ phát triển là Java,
cơ sở dữ liệu sử dụng mã nguồn Sqlite Kèm theo đó là ứng dụng hỗ trợ AndroidStudio – Tools code hỗ trợ nhiều chức năng dễ sử dụng cùng với Android framework, Android runtime giúp cho chúng ta dễ dàng tạo ra một ứng dụng mobie củariêng bản thân
Hầu như mọi app di động hiện nay đều được lập trình hỗ trợ bởi ứng dụngAndroid Studio Là một sinh viên năm hai, chúng em rất tò mò về việc sử dụngnhiều loại công nghệ như vậy Chúng em hy vọng sẽ học hỏi được nhiều điều từquá trình phát triển đồ án này
Trang 121.3.1 Java
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp(class).Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mãnguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế đểbiên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi(runtime environment) chạy
Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướngđối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết mộtchương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Nhưng vềlập trình hướng đối tượng thì Java phức tạp hơn
Trong Java, hiện tượng rò rỉ bộ nhớ hầu như không xảy ra do bộ nhớ đượcquản lý bởi Java Virtual Machine (JVM) bằng cách tự động "dọn dẹp rác" Ngườilập trình không phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++ Tuynhiên khi sử dụng những tài nguyên mạng, file IO, database (nằm ngoài kiểmsoát của JVM) mà người lập trình không đóng (close) các streams thì rò rỉ dữ liệuvẫn có thể xảy ra
Java được tạo ra với tiêu chí "Viết một lần, thực thi khắp nơi" ("WriteOnce, Run Anywhere" Chương trình phần mềm viết bằng Java có thể chạy trênmọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điềukiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó Môi trường thực thi củaSun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD &Windows Ngoài ra, một số công ty, tổ chức cũng như cá nhân khác cũng pháttriển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM,HP Trong đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux
1.3.2 Android Studio
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhaudùng để phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android nhưcác loại điện thoại smartphone, các tablet Android Studio được đóng gói vớimột bộ code editor, debugger, các công cụ performance tool và một hệ thốngbuild/deploy (trong đó có trình giả lập simulator để giả lập môi trường của thiết
bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanhchóng phát triển các ứng dụng từ đơn giản tới phức tạp
Thư viện phần mềm, công cụ lập trình tiện dụng, nhiều hơn để giúp bạnxây dựng, kiểm thử Cũng như gỡ lỗi các ứng dụng Android Android Studio hỗtrợ một loạt các giả lập để xem trước ứng dụng, vì vậy ngay cả khi bạn không cóthiết bị thử nghiệm, bạn vẫn có thể chắc chắn rằng mọi thứ đều hoạt động trơntru Bên cạnh đó, loạt công cụ như lời khuyên tối ưu hóa, đồ thị doanh số bánhàng, và số liệu lấy từ phân tích sẽ giúp các nhà phát triển quản lý ứng dụng đangbán của mình và tìm ra hướng đi cụ thể với từng thiết bị Android.Android Studio
hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính thức củaGoogle để phát triển ứng dụng Android gốc để thay thế cho AndroidDevelopment Tools (ADT) dựa trên Eclipse
1.3.3 SQLite
SQLite là một bộ thư viện dùng trong lập trình để hiện thực một SQLDatabase Engine có khả năng tự tổ chức quản lý dữ liệu, không cần server, khôngcần cấu hình mà vẫn hỗ trợ đầy đủ các tính năng quản lý giao tác SQLite hiệnđang là SQL Database Engine mã nguồn mở theo mô hình dữ liệu quan hệ đangđược sử dụng nhiều nhất trên thế giới do tính cơ động cao, dễ sử dụng, gọn nhẹ,hiệu quả và tin cậy Trong bài đầu tiên giới thiệu về SQLite chúng ta sẽ cùng tìm
Trang 13hiểu 1 số đặc điểm nổi bật của SQLite, tính ứng dụng và một số công cụ làm việcvới CSDL nhúng đặc biệt này.
1.3.4 Hệ quản trị cơ sở dữ liệu Firebase
Firebase là một nền tảng để phát triển ứng dụng di động và trang web, baogồm các API đơn giản và mạnh mẽ mà không cần backend hay server.Firebase còn giúp các lập trình viên rút ngắn thời gian triển khai và mởrộng quy mô của ứng dụng mà họ đang phát triển
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây –cloud Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google.Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơngiản hóa các thao tác với cơ sở dữ liệu Cụ thể là những giao diện lập trìnhứng dụng API đơn giản Mục đích nhằm tăng số lượng người dùng và thulại nhiều lợi nhuận hơn
Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt Firebase hỗ trợ cả hainền tảng Android và IOS Vì vậy nhiều lập trình viên chọn Firebase làmnền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trêntoàn thế giới
1.3.5 Android runtime
Android runtime là tầng cùng với lớp thư viện, Android runtime cung cấpmột tập các thư viện cốt lỗi để cho phép các lập trình viên phát triển viếtứng dụng bằng việc sử dụng ngôn ngữ lập trình Java Android Runtimebao gốm máy ảo Dalvik(ở các version < 4.4, hiện tài là phiên bản máy ảoART được cho là mạnh mẽ hơn trong việc xử lý biên dịch) Là cái để điềukhiển mọi hoạt động của ứng dụng Android chạy trên nó(máy ảo Dalvik sẽbiên dịch ứng dụng để nó có thể chạy(thực thi) được , tương tự như cácứng dụng được biên dịch trên máy ảo Java vậy) Ngoài ra máy ảo còn giúptối ưu năng lượng pin cũng như CPU của thiết bị Android
1.3.6 Máy ảo genymotion
Genymotion là một môi trường ảo cho phép chúng ta mô phỏng điện thoại trên máy tính Bạn có thể tạo điện thoại và chạy các ứng dụng thông qua
nó như thể bạn đang chơi chúng trên thiết bị di động Nó được sử dụng bởicác nhà phát triển để kiểm tra sản phẩm của họ Hệ thống bao gồm công nghệ đám mây cho phép bạn kiểm tra các trang web và làm việc cùng với những người
1.4 Cấu trúc đồ án
Phần này trình bày cấu trúc của đồ án:
Chương 2: Phân tích thiết kế hệ thống Bao gồm các tài liệu liên quan
đến quá trình phân tích hệ thống như: phân tích các yêu cầu chức năng và phi chức năng, các mô hình use case và đặt tả use case, các mô hình lớp và lưu đồ hoạt động
Chương 3: Triển khai xây dựng ứng dụng Bao gồm các tài liệu liên quan
đến quá trình thiết kế hệ thống như: cài đặt môi trường và cơ sở dữ liệu, thiết kế giao diện
Chương 4: Kết luận và hướng phát triển Trình bày tóm tắt các kết quả
đạt được và đề xuất các hướng mở rộng, phát triển trong tương lai
Trang 14Chương 2 Phân tích thiết kế hệ thống
2.1 Phân tích yêu cầu hệ thống
2.1.1 Các yêu cầu chức năng
Yêu cầu chức năng nghiệp vụ:
Quản lý lịch: thêm, sửa, xóa
Quản lý tài khoản: thêm, xóa
Yêu cầu chức năng hệ thống:
Người dùng có thể tự tạo ra cho mình một lịch trình phù hợp với bản thân
2.1.2 Các yêu cầu phi chức năng
Nhằm lợi ích của các đối tượng người dùng:
Tính tiện dụng: Giao diện thân thiện, dễ sử dụng đối với nhiều lứatuổi
Tính hiệu quả: Đảm bảo việc vận hành ứng dụng mượt mà, không
Các tham số của hệ thống được thiết kế động, dễ điều chỉnh
Tính dùng lại của code
Có thể tạo ra nguồn thu nhập
2.2 Bảng chú giải
2.2.1 Giới thiệu
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù tronglĩnh vực của bài toán, giải thích các từ ngữ có thể không quen thuộc đối v ớingười đọc trong các mô tả use case hoặc các tài liệu khác của đề tài Thường thìtài liệu này có thể được dùng như một từ điển dữ liệu không chính thức, ghi lạicác định nghĩa dữ liệu để các mô tả use case và các tài liệu khác có thể tập trungvào những gì hệ thống phải thực hiện
2.2.2 Các định nghĩa
Bảng chú giải này bao gồm các định nghĩa cho các thuật ngữ được sử dụngtrong mô hình use case và trong các tài liệu khác của hệ thống ứng dụng “ nhắcnhở uống nước “ :
Admin (Quản trị viên): Admin là người quản trị hệ thống ứng dụng,chịu trách nhiệm quản lý tất cả các thông tin người dùng thuộc các đốitượng khác nhau
Trang 15 Users (Người dùng): Người dùng là đối tượng phục vụ chủ yếu của hệthống Người dùng có nhu cầu sử dụng các dịch vụ như đăng ký tàikhoản, sử dụng dịch vụ, kết nối với những người dùng khác, có thể tíchđiểm phẩn thưởng của mình.
2.3 Đặc tả bổ sung
2.3.1 Mục tiêu
Mục tiêu của tài liệu này là để định nghĩa các yêu cầu của Hệ thống ứngdụng ” nhắc nhở uống nước “ Đặc tả bổ sung này liệt kê các yêu cầu chưa đượcthể hiện trong các use case Đặc tả bổ sung cùng với các use case trong mô hìnhuse case thể hiện đầy đủ các yêu cầu trong hệ thống
Hỗ trợ nhiều người dùng làm việc đồng thời
Hỗ trợ người dùng trong việc bảo vệ sức khỏe
Tạo một lịch trình hợp lý cho việc bổ sung nhưng dinh dưỡng cần thiết cho
Vai trò của từng đối tượng phải được thể hiện rõ ràng
Bảo mật thông tin của người dùng
Các thông tin chung của mỗi đối tượng do đối tượng đó quản lý
2.3.10 Các ràng buộc thiết kế
Hệ thống phải hỗ trợ tốt trên hầu hết các hệ điều hành di động hiện nay
2.4 Các tác nhân của hệ thống