1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng ứng dụng tìm kiếm cửa hàng ăn trên nền tảng ANDROID

93 174 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 93
Dung lượng 1,45 MB

Nội dung

NHIỆM VỤ VÀ NỘI DUNG - Khảo sát thực tế - Phân tích và thiết kế hệ thống - Trau dồi kiến thức lập trình Android - Tìm hiểu kiến thức về nền tảng NodeJS - Tìm hiểu về hệ quản trị cơ sở d

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN HUY VIỆT KHOA

XÂY DỰNG ỨNG DỤNG TÌM KIẾM CỬA HÀNG ĂN

TRÊN NỀN TẢNG ANDROID

Ngành/Chuyên ngành: Công nghệ thông tin

Giảng viên hương dẫn: ThS Nguyễn Thùy Linh

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội - Năm 2016

Trang 2

Hà Nội, ngày 21 tháng 04 năm 2016

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

Ngày, tháng, năm sinh: 17/06/1993 Nơi sinh: Hà Nội Chuyên ngành: Công nghệ thông tin Mã số: 12A10010196

1 TÊN ĐỀ TÀI

Xây dựng ứng dụng tìm kiếm cửa hàng ăn trên nền tảng Android

2 NHIỆM VỤ VÀ NỘI DUNG

- Khảo sát thực tế

- Phân tích và thiết kế hệ thống

- Trau dồi kiến thức lập trình Android

- Tìm hiểu kiến thức về nền tảng NodeJS

- Tìm hiểu về hệ quản trị cơ sở dữ liệu MongoDB

- Xây dựng hệ thống tìm kiếm cửa hàng ăn gồm 2 phần: Ứng dụng cho người dùng và quản trị hệ thống cho admin:

+ Đối với ứng dụng có các chức năng: Đăng ký, đăng nhập, tìm kiếm cửa hàng, tìm đường tới cửa hàng, kết bạn, gửi lời mời đi ăn đến người bạn của mình, thêm danh sách cửa hàng yêu thích, cập nhật thông tin tài khoản, bình luận, đánh giá về cửa hàng, thông báo tới người dùng khi đến giờ hẹn của lời mời

+ Đối với quản trị hệ thống bao gồm các chức năng: Cập nhật cửa hàng, duyệt, xóa bình luận, xóa tài khoản người dùng, tạo tài khoản đăng nhập cho admin

Trang 3

5 GIÁO VIÊN HƯỚNG DẪN

Thạc sĩ Nguyễn Thùy Linh

Nội dung và đề cương Đồ án đã được Hội đồng chuyên ngành thông qua

Ngày 21 tháng 04 năm 2016

Trang 4

mỗi người cho nên việc phát triển ứng dụng di động là một lĩnh vực đầy tiềm năng đối với những nhà lập trình viên trẻ tuổi Trong các loại ứng dụng di động thì ứng dụng tìm kiếm địa điểm đang có sự bùng nổ lớn với sự xuất hiện của rất nhiều các ứng dụng dạng này Có rất nhiều loại ứng dụng tìm kiếm có thể là tìm kiếm trạm xe buýt, trạm xăng, cửa hàng ăn, nhưng chưa có ứng dụng nào thực sự thỏa mãn được yêu cầu của người dùng

Xuất phát từ thực tế trên cũng như sau thời gian học tập và nghiên cứu tại Viện Đại học Mở Hà Nội khoa Công nghệ thông tin, được sự giúp đỡ của thầy cô trong trường và đặc biệt là sự hướng dẫn tận tình của của ThS Nguyễn Thùy Linh, em đã

hoàn thành bản đồ án: “Xây dựng ứng dụng tìm kiếm cửa hàng ăn trên nền tảng Android”

Báo cáo đồ án gồm năm chương chính:

- Chương 1 – Khảo sát hệ thống: Khảo sát ứng dụng Lozi, từ những ưu nhược điểm phân tích được đưa ra ý tưởng cho hệ thống tìm kiếm cửa hàng trên nền tảng Angdroid

- Chương 2 – Cơ sở lý thuyết: Giới thiệu những công nghệ được sử dụng trong đề tài

- Chương 3 – Phân tích hệ thống: Mục đích chính của chương là phân tích

hệ thống từ đó đưa ra được sơ đồ phân cấp chức năng và sơ đồ luồng dữ liệu của hệ thống

- Chương 4 – Thiết kế hệ thống: Chương này trình bày quá trình thiết kế cơ

sở dữ liệu của hệ thống và thiết kế một số module chính của hệ thống

- Chương 5 – Hương dẫn sử dụng: Hướng dẫn sử dụng trang web quản trị cho admin và ứng dụng trên điện thoại Android cho người dùng

Do kiến thức còn hạn chế nên bản đồ án không tránh được những thiếu sót, em rất mong được sự góp ý của thầy cô để bản đồ án được hoàn thiện hơn

Trang 5

Em xin cảm ơn các thầy cô trong khoa Công nghệ thông tin Viện Đại học Mở Hà Nội, đặc biệt là ThS Nguyễn Thùy Linh đã giúp đỡ em hoàn thành đồ án tốt nghiệp

Hà Nội, ngày 21/04/2016 Sinh viên thực hiện Nguyễn Huy Việt Khoa

Trang 6

MỤC LỤC

Trang CHƯƠNG 1

KHẢO SÁT HỆ THỐNG

1.1 Khảo sát hệ thống hiện tại 1

1.2 Mô tả hệ thống 1

1.3 Phạm vi đề tài 3

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về Android 4

2.2 Giới thiệu về NodeJS 7

2.3 Giới thiệu về MongoDB 8

CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG 3.1 Sơ đồ phân rã chức năng 9

3.1.1 Gom nhóm các chức năng 9

