BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ THƠNG TIN
XÂY DỰNG ỨNG DỤNG
TÌM KIẾM HÀNG HỐ / CỬA HÀNG
GVHD:NGUYỄN TRẦN THI VĂN
SVTT: TRẦN MINH
MSSV:15110249
SKL 0 0 5 7 3 7
Tp. Hồ Chí Minh, năm 2019
do an
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
––––––––––––
TRẦN MINH – 15110249
Đề tài:
XÂY DỰNG ỨNG DỤNG
TÌM KIẾM HÀNG HỐ / CỬA HÀNG
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN TRẦN THI VĂN
Khóa 2015 – 2019
do an
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
––––––––––––
TRẦN MINH – 15110249
Đề tài:
XÂY DỰNG ỨNG DỤNG
TÌM KIẾM HÀNG HỐ / CỬA HÀNG
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN TRẦN THI VĂN
Khóa 2015 – 2019
do an
ĐH SƯ PHẠM KỸ THUẬT TP. HCM
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CNTT
Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1: Trần Minh
MSSV 1: 15110249
Họ và tên Sinh viên 2: ................................................ MSSV 2: ................
Ngành: Công nghệ Thông tin
Tên đề tài: Xây dựng ứng dụng tìm kiếm hàng hóa / cửa hàng
Họ và tên Giáo viên hướng dẫn: ThS. Nguyễn Trần Thi Văn
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
2. Ưu điểm:
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
3. Khuyết điểm:
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
4. Đề nghị cho bảo vệ hay không ?
5. Đánh giá loại :
6. Điểm :
Tp. Hồ Chí Minh, ngày .… tháng .… năm 2019
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
do an
ĐH SƯ PHẠM KỸ THUẬT TP. HCM
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CNTT
Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Trần Minh
MSSV 1: 15110249
Họ và tên Sinh viên 2: ................................................ MSSV 2: ................
Ngành: Công nghệ Thông tin
Tên đề tài: Xây dựng ứng dụng tìm kiếm hàng hóa / cửa hàng
Họ và tên Giáo viên phản biện: ThS. Mai Tuấn Khôi
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
2. Ưu điểm:
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
3. Khuyết điểm:
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
4. Đề nghị cho bảo vệ hay không ?
5. Đánh giá loại :
6. Điểm :
Tp. Hồ Chí Minh, ngày .… tháng .… năm 2019
Giáo viên phản biện
(Ký & ghi rõ họ tên)
do an
LỜI CẢM ƠN
Nhóm chúng em xin chân thành cảm ơn Thầy đã tận tình giảng dạy, chỉ dẫn, góp
ý và giúp đỡ nhóm em trong suốt q trình học tập, nghiên cứu và làm đề tài. Những
kiến thức mà thầy truyền dạy thực sự giúp chúng em rất nhiều, được hiểu biết thêm về
quy trình xây dựng những phần mềm ứng dụng trong cuộc sống, cách thức xây dựng,
tìm hiểu lý thuyết để áp dụng vào nó.
Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận
tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học
vừa qua.
Chúng em xin gửi lòng biết ơn sâu sắc đến ba, mẹ, các anh chị và bạn bè đã ủng
hộ, giúp đỡ và động viên chúng em trong những lúc khó khăn cũng như trong suốt thời
gian học tập và nghiên cứu.
Mặc dù chúng em đã cố gắng hoàn thành đề tài trong phạm vi và khả năng cho
phép, nhưng chắc chắn sẽ khơng tránh khỏi những thiếu sót, rất mong nhận được sự
cảm thơng và tận tình chỉ bảo của q Thầy Cơ và các bạn.
Nhóm em xin chân thành cám ơn!
Nhóm sinh viên thực hiện
Trần Minh
i
do an
ĐH SƯ PHẠM KỸ THUẬT TP. HCM
KHOA CNTT
ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP
Họ và tên Sinh viên 1: Trần Minh
MSSV 1: 15110249
Họ và tên Sinh viên 2:
MSSV 2:
Thời gian làm khóa luận: từ 3/2019 đến 6/2019
Chun ngành: Cơng nghệ phần mềm
Tên khóa luận: Xây dựng ứng dụng tìm kiếm hàng hóa / cửa hàng
GV hướng dẫn: ThS. Nguyễn Trần Thi Văn
Nhiệm vụ của Khóa luận tốt nghiệp
1. Lý thuyết
Tìm hiểu nền tảng Firebase, Google Map API.
2. Thực hành:
Xây dựng ứng dụng tìm kiếm hàng hố / cửa hàng.
Ứng dụng Cloud Firestore, Storage, Firestore làm máy chủ lưu trữ dữ liệu cho
ứng dụng.
Cải thiện giao diện ứng dụng.
Cải thiện dữ liệu cho ứng dụng.
Xây dựng tính năng thêm cửa hàng, lưu trữ cửa hàng, tìm kiếm hàng hóa /
cửa hàng với các tùy chọn khác nhau.
Đề cương viết Khóa luận tốt nghiệp:
Phần MỞ ĐẦU
1.1.
Tính cấp thiết của đề tài
1.2.
Mục đích của đề tài
1.3.
Cách tiếp cận và phương pháp nghiên cứu
- Đối tượng nghiên cứu
- Phạm vi nghiên cứu
1.4.
Phân tích những cơng trình có liên quan
1.5.
Kết quả dự kiến đạt được
Phần NỘI DUNG
Chương 1: Cơ sở lý thuyết
1.1.
Tìm hiểu về Google Map Api
ii
do an
1.2.
Tìm hiểu về nền tảng Firebase
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
2.1.
Khảo sát hiện trạng
2.2.
Xác định u cầu
2.3.
Mơ tả hoạt động một số chức năng chính
Chương 3: Phân tích và mơ hình hố u cầu
3.1.
Nhận diện tác nhân và chức năng trong sơ đồ use case
3.2.
Sơ đồ Use case
3.3.
Đặc tả Use case
Chương 4: Thiết kế ứng dụng
4.1.
Thiết kế cơ sở dữ liệu
4.2.
Thiết kế giao diện
4.3.
Thiết kế xử lý
Chương 5: Cài đặt
5.1
Đặc tả hệ thống
5.2
Cấu trúc ứng dụng
5.3
Các lớp trong ứng dụng
5.4
Các thuật toán xử lý trong ứng dụng
Chương 6: Kiểm thử và so sánh
6.1
Kế hoạch kiểm thử
6.2
So sánh sản phẩm với các ứng dụng đã khảo sát
Phần KẾT LUẬN
1.
Kết quả đạt được
2.
Những đóng góp mới và những đề xuất mới
3.
Ưu nhược điểm
4.
Hướng phát triển
Danh mục tài liệu tham khảo
iii
do an
KẾ HOẠCH THỰC HIỆN
STT
Nhiệm vụ
Ngày
(Công việc dự kiến)
1
17/3 – 30/3 Chỉnh sửa, xây dựng yêu cầu của ứng dụng
2
1/4 – 14/4
Ghi chú
Xây dựng, phát thảo cải tiến giao diện ứng dụng
Tìm hiểu tối ưu lưu trữ database local trên thiết bị
3
15/4 – 28/4 Xây dựng database local để lưu trữ những thứ cần thiết
Tìm hiểu Room Persistence Library
4
29/4 – 19/5 Xây dựng tính năng thêm cửa hàng từ phía người dùng
5
20/5 – 02/6
6
10/6 – 09/6 Hồn thành các tính năng của ứng dụng theo yêu cầu
7
10/6 – 23/6 Kiểm thử chương trình, chỉnh sửa, hồn thiện ứng dụng
8
24/6
Tìm hiểu và ứng dụng Places API
Xây dựng các tính năng nhỏ của ứng dụng
Kiểm tra lại tồn bộ chương trình và báo cáo
Trao đổi với GVHD về báo cáo và chương trình
Tp. Hồ Chí Minh, ngày .… tháng .… năm 2019
Ý kiến của giáo viên hướng dẫn
Người viết đề cương
(Ký và ghi rõ họ tên)
(Ký và ghi rõ họ tên)
iv
do an
MỤC LỤC
PHẦN MỞ ĐẦU ......................................................................................................... 1
1. Tính cấp thiết của đề tài ..................................................................................... 1
2. Mục tiêu của đề tài ............................................................................................. 1
3. Cách tiếp cận và phương pháp nghiên cứu ......................................................... 2
4. Kết quả dự kiến đạt được ................................................................................... 2
PHẦN NỘI DUNG ...................................................................................................... 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ............................................................................. 4
1.1.
Tìm hiểu về Google map API[2] ...................................................................... 4
1.1.1.
Tổng quan về Google Maps SDK trong Android ...................................... 4
1.1.2.
Tạo Map................................................................................................... 4
1.1.3.
Map Padding ............................................................................................ 5
1.1.4.
Businesses và Points of Interest (POIs) .................................................... 6
1.1.5.
Tương tác với Map ................................................................................... 6
1.1.6.
Markers .................................................................................................... 7
1.1.7.
Camera và View ....................................................................................... 8
1.2.
Tìm hiểu về nền tảng Firebase ........................................................................ 9
1.2.1.
Tổng quan về Firebase[1] .......................................................................... 9
1.2.2.
Các dịch vụ Firebase cung cấp ............................................................... 10
1.2.3.
Tổng quan về Cloud Firestore ................................................................ 13
1.2.4.
Mơ hình dữ liệu...................................................................................... 14
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU .................... 16
2.1.
Khảo sát hiện trạng ....................................................................................... 16
2.1.1.
Hiện trạng .............................................................................................. 16
2.1.2.
Phân tích những cơng trình có liên quan ................................................. 16
2.1.3.
u cầu .................................................................................................. 20
2.2.
Xác định yêu cầu .......................................................................................... 21
v
do an
2.2.1.
Bảng yêu cầu chức năng nghiệp vụ ........................................................ 21
2.2.2.
Bảng yêu cầu hệ thống ........................................................................... 21
2.2.3.
Bảng yêu cầu chất lượng (phi chức năng) ............................................... 22
2.3.
Mô tả hoạt động một số chức năng chính ...................................................... 22
CHƯƠNG 3: PHÂN TÍCH VÀ MƠ HÌNH HOÁ YÊU CẦU .................................... 23
3.1.
Nhận diện tác nhân và chức năng trong use case ........................................... 23
3.2.
Sơ đồ use case .............................................................................................. 24
3.3.
Đặc tả use case ............................................................................................. 24
CHƯƠNG 4: THIẾT KẾ ỨNG DỤNG...................................................................... 29
4.1.
Thiết kế cơ sở dữ liệu ................................................................................... 29
4.1.1.
Sơ đồ cơ sở dữ liệu tổng quát ................................................................. 29
4.1.2.
Chi tiết các collection trong cơ sở dữ liệu............................................... 29
4.2.
Thiết kế giao diện ......................................................................................... 32
4.2.1.
Danh sách các màn hình và sơ đồ chuyển đổi ......................................... 32
4.2.2.
Mơ tả chi tiết các màn hình .................................................................... 32
4.3.
Thiết kế xử lý ............................................................................................... 53
4.3.1.
Lược đồ tuần tự của hệ thống ................................................................. 53
CHƯƠNG 5: CÀI ĐẶT ............................................................................................. 57
5.1.
Đặc tả hệ thống ............................................................................................. 57
5.1.1.
5.2.
Sơ lược hệ điều hành Android ................................................................ 57
Cấu trúc ứng dụng ........................................................................................ 58
5.2.1.
Phần Java ............................................................................................... 58
5.2.2.
Phần thư viện ......................................................................................... 59
5.3.
Các lớp trong ứng dụng ................................................................................ 59
5.3.1.
Module lấy dữ liệu cửa hàng .................................................................. 59
5.3.2.
Module lấy dữ liệu hàng hóa .................................................................. 59
vi
do an
5.3.3.
Module lấy dữ liệu trong giao diện bản đồ ............................................. 60
5.3.4.
Module thêm cửa hàng ........................................................................... 60
5.4.
Các thuật toán xử lý trong ứng dụng ............................................................. 61
5.4.1.
Thuật toán GeoHash[5]............................................................................ 61
CHƯƠNG 6: KIỂM THỬ VÀ SO SÁNH .................................................................. 64
6.1.
Kế hoạch kiểm thử ........................................................................................ 64
6.2.
So sánh sản phẩm với các ứng dụng đã khảo sát ........................................... 68
6.2.1.
Ứng dụng Foody trên di động................................................................. 68
6.2.2.
Ứng dụng Map.me trên di động.............................................................. 68
PHẦN KẾT LUẬN.................................................................................................... 69
1. Kết quả đạt được .............................................................................................. 69
2. Những đóng góp mới và những đề xuất mới .................................................... 69
3. Ưu nhược điểm ................................................................................................ 70
3.1.
Ưu điểm .................................................................................................... 70
3.2.
Nhược điểm............................................................................................... 70
4. Hướng phát triển .............................................................................................. 70
DANH MỤC TÀI LIỆU THAM KHẢO .................................................................... 71
vii
do an
DANH MỤC CÁC HÌNH
Hình 1.1 Giao diện GoogleMap trên ứng dụng............................................................. 4
Hình 1.2 Ba loại map lần lượt Normal, Hybrid, Terrian ............................................... 5
Hình 1.3 Ví dụ về Map Padding ................................................................................... 6
Hình 1.4 Nút thu phóng trong Google Map .................................................................. 6
Hình 1.5 Các nút công cụ khác trên Google Map ......................................................... 6
Hình 1.6 Một markers trong Android ........................................................................... 7
Hình 1.7 Một marker được xoay 45 độ trong Google Map ........................................... 8
Hình 1.8 Camera trong Google Map ............................................................................ 8
Hình 1.9 Góc thu hình mặc định của camera (1) trỏ đến bản đồ (2).............................. 9
Hình 1.10 Góc thu hình lệnh 45 độ so với phương thẳng đứng trỏ đến bản đồ (2) ........ 9
Hình 1.11 Các mức độ zoom lần lượt 5, 15, 20 ............................................................ 9
Hình 1.12 Một tập collection lồng lên nhau trong Firestore ........................................ 15
Hình 2.1 Giao diện của ứng dụng Foody .................................................................... 17
Hình 2.2 Giao diện của ứng dụng Foody .................................................................... 18
Hình 2.3 Giao diện của ứng dụng Map.me ................................................................. 19
Hình 3.1 Sơ đồ use case ............................................................................................. 24
Hình 4.1 Lược đồ cơ sở dữ liệu trên Firebase............................................................. 29
Hình 4.2 Lược đồ cơ sở dữ liệu Address bằng SQLite ............................................... 29
Hình 4.3 Sơ đồ chuyển đỗi giữa các màn hình ........................................................... 32
Hình 4.4 Màn hình hiển thị cửa hàng / hàng hóa ........................................................ 33
Hình 4.5 Sơ đồ biến cố màn hình hiển thị cửa hàng / hàng hóa .................................. 34
Hình 4.6 Màn hình hiển thị cửa hàng quanh đây ........................................................ 34
Hình 4.7 Sơ đồ biến cố màn hình cửa hàng quanh đây ............................................... 35
Hình 4.8 Màn hình các cửa hàng đã đánh dấu ............................................................ 36
Hình 4.9 Sơ đồ biến cố màn hình đánh dấu ................................................................ 36
Hình 4.10 Màn hình thơng tin người dùng ................................................................. 37
Hình 4.11 Sơ đồ biến cố màn hình thơng tin người dùng ........................................... 38
Hình 4.12 Màn hình chọn phân loại khi tìm kiếm cửa hàng / hàng hóa ...................... 39
Hình 4.13 Sơ đồ biến cố màn hình phân loại khi tìm kiếm ......................................... 40
Hình 4.14 Màn hình chỉnh các thiết lập khi tìm kiếm cửa hàng / hàng hóa ................. 40
Hình 4.15 Sơ đồ biến cố màn hình các tùy chọn khi tìm kiếm .................................... 41
viii
do an
Hình 4.16 Màn hình tìm kiếm cửa hàng / hàng hóa theo từ khóa ................................ 42
Hình 4.17 Sơ đồ biến cố màn hình tìm kiếm .............................................................. 43
Hình 4.18 Màn hình thơng tin chi tiết cửa hàng ......................................................... 43
Hình 4.19 Sơ đồ biến cố màn hình thơng tin cửa hàng ............................................... 45
Hình 4.20 Màn hình vị trí cửa hàng trên bản đồ ......................................................... 46
Hình 4.21 Sơ đồ biến cố màn hình vị trí cửa hàng trên bản đồ ................................... 47
Hình 4.22 Màn hình thêm cửa hàng ........................................................................... 47
Hình 4.23 Sơ đồ biến cố màn hình thêm cửa hàng ..................................................... 48
Hình 4.24 Màn hình thêm cửa hàng – chọn vị trí ....................................................... 49
Hình 4.25 Sơ đồ biến cố màn hình chọn vị trí cửa hàng ............................................. 50
Hình 4.26 Màn hình thêm cửa hàng – chọn hình ảnh ................................................. 50
Hình 4.27 Sơ đồ biến cố màn hình chọn hình ảnh ...................................................... 51
Hình 4.28 Màn hình đăng nhập .................................................................................. 52
Hình 4.29 Sơ đồ biến cố màn hình đăng nhập ............................................................ 52
Hình 4.30 Lược đồ tuần tự tìm kiếm cửa hàng ........................................................... 53
Hình 4.31 Lược đồ tuần tự tìm kiếm hàng hố ........................................................... 54
Hình 4.32 Lược đồ tuần tự đăng nhập ........................................................................ 54
Hình 4.33 Lược đồ tuần tự đăng xuất ......................................................................... 55
Hình 4.34 Lược đồ tuần tự chỉ đường đến cửa hàng ................................................... 55
Hình 4.35 Lược đồ tuần tự lưu cửa hàng .................................................................... 56
Hình 4.36 Lược đồ tuần tự đánh giá cửa hàng ............................................................ 56
ix
do an
DANH MỤC BẢNG BIỂU
Bảng 2.1 Yêu cầu chức năng nghiệp vụ ..................................................................... 21
Bảng 2.2 Yêu cầu hệ thống ........................................................................................ 21
Bảng 2.3 Yêu cầu chất lượng ..................................................................................... 22
Bảng 2.4 Mô tả hoạt động của một số tính năng chính ............................................... 22
Bảng 3.1 Tác nhân trong sơ đồ use case ..................................................................... 23
Bảng 3.2 Đặc tả use case tìm kiếm cửa hàng theo các lựa chọn .................................. 24
Bảng 3.3 Đặc tả use case tìm kiếm cửa hàng theo từ khóa.......................................... 25
Bảng 3.4 Đặc tả use case tìm kiếm cửa hàng theo một vùng trên bản đồ .................... 25
Bảng 3.5 Đặc tả use case tìm kiếm hàng hố .............................................................. 25
Bảng 3.6 Đặc tả use case tìm kiếm hàng hóa theo từ khóa ......................................... 26
Bảng 3.7 Đặc tả use case đăng nhập........................................................................... 26
Bảng 3.8 Đặc tả use case đăng xuất ........................................................................... 26
Bảng 3.9 Đặc tả use case chỉ đường đến cửa hàng ..................................................... 27
Bảng 3.10 Đặc tả use case lưu cửa hàng..................................................................... 27
Bảng 3.11 Đặc tả use case thêm cửa hàng .................................................................. 28
Bảng 4.1 Các thuộc tính dữ liệu của collection Store ................................................. 30
Bảng 4.2 Các thuộc tính dữ liệu trong collection Store .............................................. 31
Bảng 4.3 Các thuộc tính dữ liệu trong collection Product........................................... 31
Bảng 4.4 Các đối tượng trong màn hình hiển thị cửa hàng / hàng hóa ........................ 33
Bảng 4.5 Các đối tượng trong màn hình cửa hàng quanh đây ..................................... 35
Bảng 4.6 Các đối tượng trong màn hình đánh dấu cửa hàng ....................................... 36
Bảng 4.7 Các đối tượng trong màn hình thơng tin người dùng ................................... 37
Bảng 4.8 Các đối tượng trong màn hình chọn phân loại ............................................. 39
Bảng 4.9 Các đối tượng trong màn hình chỉnh thiết lập.............................................. 41
Bảng 4.10 Các đối tượng trong màn hình tìm kiếm cửa hàng/hàng hóa theo từ khóa.. 42
Bảng 4.11 Các đối tượng trong màn hình thơng tin chi tiết cửa hàng ......................... 44
Bảng 4.12 Các đối tượng trong màn hình vị trí cửa hàng trên bản đồ ......................... 46
Bảng 4.13 Các đối tượng trong màn hình thêm cửa hàng ........................................... 48
Bảng 4.14 Các đối tượng trong màn hình thêm cửa hàng – chọn vị trí ....................... 49
Bảng 4.15 Các đối tượng trong màn hình thêm cửa hàng – chọn hình ảnh ................. 51
Bảng 4.16 Các đối tượng trong màn hình đăng nhập .................................................. 52
x
do an
PHẦN 1 : MỞ ĐẦU
PHẦN MỞ ĐẦU
1.
Tính cấp thiết của đề tài
Hiện nay, nhu cầu cần mua hàng hóa của mỗi người là điều tất yếu trong cuộc
sống. Tuy nhiên việc muốn mua món hàng nào đó cũng tương đối là dễ dàng nếu như
bạn biết rõ khu vực, vị trí các cửa hàng có món đó. Đặt trường hợp nếu bạn khơng biết
nhiều về khu vực mình đang sống, hay bạn đang đi du lịch tại một thành phố mới nào
đó mà chưa từng đến chẳng hạn thì việc đó sẽ gây một chút khó khăn và phiền tối.
Ngay lúc này chỉ cần một vài thông tin về cửa hàng, qn xá nào đó có thứ mình cần
muốn mua thì sẽ cực kỳ hữu dụng có ích.
Nhận thấy tầm quan trọng đó, nhóm mình đã quyết định tìm hiểu và xây dựng
ứng dụng tìm kiếm hàng hóa / cửa hàng, lấy tên là “Semi” trên thiết bị có hệ điều hành
Android.
Việc xây dựng ứng dụng Semi sẽ giúp người dùng biết được các thông tin địa
chỉ, tên cửa hàng, vị trí cửa hàng có bán hàng hóa mà người dùng cần.
2.
-
Mục tiêu của đề tài
Tìm hiểu những kiến thức liên quan đến đề tài:
Sử dụng nền tảng Firebase để lưu trữ và tương tác dữ liệu.
Sử dụng các công nghệ liên quan và các thư viện cần thiết để xử lý trong ứng
dụng.
Sử dụng Facebook, Google Login cho đăng nhập trên ứng dụng.
Tìm hiểu Google Place API để sử dụng chung dữ liệu cửa hàng của Google nhằm
mở rộng độ lớn của database.
-
Xây dựng ứng dụng tìm kiếm hàng hóa / cửa hàng Android với những chức năng:
Tìm kiếm cửa hàng / hàng hóa xung quanh vị trí hiện tại của thiết bị.
Tùy chính các lựa chọn để nâng cao khả năng tìm kiếm (từ khóa, khoảng cách,
địa chỉ, phân loại) .
Tìm kiếm các cửa hàng trong một vùng bao quanh tùy chỉnh.
Lưu lại cửa hàng.
Đăng nhập vào ứng dụng.
Người dùng có thể thêm cửa hàng.
-
Xây dựng ứng dụng quản lý của quản trị viên trên Window với các chức năng:
Đọc, lưu trữ dữ liệu ứng dụng.
1
do an
PHẦN 1 : MỞ ĐẦU
Tương tác dữ liệu qua file excel để tiện cho việc backup, chỉnh sửa.
Upload các thơng tin như: cửa hàng, hàng hóa, hình ảnh.
Kiểm duyệt các cửa hàng mà người dùng thêm.
3. Cách tiếp cận và phương pháp nghiên cứu
- Đối tượng nghiên cứu: tìm hiểu cách thức để xây dựng phát triển ứng dụng di động
trên Android bằng ngôn ngữ Java. Các nền tảng hổ trợ xây dựng Firebase, Google
Map API.
- Phạm vi nghiên cứu: tìm hiểu và nghiên cứu nền tảng và áp dụng công nghệ Google
Map API, nền tảng Firebase để xây dựng ứng dụng tìm kiếm hàng hố / cửa hàng.
Về không gian, đề tài được nghiên cứu trên các nơi trọng điểm thành phố Hồ Chí
Minh và có thể mở rộng hơn nữa.
4.
Kết quả dự kiến đạt được
Tìm hiểu đầy đủ về các kiến thức cơ bản về nền tảng Firebase, Google Map API
từ đó áp dụng xây dựng ứng dụng Semi – tìm kiếm hàng hố / cửa hàng có các tính năng
như sau:
-
Ứng dụng cho phép tìm kiếm hàng hố, cửa hàng sau đó đưa ra các thơng tin
cửa hàng liên quan.
-
Tìm kiếm cửa hàng / hàng hóa với các lựa chọn (từ khóa, quanh đây, dựa trên
khoảng cách, dựa trên địa chỉ, ...)
-
Hiển thị vị trí cửa hàng trên bản đồ Google Map.
-
Đăng nhập.
-
Lưu lại cửa hàng.
-
Thêm cửa hàng từ phía người dùng.
-
Hiển thị thơng tin cửa hàng, các hàng hố có trong cửa hàng.
2
do an
PHẦN 2 : NỘI DUNG
PHẦN NỘI DUNG
Chương 1: Cơ sở lý thuyết
Chương 2: Khảo sát hiện trạng và xác định u cầu
Chương 3: Phân tích và mơ hình hố u cầu
Chương 4: Thiết kế ứng dụng
Chương 5: Cài đặt
Chương 6: Kiểm thử và so sánh
Kết quả đạt được, ưu nhược điểm, hướng phát triển của đề tài
3
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Tìm hiểu về Google map API[2]
1.1.1. Tổng quan về Google Maps SDK trong Android
Google Maps SDK là một tập hợp các cơng cụ, API
cho phép ứng dụng Android có thể tích hợp và tương tác với
Google Maps. API sẽ tự động truy cập vào máy chủ Google
Maps để tải dữ liệu, hiển thị Map và phản hồi với các sự kiện
tương tác trên Map, thơng qua API bạn cịn có thể thêm
markers (đánh dấu trên Map), polygons (vẽ các hình),
polylines (vẽ các đường), hình ảnh, ... vào Map, những đối
tượng này sẽ cung cấp thêm các thông tin hữu ích trên một
khu vực nào đó của Map, ngồi ra có thể thay đổi cách mà
Map được hiển thị như phóng to thu nhỏ, xoay, thay đổi góc
nhìn.
Hình 1.1 Giao diện
1.1.2. Tạo Map
GoogleMap là chứa các phương thức sử dụng trong
GoogleMap trên ứng dụng
việc hiển thị và tương tác với Map như thêm Markers, Polygons, Polylines,
InfoWindow,… và phản hồi với các tương tác trên Map như click vào Marker,
InfoWindow, di chuyển camera,… GoogleMap tự động thực hiện các công việc sau thay
chọn bạn:
- Kết nối tới Google Maps Service
- Tải Map
- Hiển thị Map và các control dùng để điều khiển map như di chuyển, zoom,…
- Phản hồi với các tương tác với các control di chuyển, zoom bằng việc di chuyển
Map và zoom in, zoom out.
Các loại Map
-
Normal: hiển thị các con đường, một số sự vật được tạo ra bởi con người,
những sự vật trong tự nhiên như sông, hồ. Hiển thị nhãn con đường và sự vật
4
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
-
Hybrid: ảnh từ vệ tinh với bản đồ các con đường, hiển thị nhãn con đường và
sự vật.
-
Satellite: ảnh từ vệ tinh với các con đường, không hiển thị nhãn con đường và
sự vật.
-
Terrain: hiển thị địa hình với các màu sắc để biểu diễn, một số nhãn con đường
và sự vật vẫn được hiển thị.
-
None: khơng hiển thị Map, chỉ hiển thị mạng lưới.
Hình 1.2 Ba loại map lần lượt Normal, Hybrid, Terrian
1.1.3. Map Padding
Google Maps mặc định hiện thị trên toàn bộ container chứa nó (MapFragment),
điều này sẽ có ảnh hưởng đến cách mà các thành phần UI trên Map được bố trí và hành
vi của chúng.
- Camera target luôn trỏ vào trung tâm của Map.
- Các thành phần UI được bố trí tương đối với cạnh của Map
- Copyright và logo của Google hiển thị ở phía dưới của Map.
Một điều quan trọng cần nhớ là bạn không được che đi Copyright và logo của
Google ở phía dưới map.
5
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Hình 1.3 Ví dụ về Map Padding
1.1.4. Businesses và Points of Interest (POIs)
Points of Interest (POIs) hiển thị cơng viên, trường học, các tịa nhà chính phủ,…
trên Map. Businesses POIs hiển thị cửa hàng, quán ăn, khách sạn,... và được hiển thị
mặc định trên Map kiểu Normal.
1.1.5. Tương tác với Map
Maps API cung cấp các UI controls được tích hợp sẵn tương tự với ứng dụng
Google Maps, bạn có thể di chuyển đến vị trí hiện tại, zoom in, zoom out, xoay la bàn,…
Thông qua UiSettings class bạn có thể bật hoặc tắt các UI controls này trên Map, những
thay đổi trên class này sẽ ngay lập tức làm thay đổi trên Map.
Hình 1.4 Nút thu phóng trong Google Map
-
Map toolbar - UiSettings.setMapToolbarEnabled(true).
Hình 1.5 Các nút công cụ khác trên Google Map
6
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Hai nút này thường xuất hiện ở phía dưới map, và chỉ hiện ra khơng bạn nhấn
vào một marker. Khi bạn nhấn nút bên trái thì nó sẽ khởi động ứng dụng Google Maps
có sẵn và thực hiện việc chỉ đường từ vị trí hiện tại đến vị trí marker được nhấn. Nút bên
phải chỉ khởi động ứng dụng Google Maps để hiển thị vị trí marker được click.
1.1.6. Markers
Marker là một đối tượng dùng để đánh dấu một vị trí nào đó trên Google Maps.
Nó có kích thướt cố định cho dù có thực hiện zoom trên Map, mặc đinh khi xoay map,
thay đổi góc nhìn thì marker sẽ khơng xoay theo hay thay đổi định hướng.
Maps API cũng cấp cho bạn khả năng tạo và thêm một hay nhiều marker vào
trong Map, một marker được đại diện bởi class Marker và để khởi tạo nó thì trước hết
bạn phải xác định trước các thuộc tính của một marker như vị trí, icon, title, anchor,…
Hình 1.6 Một markers trong Android
Các thuộc tính của một marker
-
Title: tiêu đề của marker, là đoạn text sẽ được hiển thị khi nhấn vào marker
Position (thuộc tính bắt buộc): vị trí của marker, là vị trí mà marker được hiển thị
trên map.
-
Icon: ảnh đại diện cho marker, là một ảnh được hiển thị tại vị trí của marker.
-
Anchor: điểm neo của marker, là tọa độ (x, y) nằm trong Icon với x, y có giá trị
nằm trong đoạn [0 - 1], tọa độ này này được tính từ góc trên bên trái của Icon.
Mục đích của nó là xác định một điểm ở trên Icon mà nó cũng là tọa độ trên Map.
-
Alpha: thay đổi độ trong suốt của marker, có giá trị từ [0-1].
-
Snippet: một đoạn text được hiển thị bên dưới title.
-
Visible: xác định xem marker có cần được hiển thị khơng.
-
Draggable: xác định xem marker có cần được kéo thả để di chuyển trên Map
không.
7
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
-
Rotation: định hướng xoay của marker, xoay theo clockwise (chiều kim đồng hồ)
với giá trị là degrees (độ).
-
Flat: Mặc định marker sẽ không xoay theo khi mà bạn xoay Map và sẽ khơng
thay đổi kích thước và định hướng khi zoom hay thay đổi góc nhìn, nhưng nếu
bạn đặt Flat là true thì marker sẽ xoay theo khi bạn xoay Map, và thay đổi định
hướng khi thay đổi góc nhìn.
-
Zindex: Nếu có nhiều marker hiển thị trên Map chồng lên nhau thì lúc này ta
thơng qua chỉ số zindex để xác định thứ tự chồng lên nhau của marker. Marker
với zindex lớn hơn sẽ được chồng lên trên marker có zindex nhỏ hơn.
Hình 1.7 Một marker được xoay 45 độ trong Google Map
1.1.7.
Camera và View
Map view hay gọi là vùng quan sát Map, được Google Maps mơ hình hóa thành
một đối tượng Camera, tức là bạn quan sát Map trên màn hình thiết bị giống như đang
quan sát trên màn hình của một camera.
Hình 1.8 Camera trong Google Map
Một camera sẽ bao gồm các thuộc tính quan trọng sau
-
Target: Tâm điểm mà camera trỏ đến.
-
Tilt: Góc thu hình so với phương thẳng đứng
8
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Hình 1.9 Góc thu hình mặc định của camera (1) trỏ đến bản đồ (2)
Hình 1.10 Góc thu hình lệnh 45 độ so với phương thẳng đứng trỏ đến bản đồ (2)
-
Bearing: là góc xoay của camera quanh trục dọc theo camera đến target, góc xoay
so với hướng Bắc theo chiều kim đồng hồ.
-
Zoom: độ phóng đại. Ban đầu bản đồ cả thế giới có kích thước 256dp, nếu giá trị
zoom là N thì kích thước của bản đồ lúc này là 256 * 2N dp. Mỗi mức giá trị
zoom sẽ xác định độ chi tiết khác nhau trên bản đồ: 1 - toàn thế giới, 5 - châu lục,
10 - thành phố, 15 – đường phố, 20 - tịa nhà.
Hình 1.11 Các mức độ zoom lần lượt 5, 15, 20
1.2. Tìm hiểu về nền tảng Firebase
1.2.1. Tổng quan về Firebase[1]
Google firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền
tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các
ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Với Firebase bạn có
9
do an
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
thể rút ngắn thời gian phát triển, triển khai và thời gian mở rộng quy mơ của ứng dụng
mobile mình đang phát triển. Hỗ trợ cả 2 nền tảng Android và IOS, Firebase mạnh mẽ,
đa năng, bảo mật và là dịch vụ cần thiết đầu tiên để xây dưng ứng dụng với hàng triệu
người sử dụng.
Lợi ích:
-
Triển khai ứng dụng cực nhanh: Firebase cung cấp cho bạn khá nhiều các API,
hỗ trợ đa nền tảng giúp bạn tiết kiệm thời gian quản lý cũng như đồng bộ dữ liệu
cung cấp hosting, hỗ trợ xác thực người dùng thì việc triển khai ứng dụng sẽ giảm
được rất nhiều thời gian phát triển.
-
Bảo mật: Với việc sử dụng các kết nối thông qua giao thức bảo mật SSL hoạt
động trên nền tảng cloud đồng thời cho phép phân quyền người dùng database
bằng cú pháp javascipt cũng nâng cao hơn nhiều độ bảo mật cho ứng dụng của
bạn.
-
Sự ổn định: Firebase hoạt động dựa trên nền tảng cloud cung cấp bởi Google do
đó hãy yên tập về việc một ngày đẹp trời nào đó server ngừng hoạt động hay như
DDOS hoặc là tốc độ kết nối như rùa bị. Một điều đáng lưu ý nữa đó là do hoạt
động trên nền tảng Cloud vì vậy việc nâng cấp hay bảo trì server cũng diễn ra rất
đơn giản mà không cần phải dừng server.
1.2.2. Các dịch vụ Firebase cung cấp
Firebase cung cấp cho chúng ta 2 nhóm sản phẩm chính tập trung vào 2 đối tượng:
-
Develop & test your app: phát triển và kiểm thử 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 đối
với người dùng
Nhóm cơng cụ Develop & test your app
-
Realtime Database:
Lưu trữ và đồng bộ dữ liệu người dùng thời gian thực, các ứng dụng hỗ trợ tính
năng này có thể lưu trữ và lấy dữ liệu từ máy chủ trong tích tắc. Các dữ liệu được lưu
trữ trong hệ thống cơ sở dữ liệu hỗ trợ NoSQL và được đặt trên nền tảng máy chủ Cloud,
dữ liệu được ghi và đọc với thời gian thấp nhất tính bằng mili giây. Nền tảng này hỗ trợ
đồng bộ hóa dữ liệu của người dùng kể cả khi khơng có kết nối mạng, tạo nên trải nghiệm
xuyên suốt bất chấp tình trạng kết nối internet của người sử dụng. Reatime Database của
Firebase hổ trợ: Android, iOS, Web, C++, Unity, và cả Xamarin.
10
do an