Tải bản đầy đủ (.docx) (39 trang)

Ứng dụng bán trà sữa online Android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (591.41 KB, 39 trang )

DANH MỤC BẢNG BIỂU

DANH MỤC HÌNH


MỞ ĐẦU
Kinh doanh online đang ngày càng trở thành trong số những hình thức
kinh doanh phổ biến và được khơng ít người lựa chọn do những ưu điểm tuyệt
vời của nó. Kinh doanh mua bán online đang ngày càng cách tân và phát triển
bởi nhiều ưu điểm vượt trội mà nó đem lại, giúp đơi bên tiết kiệm chi phí, thời
gian cũng như công sức. Ba lý do chung nhất để người Việt Nam chọn mua
sắm trên mạng chính là thuận lợi, dễ tiếp cận và Chi phí. Có đến 62% chấp
nhận rằng mua hàng online giúp tiết kiệm thời điểm. Cùng với đó 55% cho
rằng mua hàng trên mạng thuận tiện hơn ra cửa hàng và có thể mua bất kỳ lúc
nào.
Trong bối cảnh đại dịch COVID-19, khu vực doanh nghiệp xã hội càng
trở nên “nhạy cảm” hơn. Theo kết quả nghiên cứu của Trung tâm Khởi nghiệp
và sáng tạo xã hội thì COVID-19 đã khiến các DNXH giảm doanh thu 66%,
lợi nhuận 69% và nhân sự 32%.
Trên cơ sở kiến thức đã học trên nhà trường và quá trình tìm hiểu trong
thực tế, em đã quyết định chọn đề tài “Thiết kế ứng dụng bán trà sữa online
trên hệ điều hành Android”. Em xin gửi lời cảm ơn chân thành tới cơ Vũ Thị
Hồng Yến đã quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án này
trong suốt thời gian qua.
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một
sinh viên, đồ án này khơng thể tránh khỏi những thiếu sót. Em rất mong nhận
được sự chỉ bảo, đóng góp ý kiến của thầy cơ để em có thể bổ sung, phục vụ
tốt cho công việc thực tế sau này.


CHƯƠNG 1: TỔNG QUAN


1.1 Khảo sát hiện trạng
Mua sắm trực tuyến là một dạng thương mại điện tử cho phép khách
hàng trực tiếp mua hàng hóa hoặc dịch vụ từ người bán qua Internet sử dụng
trình duyệt web. Người tiêu dùng tìm thấy một sản phẩm quan tâm bằng cách
trực tiếp truy cập trang web của nhà bán lẻ hoặc tìm kiếm trong số các nhà
cung cấp khác sử dụng cơng cụ tìm kiếm mua sắm, hiển thị sự sẵn có và giá
của sản phẩm tương tự tại các nhà bán lẻ điện tử khác nhau. Kể từ năm 2016,
khách hàng có thể mua sắm trực tuyến bằng nhiều loại máy tính và thiết bị
khác nhau, bao gồm máy tính để bàn, máy tính xách tay, máy tính
bảng và điện thoại thông minh.
Dịch COVID-19 đang làm người tiêu dùng thay đổi thói quen mua sắm,
việc hạn chế đi đến chỗ đông người đã đem lại cơ hội lớn cho kênh mua sắm
online, đặt hàng từ nhà. Nhiều người tiêu dùng chọn mua sắm online để hạn
chế số lần phải đến các cửa hàng mua sắm trực tiếp, giảm nguy cơ lây nhiễm
dịch bệnh.
Theo tờ báo Công thương – cơ quan ngơn luận của bộ cơng thương, tìm
hiểu về thị trường trong nước thì mua sắm online đang tiếp tục lên ngôi hậu
dịch COVID-19. Giỏ hàng “mùa dịch” được nạp đầy với ba nhóm chính:
thực phẩm cần thiết/tiện lợi, các sản phẩm vệ sinh và sản phẩm giúp tăng
cường sức khỏe. Ngoài ra, với chiến dịch stayhome, những mặt hàng liên
quan đến nhu cầu kết nối, các nhu cầu xã hội như đồ ăn vặt, các sản phẩm
giúp đơn giản hóa việc nấu ăn, sản phẩm chăn sóc cá nhân cũng cho thấy sự
tăng trưởng tích cực. Người tiêu dùng cũng chi tiêu cho các mặt hàng thuộc


về thói quen như: kẹo, cà phê…. đặc biệt là người dân thành thị. Các mơ hình
bán lẻ mới nổi bao gồm siêu thị mi ni, cửa hàng tiện lợi và mua sắm trực
tuyến đóng vai trị quan trọng trong tăng trưởng của nhóm hàng tiêu dùng
nhanh. Trong đó, mua sắm trực tuyến được đánh giá cao ở tính tiện lợi và
“hạn chế tiếp xúc”, siêu thị mi ni được chọn vị trí gần nhà cho các nhu cầu cơ