3.1.2 Sơ đồ phân rã chức năng 10

3.1.3 Đặc tả chức nănng 12

3.2 Sơ đồ luồng dữ liệu các mức 14

3.2.1 Sơ đồ luồng dữ liệu mức khung cảnh 14

3.2.2 Sơ đồ luồng dữ liệu mức đỉnh 16

3.2.3 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tài khoản 17

3.2.4 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý cửa hàng 18

3.2.5 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bạn bè 19

3.2.6 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý lời mời 20

3.2.7 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bình luận đánh giá 21

3.2.8 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý danh mục 21

CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 4.1 Thiết kế cơ sở dữ liệu 22

Trang 7

4.1.1 Xác định các tập thực thể 22

4.1.2 Xác định các mối liên kết giữa các tập thực thể 23

4.1.3 Mô hình thực thể liên kết E-R 26

4.1.4 Mô hình quan hệ 27

4.1.5 Các bảng cơ sở dữ liệu vật lý 28

4.2 Thiết kế Module 33

4.2.1 Module đăng nhập 33

4.2.2 Module đăng ký 34

4.2.3 Module quản lý cửa hàng 36

4.2.4 Module quản lý bình luận và đánh giá 44

4.2.5 Module quản lý bạn bè 47

4.2.6 Module quản lý lời mời 54

CHƯƠNG 5 HƯỚNG DẪN SỬ DỤNG HỆ THỐNG 5.1 Hướng dẫn sử dụng cho người dùng 62

5.1.1 Hướng dẫn đăng nhập 62

5.1.2 Hướng dẫn lấy lại mật khẩu 64

5.1.3 Hướng dẫn đăng ký 65

5.1.4 Hướng dẫn sử dụng không thông qua đăng nhập 66

5.1.5 Hướng dẫn sử dụng chức năng danh sách cửa hàng 67

5.1.6 Hướng dẫn sử dụng chức năng chi tiết cửa hàng 68

5.1.7 Hướng dẫn sử dụng bản đồ 69

5.1.8 Hướng dẫn sử dụng quản lý bạn bè 70

5.1.9 Hướng dẫn sử dụng chức năng cửa hàng yêu thích 71

5.1.10 Hướng dẫn sử dụng chức năng quản lý lời mời 72

5.1.11 Hướng dẫn sử dụng chức năng duyệt lời mời 73

5.2 Hướng dẫn sử dụng cho Admin 74

5.2.1 Hướng dẫn sử dụng chức năng nhập cửa hàng 74

5.2.2 Hướng dẫn sử dụng chức năng tìm kiếm cửa hàng 74

5.2.3 Hướng dẫn sử dụng chức năng nhập danh mục 75

5.2.4 Hướng dẫn sử dụng chức năng danh sách danh mục 76

5.2.5 Hướng dẫn sử dụng chức năng quản lý bình luận 76

Trang 8

5.2.6 Hướng dẫn sử dụng chức năng quản lý tài khoản người dùng 77

5.2.7 Hướng dẫn sử dụng chức năng tạo tài khoản admin 77

KẾT LUẬN 79

TÀI LIỆU THAM KHẢO 80

Trang 9

Họ và tên: Nguyễn Huy Việt Khoa

Cán bộ hướng dẫn: ThS Nguyễn Thùy Linh

Tên đề tài: Xây dựng ứng dụng tìm kiếm cửa hàng ăn trên nền tảng Android

Tóm tắt: Hệ thống được xây dựng giúp người dùng dễ dàng tìm được cửa

hàng ăn trong phạm vi Hà Nội Hệ thống sử dụng “Google Map APIs” để người dùng tìm đường tới cửa hàng một cách nhanh chóng và chính xác Ngoài ra, hệ thống còn cho phép người dùng kết bạn với nhau và gửi lời mời

đi ăn tới người bạn của mình Hệ thống còn nhắc người dùng khi lời mời đi

ăn đến giờ hẹn

Abstract: The system is built to help users easily find restaurants within

Hanoi The system uses "Google Map APIs" for users to find their way to shop quickly and accurately In addition, the system also allows user to make friends with each other and send an invitation to eat to his friends The system also prompts users when an invitation to eat about time

Trang 10

Bảng 4.1 Bảng cơ sở dữ liệu Danh mục món ăn 27

Bảng 4.2 Bảng cơ sở dữ liệu Lời mời 27

Bảng 4.3 Bảng cơ sở dữ liệu Danh mục khu vực 28

Bảng 4.4 Bảng cơ sở dữ liệu Bạn bè 28

Bảng 4.5 Bảng cơ sở dữ liệu Người dùng 29

Bảng 4.6 Bảng cơ sở dữ liệu Đánh giá 29

Bảng 4.7 Bảng cơ sở dữ liệu Cửa hàng yêu thích 30

Bảng 4.8 Bảng cơ sở dữ liệu Bình luận 30

Bảng 4.9 Bảng cơ sở dữ liệu Cửa hàng 31

Bảng 4.10 Bảng cơ sở dữ liệu Ảnh 31

Bảng 4.11 Bảng cơ sở dữ liệu Admin 32

Trang 11

Hình 3.2 Sơ đồ luồng dữ liệu mức ngữ cảnh 14

Hình 3.3 Sơ đồ luồng dữ liệu mức đỉnh 15

Hình 3.4 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tài khoản 16

Hình 3.5 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý cửa hàng 17

Hình 3.6 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bạn bè 18

Hình 3.7 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý lời mời 19

Hình 3.8 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bình luận đánh giá 20

Hình 3.9 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý danh mục 20

Hình 4.1 Liên kết giữa hai tập thực thể Người dùng và Cửa hàng 22

Hình 4.2 Liên kết giữa hai tập thực thể Người dùng và Người dùng 22