bản trong một khoảng thời gian ngắn. Đối với các kênh siêu thị và đại siêu thị,
số giao dịch tăng lên đáng kể trước khi lệnh giãn cách và được dự đốn sẽ cịn
tiếp diễn và dần về lại mức bình thường khi nhu cầu tích trữ hàng giảm.
Ngày nay, lý do người tiêu dùng chọn mua sắm trực tuyến gồm: Sự
thuận tiện; hàng hóa phong phúc đa dạng, dễ lựa chọn; nhiều ưu đãi, khuyến
mại. Tuy nhiên, kèm theo đó là những lo ngại như: Sản phẩm chất lượng kém;
vấn nạn hàng giả, hàng nhái; dịch vụ giao hàng, bảo hành kém.
1.2 Mục đích và ý nghĩa của đề tài
1.2.1 Mục đích
Ứng dụng bán trà sữa online chạy trên nền Android được thực hiện dựa
trên mục đích sau:
Giảm thiểu chi phí tổn thất của cửa hàng trong mùa dịch bệnh.
Tăng cơ hội việc làm cho các nhóm đối tượng bị ảnh hưởng khác như
bên vận chuyển.
Đảm bảo tiêu chí về quy định trong mùa dịch COVID-19.
Góp phần vào cơng cuộc chuyển đổi số của quốc gia.
Kích cầu nhu cầu mua sắm của người tiêu dùng.
1.2.2 Ý nghĩa của đề tài
Trước hết, đề tài “Thiết kế ứng dụng bán trà sữa online trên hệ điều
hành Android” là một ứng dụng được xây dựng như một đề tài thể hiện việc
áp dụng được những kiến thức quý báu đã được các thầy cơ của trường Đại
học Cơng Nghiệp Hà Nội nhiệt tình truyền thụ lại cho chúng em. Và đặc biệt
là sự theo dõi và quan tâm giúp đỡ của cô Vũ Thị Hoàng Yến trong suốt thời
gian em thực hiện đề tài này.


Thứ hai là những kinh nghiệm quý báu mà em có được trong q trình
thực hiện đề tài sẽ là hành trang tuyệt với giúp ích rất nhiều cho cơng việc sau
này của mình.
Thứ ba, trong thời đại cơng nghệ thông tin phát triển như vũ bão ngày

nay, công nghệ không ngừng được cải tiến, những công nghệ mới ra đời địi
hỏi người lập trình viên phải cố gắng nghiên cứu và tìm hiểu để áp dụng vào
thực tiễn. Điều này được thể hiện qua sự cố gắng của em khi quyết định thực
hiện đề tài này với công nghệ được coi là phổ biến nhất và được dự báo sẽ
phát triển mạnh mẽ hơn trong tương lại.
Do vậy, em hy vọng sẽ tạo nên một sản phẩm hoàn chỉnh có thể để đáp
lại sự nhiệt tình giúp đỡ từ thầy cô và cả tâm huyết của em khi quyết định
thực hiện đề tài này.
1.3 Nhiệm vụ của đề tài
1.3.1 Về lý thuyết
Đề tài “Thiết kế ứng dụng bán trà sữa online trên hệ điều hành
Android” là một ứng dụng chạy trên điện thoại sử dụng hệ điều hành Android.
Ứng dụng bao gồm:
-

Một hostinger để làm server cho ứng dụng.
Các dữ liệu liên quan đến cửa hàng.
Phần mềm mua sắm online phát triển trên di động hệ điều hành
Android dành cho người tiêu dùng.
Dưới đây là những chức năng chính mà em dự định phát triển ở phiên

bản đầu tiên của ứng dụng này:
Hiển thị các chương trình quảng cáo sản phẩm tới người tiêu dùng.
Khách hàng lựa chọn đồ uống trong thực đơn của cửa hàng.
Khách hàng tải ứng dụng về điện thoại có sử dụng hệ điều hành
Android 4.0 trờ lên.
Khách hàng sử dụng ứng dụng có thể xem danh sách các sản phẩm của
hàng đã cập nhật trong cơ sở dữ liệu.



Khách hàng có thể chọn sản phẩm và đăng ký thông tin để mua, dữ liệu
này sẽ được đưa lên server và nhân viên có thể dựa vào đó liên lạc với khách
hàng,
Ngoài ra, ta sẽ xây dựng một phần mềm quản lý dành cho nhà hàng để
xử lý các thông tin mà khách hàng gửi về từ ứng dụng Android, xử lý các yêu
cầu của khách hàng.
Quản lý danh mục các sản phẩm như cập nhật, sửa, xóa.
Mục tiêu của đề tài là:
-

Khảo sát thực trạng bán các sản phẩm nhanh như nước uống trong mùa

dịch COVID.
- Giúp tăng thêm thu nhập cho nhân viên mùa dịch.
- Xây dựng ứng dụng trên nền tảng Android.
- Xây dựng một server để thuận lợi cho việc mua bán.
1.3.2 Về chương trình
Chương trình thực hiện được các yêu cầu của đề tài tốt nghiệp.
Ứng dụng đã phần nào xây dựng và đáp ứng chức năng chính:
-

Người tiêu dùng tiếp cận được với các chương trình đang và sắp diễn ra

tại cửa hàng.
- Giao diện thân thiện dễ sử dụng.
- Lựa chọn các đồ uống trong thực đơn hiện có tại cửa hàng.
- Thiết kế ứng dụng cho người dùng mua hàng được từ xa.
Mô tả ứng dụng:
-


Hiển thị sản phẩm từ máy chủ về các ứng dụng.
Cho phép người dùng xem chi tiết về sản phẩm.
Người tiêu dùng có thể thêm sản phẩm vào giỏ hàng của mình.