Hình 4.3 Liên kết giữa hai tập thực thể Người dùng và Bình luận 22

Hình 4.4 Liên kết giữa hai tập thực thể Người dùng và Đánh giá 23

Hình 4.5 Liên kết gửi giữa hai tập thực thể Người dùng và Lời mời 23

Hình 4.6 Liên kết nhận giữa hai tập thực thể Người dùng và Lời mời 23

Hình 4.7 Liên kết giữa hai tập thực thể Cửa hàng và Bình luận 24

Hình 4.8 Liên kết giữa hai tập thực thể Cửa hàng và Đánh giá 24

Hình 4.9 Liên kết giữa hai tập thực thể Cửa hàng và Danh mục món ăn 24

Hình 4.10 Liên kết giữa hai tập thực thể Cửa hàng và Danh mục khu vực 24

Hình 4.11 Mô hình thực thể liên kết ER 25

Trang 12

Hình 4.14 Sơ đồ khối module đăng ký 34

Hình 4.15 Sơ đồ khối module tìm cửa hàng 35

Hình 4.16 Sơ đồ khối module thêm cửa hàng 37

Hình 4.17 Sơ đồ khối module sửa cửa hàng 39

Hình 4.18 Sơ đồ khối module xóa cửa hàng 41

Hình 4.19 Sơ đồ khối module tìm đường 42

Hình 4.20 Sơ đồ khối module bình luận 44

Hình 4.21 Sơ đồ khối module đánh giá 45

Hình 4.22 Sơ đố khối module gửi lời mời kết bạn 47

Hình 4.23 Sơ đồ khối module duyệt lời mời kết bạn 48

Hình 4.24 Sơ đồ khối module tìm kiếm bạn bè 50

Hình 4.25 Sơ đồ khối module xóa bạn bè 51

Hình 4.26 Sơ đồ khối module cập nhật bạn thân thiết 52

Hình 4.27 Sơ đồ khối module gửi lời mời đi ăn 54

Hình 4.28 Sơ đồ khối module tìm kiếm lời mời 56

Hình 4.29 Sơ đồ khối module duyệt lời mời đi ăn 57

Hình 4.30 Sơ đồ khối module nhắc việc 59

Hình 5.1 Giao diện màn hình đăng nhập 62

Hình 5.2 Giao diện màn hình lấy lại mật khẩu 63

Hình 5.3 Giao diện màn hình đăng ký 64

Trang 13

Hình 5.5 Giao diện màn hình danh sách cửa hàng 66

Hình 5.6 Giao diện màn hình chi tiết cửa hàng 67

Hình 5.7 Giao diện màn hình bản đổ 68

Hình 5.8 Giao diện màn hình bạn bè 69

Hình 5.9 Giao diện màn hình cửa hàng yêu thích 70

Hình 5.10 Giao diện màn hình lời mời 71

Hình 5.11 Giao diện màn hình duyệt lời mời 72

Hình 5.12 Giao diện màn hình nhập cửa hàng 73

Hình 5.13 Giao diện màn hình tìm kiếm cửa hàng 74

Hình 5.14 Giao diện màn hình nhập danh mục 74

Hình 5.15 Giao diện danh sách danh mục 75

Hình 5.16 Giao diện màn hình quản lý bình luận 75

Hình 5.17 Giao diện màn hình quản lý tài khoản người dùng 76

Hình 5.18 Giao diện màn hình tạo tài khoản admin 77

Trang 14

CHƯƠNG 1 KHẢO SÁT HỆ THỐNG 1.1 Khảo sát hệ thống hiện tại

Ngày nay, gần như bất cứ ai cũng sở hữu một chiếc điện thoại thông minh Cùng với đó là các ứng dụng trên nền tảng di động nói chung và Android nói riêng có sự phát triển lớn về chất lượng lẫn số lượng, đặc biệt là các ứng dụng tìm kiếm Hiện nay trong lĩnh vực tìm kiếm địa điểm ăn uống, có một ứng dụng đang thu hút được một lượng lớn người sử dụng tại Việt Nam, đó là ứng dụng Lozi

Ứng dụng Lozi có được sự yêu thích đầu tiên là bởi nó có một giao diện bắt mắt, phù hợp với người trẻ tuổi Lozi không chỉ tập trung vào giao diện mà nhóm phát triển cũng xây dựng được các chức năng đáp ứng được nhu cầu của người dùng như chức năng định vị, tìm đường đến cửa hàng, cung cấp được các thông tin cần thiết về cửa hàng Ứng dụng không chỉ giúp người dùng tìm đường mà còn cho phép họ bình luận về các cửa hàng Số lượng cửa hàng mà ứng dụng cung cấp cũng phong phú và đa dạng

Lozi về cơ bản đã giải quyết được nhu cầu tìm kiếm của người dùng nhưng vẫn còn nhiều điều thiếu sót, chẳng hạn như vẫn thiếu các tương tác với người dùng hoặc giữa các người dùng với nhau Ứng dụng không có chức năng kết bạn, hay mời bạn đi ăn

1.2 Mô tả hệ thống

Xuất phát từ việc khảo sát về ưu nhược điểm của ứng dụng Lozi, em quyết định xây dựng hệ thống tìm kiếm cửa hàng ăn uống, không chỉ giải quyết các vấn đề

cơ bản như ứng dụng Lozi mà còn tăng tính tương tác với người dùng

Hệ thống em xây dựng gồm 3 đối tượng sử dụng: Người dùng, thành viên và admin

Đầu tiên là đối tượng người dùng, họ là những người sử dụng ứng dụng không thông qua đăng nhập Người dùng không đăng nhập thì chỉ có thể sử dụng một

số tính năng cơ bản như xem danh sách cửa hàng, tìm đường đến cửa hàng Khi

Trang 15

muốn tìm cửa hàng, người dùng nhập tên cửa hàng lên thanh công cụ tìm kiếm Ngoài ra, họ có thể lựa chọn các tiêu chí để lọc như theo món ăn hoặc theo khu vực Người dùng muốn tìm đường, ấn vào nút dẫn đường, ứng dụng sẽ định vị

vị trí người dùng và hiển thị đường tới cửa hàng Nếu họ muốn sử dụng các chức năng khác thì họ cần dùng chức năng đăng ký để có tài khoản và sau đó đăng nhập bằng tài khoản đó

Đối tượng sử dụng tiếp theo là thành viên, đó là những người dùng có tài khoản

và đăng nhập để sử dụng ứng dụng Sau khi người dùng đăng nhập vào ứng dụng thì ngoài tính năng cơ bản là xem danh sách cửa hàng và tìm đường, họ có thể sử dụng các chức năng khác của ứng dụng Họ có thể để lại bình luận đánh giá về cửa hàng trên trang thông tin chi tiết về cửa hàng

Thành viên muốn thêm bạn cần nhập số điện thoại Khi hệ thống kiểm tra số điện thoại tồn tại, một lời mời kết bạn được gửi đi Lời mời kết bạn sẽ hiện trên danh sách bạn bè của người được mời để họ duyệt Nếu thành viên đó chấp nhận, hai người trở thành bạn bè của nhau Thành viên có thể tìm kiếm tên người bạn trong danh sách bạn bè Khi hai thành viên trở thành bạn của nhau,

họ có thể xóa người bạn của mình ra khỏi danh sách bạn bè

Sau khi kết bạn, thành viên có thể viết lời mời bạn mình đi ăn Khi đó, lời mời

sẽ được hiển thị trên danh sách lời mời cần duyệt của người được mời Nếu người được mời chấp nhận lời mời Lời mời được hiện trong danh sách lời mời của thành viên đó Thành viên có thể tìm kiếm lời mời trong danh sách lời mời

và danh sách lời mời cần duyệt Với lời mời được chấp nhận, thành viên có thể xóa lời mời đó nếu chưa đến giờ hẹn Khi đến giờ hẹn đi ăn, một thông báo đã đến giờ hẹn sẽ gửi tới thành viên

Thành viên khi gặp được một cửa hàng yêu thích có thể thêm cửa hàng đó vào danh sách yêu thích để dễ dàng tìm thấy trong những lần sau

Thành viên có thể cập nhật thông tin về tài khoản gồm tên và số điện thoại Đối tượng sử dụng cuối cùng của hệ thống là admin Admin cần đăng nhập vào

hệ thống để sử dụng Sau khi đăng nhập thành công, admin có thể tạo tài khoản

Trang 16

admin khác Admin có quyền cập nhật thông tin cửa hàng, duyệt, xóa bình luận, xóa tài khoản thành viên

1.3 Phạm vi đề tài

Ứng dụng được xây dựng hỗ trợ người dùng tìm kiếm cửa hàng ăn trong phạm

vi nội thành thành phố Hà Nội

Trang 17

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về Android

Ứng dụng Android được viết bằng ngôn ngữ lập trình Java Bộ công cụ SDK Android sẽ biên dịch mã của bạn - cùng với bất kỳ tệp dữ liệu và tài nguyên nào -vào một APK: một gói Android, đó là một tệp lưu trữ có hậu tố apk Một tệp APK chứa tất cả nội dung của một ứng dụng Android và là tệp mà các thiết bị dựa trên nền tảng Android sử dụng để cài đặt ứng dụng

Sau khi được cài đặt lên một thiết bị, từng ứng dụng Android sẽ ở bên trong hộp cát bảo mật của chính nó:

 Hệ điều hành Android là một hệ thống Linux đa người dùng trong đó mỗi ứng dụng là một người dùng khác nhau

 Theo mặc định, hệ thống gán cho từng ứng dụng một ID người dùng Linux duy nhất (ID chỉ được sử dụng bởi hệ thống và không xác định đối với ứng dụng) Hệ thống sẽ đặt quyền cho tất cả tệp trong một ứng dụng sao cho chỉ ID người dùng được gán cho ứng dụng đó mới có thể truy cập chúng

 Mỗi tiến trình có máy ảo riêng của mình, vì thế mã của một ứng dụng sẽ chạy độc lập với các ứng dụng khác

 Theo mặc định, mọi ứng dụng chạy trong tiến trình Linux của chính nó Android khởi động tiến trình khi bất kỳ thành phần nào của ứng dụng cần được thực thi, sau đó tắt tiến trình khi không còn cần nữa hoặc khi hệ thống phải khôi phục bộ nhớ cho các ứng dụng khác

Bằng cách này, hệ thống Android triển khai nguyên tắc đặc quyền ít nhất Cụ thể, theo mặc định, mỗi ứng dụng chỉ có thể truy cập vào các thành phần mà nó cần để thực hiện công việc của mình và không hơn Điều này tạo ra một môi trường rất bảo mật mà trong đó một ứng dụng không thể truy cập các bộ phận của hệ thống mà nó không được cấp quyền

Trang 18

Tuy nhiên, có nhiều cách để một ứng dụng chia sẻ dữ liệu với các ứng dụng khác và