- Máy chủ sẽ nhận thông tin của người tiêu dùng khi đặt hàng thành
công.
1.4 Phương pháp triển khai
Xây dựng ứng dụng bao gồm ứng dụng chạy trên điện thoại và một
phần mềm đọc dữ liệu từ ứng dụng, cung cấp cho ứng dụng các dữ liệu cần
thiết.


Trong đề tài tốt nghiệp lần này, em quyết định thực hiện các phần từ
triển khai một ứng dụng hoàn chỉnh theo các bước sau:
-

Khảo sát lấy ý kiến từ các chủ cửa hàng ở khu vực, người tiêu dùng.
Nghiên cứu công nghệ phát triển ứng dụng chạy trên hệ điều hành

Android.
- Cài đặt máy chủ làm nơi truy xuất dữ liệu.
- Tạo dữ liệu trên máy chủ.
Sau khi hoàn thành phần cài đặt và tạo dữ liệu trên máy chủ, em sẽ
triển khai truy xuất dữ liệu từ máy chủ để sử dụng viết ứng dụng trên hệ điều
hành Android.
Sau đây là danh sách các công nghệ được sử dụng để xây dựng ứng
dụng:
-

Android SDK.

Java.
Php.
Server Localhost.
phpMyAdmin.

- Lunacy.
1.5 Phạm vi đề tài
Ứng dụng được xây dựng và phát triển nhằm kích cầu tiêu dùng của
người dân nhất là trong mùa dịch COVID, tiết kiệm chi phí phát sinh cho
người tiêu dùng cũng như giúp chủ cửa hàng có thể quản lý từ xa tốt hơn, ... .
Vì vậy ứng dụng phù hợp với mọi đối tượng tiêu dùng sử dụng điện thoại
thông minh chạy trên hệ điều hành Android.


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Lý thuyết về Android
2.1.1. Lịch sử Android
Android là một nền tảng phần mềm dựa trên mã nguồn mở Linux OS
cho máy di động, máy tính bảng và những phần mềm trung gian
(middleware). Nó khơng đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay
1 phần mềm trung gian mà nó gồm tất cả.
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó
được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay
mã nguồn mở (Open Handset Alliance). Mục tiêu của liên minh này là nhanh
chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu
tiên của nó chính là nền tảng Android. Android được thiết kế để phục vụ nhu
cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị
cầm tay.

Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile
G1, chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau
đó, Google lại tiếp tục cơng bố sự ra mắt phiên bản Android SDK release
Candidate 1.0.Trong tháng 10 năm 2008, Google được cấp giấy phép mã
nguồn mở cho Android Platform.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến
trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có
thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng


không chỉ được áp dụng cho cho các dịch vụ mà nó cịn được áp dụng cho cả
các thành phần dữ liệu và giao diện người dùng.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được
gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà
không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu
của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm
trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một
bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát
hành một phiên vản vá lỗi 1.1 của hệ điều hành này.Ở cả hai phiên bản 1.0 và
1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng
bàn phím vật lý. Android cố định vấn đề này bằng cách phát hành SDK 1.5
vào tháng Tư năm 2009, cùng với một số tính năng khác. Chẳng hạn như
nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder.
2.1.2. Kiến trúc của Android
“Understanding Android” là cách mà ta tiếp cận lập trình Android và
thấu hiểu kến trúc hệ thống của nó. Chúng ta có thể khơng cần hiểu rõ cấu
trúc của một hệ điều hành nhưng chúng ta có thể lập trình một ứng dụng trên
hệ điều hành đó, đây là điều mà nhà sản xuất muốn khi release SDK với một
framework có sẵn của họ. Như chúng ta biết điều này cũng có mặt tốt và xấu.
Framework là một tầm cao cấp dành cho lập trình viên, nó đều có giới

hạn của nó chúng ta có thể chỉ có thể lập trình những ứng dụng phổ biến
nhưng khơng nên tiến tới những ứng dụng cao cấp đi sâu vào hệ thống của hệ
điều hành.


Hình 2.1: Mơ hình tổng quan các thành phần của hệ điều hành Android
Tầng Linux Kernel:
-

Đây là nhân của hệ điều hành android, mọi xử lý của hệ thống đều phải
thơng qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị
phần cứng như: camera, USB, Wifi, Bluetooth, Display, ... Android dựa
trên Linux phiên bản 2.6 lựa chọn các tính năng cốt lõi như bảo mật,
quản lý bộ nhớ, quản lý tiến trình, mạng stack và các trình điều khiển
phần cứng. Kernal hoạt động như một lớp trừu tượng giữa phần cứng
và phần mềm còn lại của hệ thống.

Libraries:
-

Thư viện hệ thống (System C library)(LibC): thư viện dựa trên chuẩn