để một ứng dụng truy cập vào các dịch vụ của hệ thống:

 Có thể sắp xếp để hai ứng dụng chia sẻ cùng ID người dùng Linux, trong trường hợp đó chúng có thể truy cập các tệp của nhau Để tiết kiệm tài nguyên của hệ thống, các ứng dụng có cùng ID người dùng cũng có thể sắp xếp để chạy trong cùng tiến trình Linux và chia sẻ cùng máy ảo (các ứng dụng cũng phải được ký bằng cùng chứng chỉ)

 Một ứng dụng có thể yêu cầu quyền truy cập dữ liệu của thiết bị chẳng hạn như danh bạ của người dùng, tin nhắn SMS, thiết bị lưu trữ gắn được (thẻ SD), máy ảnh, Bluetooth và nhiều nữa Tất cả quyền ứng dụng đều phải được cấp bởi người dùng tại thời điểm cài đặt

Có bốn loại thành phần ứng dụng khác nhau Mỗi loại có một mục đích riêng và có một vòng đời riêng, xác định cách thành phần được tạo lập và hủy

Sau đây là bốn loại thành phần ứng dụng:

Hoạt động

Một hoạt động biểu diễn một màn hình đơn với một giao diện người dùng Ví dụ, một ứng dụng e-mail có thể có một hoạt động với chức năng hiển thị một danh sách e-mail mới, một hoạt động khác để soạn e-mail, và một hoạt động khác để đọc e-mail Mặc dù các hoạt động cùng nhau tạo thành một trải nghiệm người dùng gắn kết trong ứng dụng e-mail, mỗi hoạt động lại độc lập với nhau Như vậy, một ứng dụng khác có thể khởi động bất kỳ hoạt động nào trong số này (nếu ứng dụng e-mail cho phép nó) Ví dụ, một ứng dụng máy ảnh có thể khởi động hoạt động trong ứng dụng e-mail có chức năng soạn thư mới, để người dùng chia

sẻ một bức ảnh

Trang 19

Dịch vụ

Một dịch vụ là một thành phần chạy ngầm để thực hiện các thao tác chạy lâu hoặc để thực hiện công việc cho các tiến trình từ xa Dịch vụ không cung cấp giao diện người dùng Ví dụ, một dịch vụ có thể phát nhạc dưới nền trong khi người dùng đang ở một ứng dụng khác, hoặc nó có thể tải dữ liệu qua mạng mà không chặn người dùng tương tác với hoạt động Một thành phần khác, chẳng hạn như một hoạt động, có thể khởi động dịch vụ và để nó chạy hoặc gắn kết với

nó để tương tác với nó

Trình cung cấp Nội dung

Một trình cung cấp nội dung sẽ quản lý một tập dữ liệu ứng dụng được chia sẻ Bạn có thể lưu trữ dữ liệu trong hệ thống tệp, một cơ sở dữ liệu SQLite, trên web, hay bất kỳ vị trí lưu trữ liên tục nào khác mà ứng dụng của bạn có thể truy cập Thông qua trình cung cấp nội dung, các ứng dụng khác có thể truy vấn hay thậm chí sửa đổi dữ liệu (nếu trình cung cấp nội dung cho phép) Ví dụ, hệ thống Android cung cấp một trình cung cấp nội dung có chức năng quản lý thông tin danh bạ của người dùng Như vậy, bất kỳ ứng dụng nào có các quyền phù hợp đều có thể truy vấn bất kỳ phần nào của trình cung cấp nội dung để đọc và ghi thông tin về một người cụ thể

Trình cung cấp nội dung cũng hữu ích với việc đọc và ghi dữ liệu riêng tư đối với ứng dụng của bạn và không được chia sẻ Ví dụ, ứng dụng mẫu Note Pad sử dụng một trình cung cấp nội dung để lưu các ghi chú

Trang 20

sẵn để họ sử dụng Mặc dù các hàm nhận quảng bá không hiển thị giao diện người dùng, chúng có thể tạo một thông báo thanh trạng thái để cảnh báo người tiếp nhận khi xảy ra một sự kiện quảng bá Tuy nhiên trường hợp phổ biến hơn

đó là hàm nhận quảng bá chỉ là một "cổng kết nối" tới các thành phần khác và nhằm mục đích thực hiện lượng công việc rất ít Ví dụ, nó có thể khởi tạo một dịch vụ để thực hiện một số công việc dựa trên sự kiện

2.2 Giới thiệu về NodeJS

Node.js là một nền tảng mã nguồn mở chạy trên môi trường V8 JavaScript runtime

- một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome Bình thường thì bạn cũng có thể tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node.js làm điều đó đối với các web server JavaScript suy cho cùng cũng chỉ là một ngôn ngữ - vậy thì không có lý do gì để nói nó không thể sử dụng trên môi trường server tốt như là trong trình duyệt của người dùng được

Một số đặc tính của NodeJS:

Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ

(none-blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả

dữ liệu về Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime)

Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript

Engine nên việc thực thi chương trình rất nhanh

Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình

luồng duy nhất với sự kiện lặp, cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử

lý yêu cầu Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTP Server

Trang 21

Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này

chủ yếu là đầu ra dữ liệu

2.3 Giới thiệu về MongoDB

MongoDB là một hệ thống CSDL mã nguồn mở được phát triển và hỗ trợ bởi 10gen dùng cơ chế NoSQL để truy vấn

Collection trong MongoDB là nhóm các tài liệu, nó tương đương với một bảng trong CSDL thông thường nên mỗi collection sẽ thuộc về một database duy nhất Tuy nhiên nó có một sực khác biệt đó là nó không có ràng buộc như các hệ quản trị CSDL khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các trường cố định

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu JSON, nghĩa là sẽ

có các cặp khóa và giá trị nên nó có tính năng động rất lớn Document ta có thể hiểu

nó giống như các bản ghi dữ liệu trong MYSQL, tuy nhiên nó có sự khác biệt là các cặp khóa và giá trị có thể không giống nhau ở mỗi document

Trang 22

CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG 3.1 Sơ đồ phân rã chức năng

3.1.1 Gom nhóm các chức năng