C, được sử dụng chỉ bởi hệ điều hành.
- Thư viện Media (Media Libraries): Có nhiều code để hỗ trợ việc phát
và ghi các loại định dạng âm thanh, hình ảnh, video thơng dụng.
- Thư viện web (LibWebCore): Đây là thành phần để xem nôi dung trên
web, được sử dụng để xây dựng phần mềm duyệt web (Android
Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ
mạnh, hỗ trợ được nhiều cơng nghệ mạnh mẽ như HTML5, JavaScript,
CSS, DOM, AJAX, ...

- Surface Manage: quản lý hiển thị 2D và 3D.
- SGL công nghệ 2D
- SQLite: quản lý database của ứng dụng.


-

Free Type: dùng cho hiển thị ảnh, font.
SSL (Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng

dụng trên 1 cổng (socket).
- Open GL/EL: hỗ trợ thư viện tùy chọn 3D tĩnh và động.
Android Runtime:
-

Phần này các thư viện mà một chương trình viết bằng ngơn ngữ Java có
thể hoạt động. Phần này có 2 bộ phân tương tự như hình chạy Java trên
máy tính thường. Thứ nhất là các thư viện lõi (Core Library), chưa các
lớp như JAVA IO, Collections, File Access. Thứ hai là một máy ảo java

(Dalvik Virtual Machine).
- Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của
hệ điều hành android không được chạy bằng JRE (Java Runtime
Environment) của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo
Dalvik (máy ảo dalvik được đặt tên sau khi một nhà phát triển phần
mềm của google tạo ra nó khi đi thăm 1 ngôi làng ở nơi tổ tiên ông sinh
sống) do Google phát triển. Máy ảo Dalvik thực thi cái tập tin dex khác
với Java là chuyển sang dạng bytecode. Định dạng này được tối ưu hóa
cho bộ nhớ tối thiểu.
Application Framework:

-

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú
và sáng tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng,
thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống
báo động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều

hơn nữa.
- Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được
sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để
đơn giản hóa việc sử dụng lại các thành phần. Cơ bản tất cả các ứng
dụng là một bộ các dịch vụ và các hệ thống bao gồm các phần dưới.
- View Manager: Một tập hợp rất nhiều các View có khả năng kế thừa lẫn
nhau để thiết kế phần giao diện ứng dụng như: gridview, tableview, ...


-

Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng

như cung cấp công cụ điều khiển các Activity.
- Telephony Manager: Cung cấp công cụ để thực hiện liên lạc như gọi
điện thoại.
- Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ
thống định vị toàn cầu GPS và Google Maps.
- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện
người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
- Notication Manager: Quản lý việc hiển thị các thơng báo (như báo có
tin nhắn, có e-mail mới)

- Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm
các file hình ảnh, âm thanh, layout, string.
- Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ
các ứng dụng khác hoặc là chia sẻ dữ liệu giữa các ứng dụng đó.
Application:
-

Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành là gọi điện
(phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin

(SMS) ...
- Các ứng dụng được cài thêm như các phần mềm chứng khốn (Stock),
các trị chơi (Game), từ điển, các widget các ứng dụng của bên thứ 3.
- Viết bằng Java, phần mở rộng là .apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine
được dựng lên để phục vụ cho nó. Nó có thể là một Active Program:
Chương trình có giao diện với người sử dụng hoặc là một background:
chương trình chạy nền hay là dịch vụ.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một
thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên
với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép
chạy. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ
thống hoạt động tốt hơn. Các ứng dụng được phân quyền và tự hệ
thống sẽ kill nếu mức ưu tiến thấp.
2.2. Các thành phần cơ bản của ứng dụng Android
Activity:


-


Có thể nói đây là thành phần quan trọng của bất kỳ ứng dụng Android
nào. Activity đảm nhiệm công việc tạo ra một cửa sổ (Window) để
người lập trình đặt lên đó một giao diện thơng qua phương thức
setContentView(View), phương thức này được gọi trong phương thức
@Override onCreate() của class được extends từ Activity.

Hình 2.2: Vịng đời một Activity
-

onCreate(Bundle savedInstanceState): Được gọi khi hoạt động mới
được tạo, tại đây khởi tạo các biến, nạp giao diện layout ..., phương
thức này cũng nhận dữ liệu lưu lại trạng thái hoạt động trước đó (với
mục đích để phục hồi - savedInstanceState). Sau sự kiện này bao giờ

cũng gọi ngay lập tức onStart().
- onStart(): Được gọi ngay trước khi Activity hiển thị trên màn hình.
- onResume(): Được gọi ngay khi Activity bắt đầu có thể tương tác với
người dùng, và Activity nằm trên cùng trong danh sách các Activity của
hệ thống. Sau phương thức này là các chức năng của Activity hoạt động


dựa trên tương tác của người dùng ... , cho đến khi có một nguyên nhân
nào đó mà phương thức OnPause được gọi.
- onPause(): Được gọi khi hệ thống sắp kích hoạt một Activity khác, nếu
bạn quá tải phương thức này, thường để lưu lại dự liệu thật nhanh để hệ
thống cịn kích hoạt Activity khác. Ngay sau phương thức này nó sẽ
gọi onResume() nếu Activity

được kích hoạt lại ngay, hoặc


gọi OnStop() nếu Activity bị ẩn đi.
- onStop(): Được gọi khi nó bị ẩn đi. Sau phương thức này, Activity có
thể gọi onRestart() nếu nó được người dùng kích hoạt lại hoặc
gọi onDestroy() để hết thúc.
- onDestroy(): gọi khi Activity bị hủy hồn tồn (ví dụ gọi finish(), hoặc
người dùng kill Activity).
Service:
-

Là thành phần luôn chạy ẩn trong hệ thống Android mà người dừng
không thể thấy được. Service dùng để cập nhật dữ liệu, đưa ra các cảnh
báo cần thiết, ... ví dụ đơn giản khi ta mở trình duyệt web thì giao diện
hiện tại là trình duyệt cịn giao diện nhạc biến mất nhưng bài đó vẫn
được chạy là nhờ có service.

Content Provider:
-

Content Provider là cơ chế cho phép chia sẻ dữ liệu giữa các ứng dụng
với nhau. Bất kỳ ứng dụng nào đều có thể cung cấp cho ứng dụng khác
khả năng truy cập dữ liệu của mình thông qua Content Provider với các
chức năng thêm, bớt, truy vấn dữ liệu. Việc truy cập này được cung cấp

thông qua URI định nghĩa và cung cấp bởi Content Provicder
- Dữ liệu chia sẻ ở dạng một file hoặc CSDL SQLite. Các ứng dụng gốc
Android cung cấp sẵn nhiều Content Provider cho phép ứng dụng truy
cập dữ liệu như trình danh bạ, quản lý file media. Hiện nay Content
Provider tồn tại trong hệ thống Android với Content Resolver.
Intent:



-

Được sử dụng để truyền các thông báo nhằm khởi tạo một Activity
hoặc Service để thực hiện công việc bạn mong muốn.

Broadcase Receiver:
-

Đây là cơ chế để ứng dụng phản ứng lại với các Broadcast Intent, nó
cần được đăng ký bởi ứng dụng và cấu hình với Intent Filter để biết
được loại Intent nào muốn nhận. Nếu Intent Broadcast từ đâu đó trong
hệ thống phát ra, phù hợp với loại ứng dụng đăng ký thì nó sẽ nhận
được khi chạy. Khi nhận được thì Receiver có 5 giây để hồn thành tác
vụ (như tạo notification chẳng hạn). Broadcast Receiver thi hành ở
background (nền) và khơng có giao diện người dùng.

Notification:
- Đưa ra các thông báo khi ứng dụng android đang được thự thi và không
làm ảnh hưởng đến ứng dụng thực thi.
2.3. Mơ hình Client – Server
2.3.1. Khái niệm
Mơ hình client-server là một mơ hình nổi tiếng trong mạng máy tính,
được áp dụng rất rộng rãi và là mơ hình của mọi trang web hiện có. Ý tưởng
của mơ hình này là máy con (đóng vài trị là máy khách) gửi một u cầu
(request) để máy chủ (đóng vai trị người cung ứng dịch vụ), máy chủ sẽ xử lý
và trả kết quả về cho máy khách.
2.3.2. Nguyên tắc hoạt động của mơ hình Client – Server
Trong mơ hình Client Server, server chấp nhận tấy cả các yêu cầu hợp
lệ từ mọi nơi khác nhau trên mạng, sau đó trả kết quả về máy tính đã gửi yêu

cầu.
Máy tính được coi là máy khách khi chúng làm nhiệm vụ gửi yêu cầu
đến các máy chủ và đợi câu trả lời được gửi về.


Để máy khách và máy chủ có thể giao tiếp được với nhau thì giữa
chúng phải có một chuẩn nhất định, và chuẩn đó được gọi là giao thức. Một
số giao thức được sử dụng phổ biến hiện nay như: HTTPS, TCP/IP, FTP,...
Nếu máy khách muốn lấy được thông tin từ máy chủ, chúng phải tuân
theo một giao thức mà máy chủ đó đưa ra. Nếu yêu cầu đó được chấp nhận thì
máy chủ sẽ thu thập thơng tin và trả về kết quả cho máy khách yêu cầu. Bởi vì
Server - máy chủ ln ln trong trạng thái sẵn sàng để nhận request từ client
nên chỉ cần client gửi u cầu tín hiệu và chấp nhận u cầu đó thì server sẽ
trả kết quả về phía client trong thời gian ngắn nhất.
2.3.3. Ưu và nhược điểm mơ hình Client – Server
Ưu điểm của mơ hình client server là với mơ hình client server thì mọi
thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ
liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thơng tin,…)
với nhiều dịch vụ đa dạng mà mơ hình cũ khơng thể làm được. Mơ hình
client/server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật
hiện đại như mơ hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin
địa lý (GIS)…
Một trong những vấn đề nảy sinh trong mơ hình này đó là tính an tồn
và bảo mật thông tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu
vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng
bị lộ.
2.4. Công cụ quản trị dữ liệu phpMyAdmin
2.4.1. Khái niệm



phpMyAdmin là phần mềm mã nguồn mở được viết bằng ngơn ngữ
PHP nhằm giúp người dùng có thể quản lý cơ sở dữ liệu MySQL thông qua
giao diện web thay vì sử dụng giao diện cửa sổ dịng lệnh (command line
interface). Sử dụng phpMyadmin người dùng có thể thực hiện được nhiều
tác vụ khác nhau như khi sử dụng cửa sổ dòng lệnh. Các tác vụ này bao
gồm việc tạo, cập nhật và xoá các cơ sở dữ liệu, các bảng, các trường, dữ
liệu trên bảng, phân quyền và quản lý người dùng….
2.4.2. Ưu điểm
Tăng hiệu quả công tác quản lý cơ sở dữ liệu:
-

PhpMyAdmin không chỉ được xem là một cơng cụ hồn hảo để duyệt
cơ sở dữ liệu, thực hiện truy vấn SQL, quản lý các đặc quyền người

dùng mà cịn được coi là một cơng cụ quản trị đầy đủ tính năng.
- Sử dụng phpMyAdmin, ta có thể làm việc với một đối tượng, vừa xử lý
các tình huống bất ngờ nảy sinh
Cộng đồng hỗ trợ rộng lớn:
- Vơi tính chất là một mã nguồn mở, phpMyAdmin được phát triển bơi
cộng đồng các lập trình viên trên tồn cầu. Do đó, ai biết lập trình đều
có thể đóng góp mã lệnh của mình
Đa ngơn ngữ.
Hồn tồn miễn phí
2.4.3. Hạn chế
Chính vì phpMyAdmin là một mã nguồn mở nên cũng có một số hạn
chết nhất định về bảo mật. Tuy nhiên phiên bản hiện tại đã được khắc phục
tạm thời lỗi này. Dù vậy, để tránh rủi ro, tốt nhất bạn cũng nên hạn chế truy
cập vào địa chỉ URL của phpMyAdmin từ địa chỉ IP cô định.
Sao lưu dữ liệu chưa tốt. Chức năng export/import còn một số thiếu sót
như là:

-

Nén, mã hóa và những tùy chọn khác: những tệp được xuất bằng
PhpMyAdmin được lưu trữ dưới dạng text files phổ biến. Dạng lưu trữ
này không chỉ khơng an tồn mà cịn chiếm nhiều dung lượng đĩa lớn.


-

Hỗ trợ phương tiện lưu trữ truyền thơng: Với tính chất là một phần
mềm nằm trên web nên PhpMyAdmin chỉ kết nối với người dùng qua
trình duyệt web. Do đó, người dùng chỉ có thể lưu trữ những bản sao
lưu vào những local drive có sẵn trên hệ thống bằng hộp thoại Save As

của trình duyệt.
- Lập kế hoạch: khơng có khả năng tự động xuất database data

CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG
3.1. Phân tích chức năng chính ứng dụng
3.1.1. Hiển thị danh sách thực đơn
Ở màn hình trang trủ của ứng dụng, ta sẽ để hiển thị các thông tin nổi
bật của ứng dụng như quảng cáo, danh mục các sản phẩm mà cửa hàng hiện
có, các sản phẩm giảm giá, hàng nhập mới về.
Với các chức năng hiển thị sản phẩm ở màn hình trang trủ thì ta sẽ để
hiển thị tên sản phẩm.
Trong mỗi mục ở phần thực đơn, nhấn vào nó sẽ sang màn hình khác
hiển thị các sản phẩm có trong thực đơn đó.
3.1.2. Hiển thị chi tiết sản phẩm
Trong màn hình chi tiết sản phẩm, ta sẽ cho hiển thị thông tin chi tiết
cho mỗi sản phẩm, mỗi sản phẩm đều có tên sản phẩm, hình ảnh, giá tiền, mơ

tả sản phẩm, số lượng và có một số sản phẩm sẽ có thêm một số thuộc tính
như kích cỡ, trạng thái.
Người dùng sẽ dựa vào các thông tin trong mô tả để chọn trạng thái,
kích cỡ, sau cùng là chọn số lượng cần mua (mặc định số lượng là 1).


Số tiền cho sản phẩm sẽ được tính bằng số lượng sản phẩm đã chọn
nhân với đơn giá cho mỗi sản phẩm.
3.1.3. Thêm sản phẩm vào giỏ
Trong mỗi màn hình sẽ cho hiển thị nút giỏ hàng góc phải trên của ứng
dụng, giúp người dùng sẽ dàng tương tác với ứng dụng trong việc mua hàng.
Ở chức năng này, người dùng sẽ nhận được thông tin các sản phẩm mà
người dùng đã lựa chọn ở các màn hình khác. Người sử dụng có thể xóa sản
phẩm đã thêm vào giỏ.
Tổng bảng giá cho đơn hàng sẽ được tính bằng tổng số tiền của các sản
phẩm đã chọn.
3.1.4. Chức năng đặt hàng
Người dùng sẽ đặt hàng dựa theo một số thông tin có sẵn như tên người
dùng, số điện thoại, địa chỉ.
Sau khi đặt thành công, dữ liệu sẽ được gửi lên hệ thống, nhân viên có
thể dựa theo dữ liệu trên hệ thống liên lạc lại với người dùng để xác nhận lại
đơn hàng.
3.1.5 Các chức năng của người quản lý bên nhà hàng
Cập nhật các mục sản phẩm hiện có trong cửa hàng.
Cập nhật các quảng cáo mới nhất tới người tiêu dùng.
Cập nhật các chi tiết các sản phẩm phù hợp với tình hình hiện có.
Quản lý danh sách khách hàng đã mua hàng.
Xem danh sách đơn đặt hàng của các khách hàng đã đặt.
3.2. Đặc tả yêu cầu
3.2.1. Hiển thị danh mục sản phẩm

Tác vụ này hiển thị cho khách hàng các danh mục sản phẩm hiện có
trong cửa hàng.
Dựa vào luồng dữ liệu đầu vào là mã sản phẩm, người dùng sẽ vào
được loại sản phẩm.
Danh mục sẽ được hiển thị theo bảng trong cơ sở dữ liệu.


3.2.2. Chọn sản phẩm
Ở đây khách hàng sẽ dựa vào mã sản phẩm, hệ thống sẽ kiểm tra mã
sản phẩm trong bảng dữ liệu để cho ra dữ liệu tương ứng (tên, hình ảnh mơ tả,
kích thước, trạng thái và giá tiền).
Người dùng lựa chọn số sản phẩm, giá tiền sẽ được tính bằng số lượng
nhân với đơn giá sản phẩm.
Khách hàng có thể xóa sản phẩm đã chọn trong giỏ.
3.2.3. Đặt hàng
Tác vụ này dành cho khách hàng muốn đặt hàng.
Thông tin người dùng được định nghĩa theo các thông tin sau:
-

Mã khách hàng.
Tên khách hàng.
Địa chỉ.
Số điện thoại.
Sau khi khách hàng nhập các dữ liệu vào thì hệ thống sẽ kiểm tra tính

hợp lệ trong các dữ liệu được đưa vào:
-

Đối với mã khách hàng, để đảm bảo nó là duy nhất thì người dùng


khơng được nhập mà sẽ do hệ thống cung cấp cho người dùng.
- Tên khách hàng sẽ được người dùng nhập trực tiếp từ bàn phím của
thiết bị và hệ thống sẽ kiểm tra xem đã nhập chuỗi ký tự vào, nếu lỗi sẽ
hiện thông báo cho người dùng biết để khắc phục và sẽ nó sẽ giới hạn
độ dài cho tên khách hàng.
- Địa chỉ cũng sẽ được kiểm tra chuỗi dữ liệu đầu vào và giới hạn độ dài
cho chuỗi nhập vào.
- Số điện thoại sẽ phải nhập theo đúng kiểu dữ liệu và giới hạn trong 10
số theo số điện thoại của việt nam và bắt buộc phải nhập.
Khi người dùng khơng nhập theo đúng tính hợp lệ mà hệ thống đã đặt
ra thì hệ thống sẽ hiển thị thơng báo trực tiếp ra màn hình báo cho người dùng
biết và nhập lại.


Khi thành công ứng dụng sẽ đẩy dữ liệu lên server để thông báo cho
người quản lý biết người đặt hàng và chi tiết đơn hàng.
3.2.4. Quản lý
Tác vụ này thực hiện khi người quản lý muốn đưa thông tin món ăn,
thêm, sửa, xóa khi cần thiết.
Quản lý có thể đăng nhập trên server để cập nhật lại dữ liệu hàng hóa.
Thêm các sản phẩm mới vào danh mục sản phẩm, móc khóa chính của
bảng sang bảng dữ liệu loại sản phẩm hay khi người dùng muốn xóa một sản
phẩm nào đó trong bảng do hết hàng.
Thêm các dữ liệu cho sản phẩm giúp nó chi tiết hơn.
Quản lý được thông tin người dùng và chi tiết đơn hàng khi người dùng
thanh toán.
3.3. Xây dựng cấu trúc cơ sở dữ liệu
3.3.1 Danh sách dữ liệu sơ cấp
Chương trình có 3 bảng dành cho sản phẩm của cửa hàng và 2 bảng
dành cho thông tin khách hàng với chi tiết đơn hàng.

Bảng 3.1: Bảng thực đơn
Stt
1
2
3

Thuộc tính
ID
hinhanh_sanpham
ten_sanpham

Mơ tả
Khóa chính cho bảng.
Hình ảnh thực đơn có trong cửa hàng.
Tên thực đơn có trong cửa hàng.
Bảng 3.2: Bảng sản phẩm

Stt
1
2
3
4
5
6

Thuộc tính
ID
ten_sanpham
GiaM_SanPham
GiaL_SanPham

trangthailanh_sanpham
trangthainong_sanpha
m

Mơ tả
Khóa chính cho bảng.
Tên sản phẩm của cửa hàng.
Giá hiện tại của sản phẩm ở cỡ M.
Giá hiện tại của sản phẩm ở cỡ L.
Trạng thái lạnh của sản phẩm.
Trạng thái nóng của sản phẩm.


7
8
9
10
11

mota_sanpham
Mơ tả sản phẩm .
hinhanh_sanpham
Hình ảnh của sản phẩm
kichcom_sanpham
Kích cỡ M của sản phẩm.
kichcol_sanpham
Kích cỡ L của sản phẩm.
id_thucdon
Khóa chính của bảng thực đơn.
Bảng 3.3: Bảng thông tin khách hàng


Stt
1
2
3
4
5

Thuộc tính
ID
tenkhachhang
sodienthoai
diachi
tongtien

Stt
1
2
3
4

Thuộc tính
ID
tensanpham
giasanpham
chitietdonhang

5

thanhtien


6

ID KhachHang

Mơ tả
Khóa chính cho bảng.
Tên khách hàng khi đặt hàng.
Số điện thoại của khách.
Email của khách.
Tổng số tiền mà khách mà trả.
Bảng 3.4: Bảng chi tiết đơn hàng
Mô tả
Khóa chính cho bảng.
Tên sản phẩm đã đặt.
Giá của sản phẩm.
Bao gồm màu sắc, kích cỡ và số lượng của sản
phẩm.
Tổng số tiền tính bằng cách nhân số lượng với
đơn giá.
Khóa chính của bảng khách hàng.
Bảng 3.5: Bảng quảng cáo

Stt Thuộc tính
Mơ tả
1
ID
Khóa chính của bảng
2
Hinhanh_quangcap Các banner quảng cáo của cửa hàng.

3.2 Thiết kế cơ sở dữ liệu
Bảng 3.6: Bảng dữ liệu sản phẩm trên phpMyadmin
Stt

Tên

Kiểu

Bảng mã đối chiếu

1

ID

Int(11)

2

hinhanh_sanpha
m

Varchar(1000) Utf8_general_ci

Thêm
Khóa chính


3

ten_sanpham


Varchar(500)

Utf8_general_ci

Bảng 3.8: Bảng dữ liệu sản phẩm trên phpMyadmin
Stt Tên
1 ID
2
3
4
5

Kiểu
Int(10)

Bảng mã đối chiếu

Thêm
Khóa
chính

ten_sanpham
GiaM_SanPham
GiaL_SanPham
trangthailanh_sanpham

varchar(500) utf8_general_ci
varchar(500) utf8_general_ci
varchar(500) utf8_general_ci

varchar(1000 utf8_general_ci
)
6 trangthainong_sanpha
varchar(1000 utf8_general_ci
m
)
7 mota_sanpham
varchar(500) utf8_general_ci
8 hinhanh_sanpham
varchar(1000 utf8_general_ci
)
9 kichcom_sanpham
varchar(10)
utf8_general_ci
10 kichcol_sanpham
varchar(10)
utf8_general_ci
11 id_thucdon
int(10)
Bảng 3.2: Bảng dữ liệu khách hàng trên phpMyadmin
Stt

Tên

Kiểu

Bảng mã đối chiếu

1


ID

Int(11)

2

tenkhachhang

Varchar(100)

Utf8_general_ci

3

sodienthoai

Varchar(100)

Utf8_general_ci

4

diachi

Varchar(500)

Utf8_general_ci

5


tongtien

Varchar(100)

Utf8_general_ci

Thêm
Khóa chính

Bảng 3.3: Bảng dữ liệu chi tiết đơn hàng trên phpMyadmin
Stt

Tên

Kiểu

1

ID

Int(10)

2

tensanpham

Varchar(500)

Bảng mã đối chiếu


Thêm
Khóa chính

Utf8_general_ci


3

giasanpham

Varchar(500)

Utf8_general_ci

4

chitietdonhang

Varchar(500)

Utf8_general_ci

5

thanhtien

Varchar(500)

Utf8_general_ci


6

ID KhachHang

Int(10)

Bảng 3.4: Bảng dữ liệu quảng cáo trên phpMyadmin
Stt

Tên

Kiểu

1

ID

Int(11)

Bảng mã đối chiếu

Thêm
Khóa chính

2

hinhanh_quangca Varchar(1000) Utf8_general_ci
o
3.4. Thiết kế chương trình ứng dụng chạy trên hệ điều hành Android
3.4.1 Các Modul chính chương trình.

Đầu tiên, để hiển thị danh mục sản phẩm của cửa hàng ta sẽ xây dựng
một thành phần đại diện cho chúng.
Bảng 3.5: Đối tượng danh mục sản phẩm
Stt
1
2

Thuộc tính
Mơ tả
Image
Hình ảnh sản phẩm
Name
Tên danh mục sản phẩm
Để xây dựng được sản phẩm, ta sẽ tạo lớp với các thuộc tính thể hiện

rõ đặc điểm của sản phẩm.
Bảng 3.6: Đối tượng sản phẩm
Stt
1
2
3
4
5
6
7
8

Thuộc tính
ID
Name

price
Price_sala
Details
Image_A
Image_B
Image_C

Mơ tả
Định danh cho sản phẩm
Tên sản phẩm
Giá sản phẩm hiện tại
Giá gốc của sản phẩm
Mơ tả sản phẩm
Hình ảnh sản phẩm thứ 1
Hình ảnh sản phẩm thứ 2
Hình ảnh sản phẩm thứ 3


9
10
11
12
13
14
15

Image_D
Hình ảnh sản phẩm thứ 4
Size_a
Kích cỡ thứ 1

Size_b
Kích cỡ thứ 2
Size_c
Kích cỡ thứ 3
Color_a
Màu sắc thứ 1
Color_b
Màu sắc thứ 2
Color_c
Màu sắc thứ 3
Vì ta có 1 danh sách các hình ảnh cho nên ta sẽ thêm một thành phần để

quản lý danh sách hình ảnh thuận tiện cho việc hiển thị theo dạng danh sách.
Bảng 3.7: Đối tượng hình ảnh
Stt
1

Thuộc tính
Mơ tả
Image
Hình ảnh của sản phẩm
Sau khi người dùng đặt hàng, ta phải hiện danh sách sản phẩm họ đã

chọn giá tiền phù hợp với số lượng. Xây dựng một thành phần để quản lý
thuận tiện cho sản phẩm bên trong giỏ hàng .
Bảng 3.8: Đối tượng cho đơn hàng
Stt
Thuộc tính
1
ID

2
Image
3
Name
4
Color
5
Size
6
Number
7
Price
3.4.2 Triển khai chương trình

Mơ tả
Định danh cho sản phẩm
Hình ảnh sản phẩm
Tên của sản phẩm
Màu sắc của sản phẩm
Kích cỡ sản phẩm
Số lượng sản phẩm đã chọn
Tổng số tiền phải trả cho sản phẩm

3.4.2.1 Màn hình mở đầu
Màn hình mở đầu hay cịn gọi là màn hình splash. Tại đây ta sẽ gọi các
dữ liệu cần kiểm tra trước khi thực hiện chương trình chính, giao diện cũng
rất đơn giản.



×