Qua quá trình tìm hiểu, em xin đề xuất hệ thống có 6 nhóm chức năng chính bao gồm: Quản lý tài khoản, quản lý cửa hàng, quản lý bạn bè, quản lý lời mời, quản lý bình luận đánh giá quản lý danh mục Gom nhóm chức năng mô tả như bảng 3.1

Bảng 3.1 Gom nhóm chức năng (1) Đăng nhập, đăng xuất

(8) Gửi lời mời đi ăn

(9) Duyệt lời mời đi ăn

(10) Tìm kiếm lời mời đi ăn

(11) Xóa lời mời đi ăn

(12) Nhắc việc

Quản lý lời mời

Trang 23

(13) Gửi lời mời kết bạn

(14) Duyệt lời mời kết bạn

3.1.2 Sơ đồ phân rã chức năng

Từ phân tích ở mục 3.1.1, em xin đưa ra sơ đồ phân rã chức năng như hình 3.1

Trang 25

3.1.3 Đặc tả chức năng

Quản lý tài khoản:

Đăng nhập/ xuất: Đăng nhập được sử dụng bời người dùng và admin, cho phép

họ vào giao diện chính của hệ thống Người dùng, admin nhập tên tài khoản và mật khẩu tại màn hình đăng nhập, dữ liệu được gửi lên server để xác thực và trả lại kết quả đăng nhập thành công hay thất bại

Đăng xuất được sử dụng bởi thành viên và admin, cho phép họ thoát khỏi giao diện chính của hệ thống Thành viên, admin sau khi nhấn nút đăng xuất được đưa trở lại màn hình đăng nhập của hệ thống

Đăng ký: Chức năng này giúp người dùng, admin tạo tài khoản để đăng nhập vào hệ thống Người dùng muốn trở thành một thành viên của hệ thống sẽ điền các thông tin gồm tên, tên đăng nhập, mật khẩu, số điện thoại để đăng ký tài khoản mới Trong đó Tên đăng nhập Số điện thoại và Email phải là duy nhất Admin chỉ cần đăng ký tên đăng nhập và mật khẩu

Cập nhật tài khoản: Chức năng này cho phép thành viên thay đổi thông tin của tài khoản Thành viên dùng chức năng này có thể cập nhật lại số điện thoại và tên của tài khoản

Quản lý cửa hàng:

Tìm kiếm: Người dùng, thành viên và admin dùng chức năng này để tìm cửa hàng mong muốn Để dùng chức năng này, họ nhập tên cửa hàng muốn tìm, đối với người dùng và thành viên họ có thể chọn các tiêu chí để lọc bao gồm món

ăn và khu vực

Tìm đường: Chức năng này cho phép người dùng và thành viên xác định được đường đi từ vị trí của họ đến cửa hàng mong muốn Khi họ ấn nút định vị, hệ thống sẽ lấy thông tin vị trí Sau khi định vị được vị trí của họ, ứng dụng sẽ chỉ đường từ vị trí đó đến cửa hàng mong muốn trên bản đồ

Trang 26

Cập nhật danh sách cửa hàng yêu thích: Chức năng này giúp thành viên thêm một cửa hàng vào danh sách riêng của mình Khi thành viên tìm thấy một cửa hàng phù hợp với mình và không muốn mất công tìm kiếm vào các lần sau, thành viên có thể cho cửa hàng đó vào danh sách cửa hàng yêu thích Ngoài ra, thành viên cũng có thể xóa cửa hàng đó ra khỏi danh sách

Cập nhật thông tin cửa hàng: Admin có thể thêm, sửa, xóa thông tin về cửa hàng

Quản lý bạn bè:

Tìm kiếm bạn bè: Chức năng này cho phép thành viên tìm kiếm trong danh sách bạn bè Thành viên nhập tên để tìm kiếm người bạn trong danh sách bạn bè của mình

Xóa bạn bè: Chức năng này cho phép thành viên xóa bạn bè khỏi danh sách bạn bè Thành viên chọn người bạn muốn xóa và ấn nút xóa để loại bỏ tên người bạn khỏi danh sách

Gửi lời mời kết bạn: Chức năng cho phép các thành viên kết bạn với nhau Khi muốn kết bạn với một thành viên khác, thành viên cần biết số điện thoại của họ,

và nhập số đó để gửi lời mời

Duyệt lời mời kết bạn: Chức năng cho phép thành viên duyệt lời mời kết bạn Khi có một yêu cầu kết bạn, thành viên có thể xem quyết định chấp nhận hay từ chối lời mời đó

Cập nhật bạn thân thiết: Chức năng cho phép thành viên cập nhật người bạn thành thân thiết Khi cập nhật một người bạn thân thiết, tên người đó sẽ hiển thị trong danh sách bạn thân thiết, giúp thành viên dễ dàng tìm thấy tên người bạn

đó

Trang 27

Quản lý lời mời:

Gửi lời mời: Chức năng cho phép thành viên gửi lời mời đi ăn tới bạn của mình Thành viên gửi lời mời đi ăn đến những thành viên khác có trong danh sách bạn

Duyệt lời mời: Chức năng cho phép thành viên duyệt lời mời đi ăn được gửi cho mình Thành viên nhận được lời mời đi ăn, họ có thể đồng ý hoặc từ chối lời mời đó

Tìm kiếm: Chức năng cho phép thành viên tìm kiếm lời mời trong danh sách lời mời

Nhắc việc: Chức năng cho phép thành viên biết được đến giờ hẹn của lời mời

đã được chấp nhận Khi gần đến thời gian của một lời mời, ứng dụng sẽ thông báo thành viên

Xóa lời mời: Thành viên có thể xóa một lời mời đã được chấp nhận

Quản lý bình luận, đánh giá:

Cập nhật bình luận: Thành viên có thể thêm, sửa, xóa bình luận của mình về cửa hàng Admin có thể xóa, duyệt bình luận về cửa hàng

Cập nhật đánh giá: Thành viên có thể thêm, xóa đánh giá về cửa hàng

3.2 Sơ đồ luồng dữ liệu các mức

3.2.1 Sơ đồ luồng dữ liệu mức khung cảnh

Sau quá trình phân tích, em rút ra sơ đồ luồng dữ liệu mức khung cảnh như Hình 3.2

Trang 29

3.2.2 Sơ đồ luồng dữ liệu mức đỉnh

Thông tin tìm kiếm bạn bè

Thông tin bạn bè

Kết quả lời mời Lời mời kết bạn

Người dùng

Admin Thông tin cập nhật

Thông tin tìm kiếm

Kết quả lời mời

Lời mời

Người dùng

Thông tin cập nhật tài khoản

Thông tin đăng ký/ đăng nhập/ đăng xuất

Người dùng

Thông tin đăng nhập/ xuất

5 Quản lý bình luận đánh giá

1 Quản lý tài khoản

Kết quả đăng ký/ đăng nhập/ đăng xuất

Kết quả đăng nhập/ xuất

3 Quản lý bạn bè

Thông tin xóa bạn bè

4 Quản lý lời mời

Lời mời cần xóa

Kết quả bình luận Kết quả đánh giá

Kết quả cập nhật tài khoản

Kết quả xóa bạn bè

Kết quả xóa lời mời

Danh mục khu vực

Danh mục món ăn

Admin

6 Quản lý danh mục

Danh mục khu vực

Danh mục món ăn

Thông tin cập nhật khu vực Kết quả cập nhật khu vực

Thông tin cập nhật danh mục món ăn Kết quả cập nhật danh mục món ăn

Thông tin tìm kiếm Kết quả tìm kiếm

Trang 30

3.2.3 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tài khoản

Người dùng

Thông tin đăng ký Người dùng

1.2 Đăng ký Kết quả đăng ký

Người dùng Thông tin đăng nhập / xuất 1.1 Đăng nhập/xuất

Kết quả đăng nhập / xuất

1.3 Cập nhật tài khoản Kết quả cập nhật tài khoản

Thông tin cập nhật

Admin Thông tin đăng nhập / xuất

Thông tin tài khoản Kết quả cập nhật

Thông tin đăng ký

Người dùng Kết quả lấy lại mật khẩu

Hình 3.4 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý tài khoản

Trang 31

3.2.4 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý cửa hàng

hàng Thông tin tìm kiếm cửa hàng

Cửa hàng

2.2 Tìm đường Thông tin đường đi

Admin

Thông tin cập nhật cửa hàng

Người dùng

2.3 Cập nhật cửa hàng yêu thích Thông tin cập nhật

Người dùng

2.4 Cập nhật thông tin cửa hàng

Danh mục món ăn

Hình 3.5 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý cửa hàng

Trang 32

3.2.5 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bạn bè

Người dùng

Số điện thoại

Kết quả gửi lời mời

3.1 Gửi lời mời kết bạn

Kết quả tìm kiếm

Bạn cần xóa

3.3 Xóa bạn bè

3.5 Cập nhật bạn bè thân thiết

Trang 33

3.2.6 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý lời mời

Thông tin tìm kiếm Kết quả tìm kiếm

4.5 Xóa lời mời Lời mời cần xóa

4.4 Nhắc việc

4.3Tìm kiếm lời mời

Kết quả gửi lời mời

Người dùng

Người dùng

Hình 3.7 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý lời mời

Trang 34

3.2.7 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý bình luận đánh giá

Thông tin đánh giá

Đánh giá Admin

Kết quả duyệt bình luận

Hình 3.8 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý

bình luận đánh giá 3.2.8 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý danh mục

Admin

6.1 Quản lý danh mục món ăn

Thông tin món ăn

Danh mục món ăn

6.2 Quản lý danh mục khu vực

Danh mục khu vực Kết quả danh mục khu vực

Thông tin tìm kiếm Kết quả tìm kiếm

Kết quả tìm kiếm

Hình 3.9 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý danh mục

Trang 35

CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 4.1 Thiết kế cơ sở dữ liệu

4.1.1 Xác định các tập thực thể

Tập thực thể Người dùng bao gồm các thuộc tính: Mã người dùng, Tên, Số điện thoại, Tên đăng nhập, Mật khẩu, Email, trong đó thuộc tính Mã người dùng là khóa chính

Tập thực thể Cửa hàng bao gồm các thuộc tính: Mã cửa hàng, Địa chỉ, Số điện thoại, Mô tả, Kinh độ, Vĩ độ, Ảnh, trong đó thuộc tính Mã cửa hàng là khóa chính Thuộc tính Ảnh là thuộc tính đa trị

Tập thực thể Bình luận gồm các thuộc tính: Mã bình luận, Nội dung bình luận, Thời gian bình luận, Duyệt, trong đó Mã bình luận là khóa chính

Tập thực thể Đánh giá gồm các thuộc tính: Mã đánh giá, Số điểm cửa hàng đánh giá, trong đó Mã đánh giá là khóa chính

Tập thực thể Lời mời gồm các thuộc tính: Mã lời mời, Nội dung lời mời, Tên người gửi, Tên người nhận, Thời gian, Duyệt, trong đó Mã lời mời là khóa chính

Tập thực thể Danh mục khu vực bao gồm các thuộc tính: Mã khu vực, Tên khu vực, trong đó Mã khu vực là khóa chính

Tập thực thể Danh mục món ăn bao gồm các thuộc tính: Mã danh mục, Tên danh mục, trong đó Mã danh mục là khóa chính

Tập thực thể Admin bao gồm các thuộc tính: Mã admin, Tên đăng nhập, Mật khẩu, trong đó Mã admin là khóa chính

Trang 36

4.1.2 Xác định các mối liên kết giữa các tập thực thể

Duyệt

Hình 4.2 Liên kết giữa hai tập thực thể Người dùng với Người dùng Liên kết Kết bạn giữa tập thực thể Người dùng với Người dùng là N-N như hình 4.2, vì một người dùng có thể kết bạn với nhiều người dùng và một người dùng có thể là bạn của nhiều người dùng Liên kết kết bạn có thuộc tính là Bạn thân thiết và Duyệt

Gửi

Hình 4.3 Liên kết giữa hai tập thực thể Người dùng và Bình luận

Trang 37

Liên kết Gửi giữa tập thực thể Người dùng và tập thực thể Bình luận là liên kết 1-N như hình 4.3, vì một người dùng có thể có nhiều bình luận nhưng một bình luận chỉ có thể của một người dùng

Gửi

Hình 4.4 Liên kết giữa hai tập thực thể Người dùng và Đánh giá

Liên kết Gửi giữa tập thực thể Người dùng và tập thực thể Đánh giá là 1-1 như hình 4.4, vì một người dùng có một đánh giá với một cửa hàng, và một đánh giá chỉ thuộc về một người dùng

Gửi

Hình 4.5 Liên kết gửi giữa gửi hai tập thực thể Người dùng và Lời mời Liên kết Gửi giữa tập thực thể Người dùng và tập thực thể Lời mời là liên kết là 1-N như hình 4.5, vì một người dùng có thể gửi nhiều lời mời nhưng một lời mời chỉ thuộc về một người dùng

Nhận

Hình 4.6 Liên kết nhận giữa nhận hai tập thực thể Người dùng và Lời mời Liên kết Nhận giữa tập thực thể Người dùng và tập thực thể Lời mời là liên kết

là 1-N như hình 4.6, vì một người dùng có thể nhận nhiều lời mời nhưng một lời mời chỉ thuộc về một người dùng

Trang 38

Hình 4.7 Liên kết giữa hai tập thực thể Cửa hàng và Bình luận

Tập thực thể Cửa hàng và tập thực thể Bình luận có liên kết 1-N như hình 4.7,

vì một cửa hàng có thể có nhiều bình luận, nhưng một bình luận chỉ có thể thuộc về một cửa hàng

Gửi

Hình 4.8 Liên kết giữa hai tập thực thể Cửa hàng và Đánh giá

Tập thực thể Cửa hàng và tập thực thể Đánh giá có liên kết 1-1 như hình 4.8, vì một cửa hàng có thể có nhiều đánh giá, và một đánh giá chỉ thuộc về một cửa hàng

Thuộc

Hình 4.9 Liên kết giữa hai tập thực thể Cửa hàng và Danh mục món ăn Tập thực thể Danh mục món ăn và tập thực thể Cửa hàng có liên kết 1-N như hình 4.9, vì một danh mục món ăn có thể có nhiều cửa hàng, nhưng một cửa hàng chỉ có thể thuộc về một danh mục món ăn

Thuộc

Hình 4.10 Liên kết giữa hai tập thực thể Cửa hàng và Danh mục khu vực

Trang 39

Tập thực thể Danh mục khu vực và tập thực thể Cửa hàng có liên kết 1-N như hình 4.10, vì một danh mục khu vực có thể có nhiều cửa hàng, nhưng một cửa hàng chỉ có thể thuộc về một danh mục khu vực

4.1.3 Mô hình thực thể liên kết E-R

Bạn thân thiết Duyệt

Danh mục khu vực

Danh mục món ăn

Thuộc

Thuộc

Admin

Hình 4.11 Mô hình thực thể liên kết ER

Trang 40

Danh_Gia MaDanhGia SoDiem MaCuaHang(FK) MaNguoiDung(FK)

Ban_Be MaNguoiDung MaNguoiBan BanBeThanThiet Duyet

Danh_Muc_Mon_An MaDanhMuc TenDanhMuc

Admin MaAdmin TenDangNhap MatKhau

Hình 4.12 Mô hình quan hệ

Ngày đăng: 22/03/2018, 19:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thông tin, NXB Đại học Quốc gia Hà Nội, 2007 Sách, tạp chí
Tiêu đề: Phân tích và thiết kế hệ thống thông tin
Nhà XB: NXB Đại học Quốc gia Hà Nội
[2] Võ Thành Nhật - Nhật Trung, Tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa, NXB ĐH Khoa học tự nhiên - TP.HCM,2010 Sách, tạp chí
Tiêu đề: Tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa
Nhà XB: NXB ĐH Khoa học tự nhiên -TP.HCM
[3] Đỗ Trung Quân, Cơ sở dữ liệu, NXB Đại học Quốc gia Hà Nội, 2006 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu
Nhà XB: NXB Đại học Quốc gia Hà Nội
[4] Hồ Thuần, Hồ Cẩm Hà, Lý thuyết Cơ sở dữ liệu, NXB Giáo dục Việt Nam, 2005.Tiếng Anh Sách, tạp chí
Tiêu đề: Lý thuyết Cơ sở dữ liệu
Nhà XB: NXB Giáo dục Việt Nam
[1] Andrew Eliasz, “Android Programming”, O’Reilly, O’Reilly Media, 2010 Sách, tạp chí
Tiêu đề: Android Programming
[2] Jason Morris, “Android User Interface Development Beginner’s Guider”, PACKT Pulshing, 2011 Sách, tạp chí
Tiêu đề: Android User Interface Development Beginner’s Guider

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w