N
GUYỄ
N
THAN
H SƠN
XÂY
DỰNG
ỨNG
DỤNG
TMĐT
LAZAD
A
TRÊN
ANDR
OID
2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
NGUYỄN THANH SƠN
XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ LAZADA
TRÊN ANDROID
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
HƯNG YÊN - 2017
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
NGUYỄN THANH SƠN
XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ
LAZADA TRÊN ANDROID
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: KỸ THUẬT PHẦN MỀM
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
HOÀNG QUỐC VIỆT
HƯNG YÊN - 2017
2
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
MỤC LỤC
3
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
DANH SÁCH HÌNH VẼ
4
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
DANH SÁCH BẢNG BIỂU
5
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
DANH SÁCH TỪ VIẾT TẮT
Từ
viết
Từ đầy đủ
Giải thích
tắt
TMĐT
Thương mại điện tử
Hình thức mua sắm online
MVC
Model View Controllers
Mô hình MVC
MVP
Model View Presenter
Mô hình MVP
CSDL
Cơ sở dữ liệu
Cơ sở dữ liệu cho ứng dụng
PHP
Hypertext Preprocessor
Ngôn ngữ lập trình PHP
XAMPP
X + Apache + Mysql + PHP + Perl
Chương trình tạo máy chủ ảo
HTTP
HyperText Transfer Protocol
Giao thức truyền siêu văn bản
JSON
JavaScript Object Noattion
Định dạng trao đổi dữ liệu
6
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
CHƯƠNG 1:
TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Trong thời đại công nghiệp hóa, hiện đại hóa như hiện nay công nghệ thông
tin được coi là một trong những ngành quan trọng cần thiết trong nền kinh tế của
nhiều nước trên thế giới, vì thế công nghệ thông tin ngày càng khẳng định được vị
trí quan trọng của mình trên phạm vi thế giới nói chung và Việt Nam nói riêng. Một
xu hướng mới trong tương lai của thế kỉ 21 đang hướng tới là “Internet of Things”,
tức là tất cả mọi thứ kết nối với nhau qua internet. Đây là xu hướng được đánh giá
là rất có triển vọng, tác động lớn đến công việc, cuộc sống và xã hội con người.
Điều kiện cần đã có, là mạng lưới hạ tầng internet ngày càng phủ rộng khắp trái đất.
Điều kiện đủ là những ứng dụng, thiết bị có sử dụng internet đang ngày được phát
triển và hoàn thiện, hứa hẹn sẽ giúp ích cho con người rất nhiều trong tương lai,
khiến chi phí và thời gian đáp ứng công việc sẽ giảm mà lại cho hiệu quả cao hơn.
Tại Việt Nam – một thị trường mới nổi với dân số gần 100 triệu dân, nhu cầu
mua sắp là cực kỳ lớn, “thượng đế” ngày càng có nhiều yêu cầu hơn trong tiêu
dùng. Nắm bắt được thời thế, sự kết hợp hoàn hảo giữa kinh doanh và công nghệ đã
cho ra đời hình thức mua sắm trực tuyến, đánh dấu một bước cải tiến mới trong
kinh doanh. Mua sắm trực tuyến ngày nay đã được các doanh nghiệp ứng dụng rất
hiệu quả và được ưa chuộng trên khắp thế giới bởi giá trị nó mang lại không chỉ cho
doanh nghiệp mà cả người tiêu dùng.
Theo CBRE Việt Nam, 25% số người tiêu dùng được khảo sát dự định sẽ
mua sắm ít hơn tại cửa hàng thực tế, trong khi 45-50% số người được hỏi cho rằng
họ sẽ mua sắm trực tuyến thông qua máy tính để bàn/máy tính xách tay hay điện
thoại thông minh/máy tính bảng thường xuyên hơn trong 20 năm tới. Thương mại
điện tử (TMĐT) là một phần của mua sắm trực tuyến. Ngày càng có nhiều người
mua sắm như tivi, tủ lạnh, máy giặt, điện thoại,… qua các ứng dụng TMĐT thay vì
đến siêu thị hay cửa hàng tạp hóa như trước kia. Một số ứng dụng TMĐT nổi tiếng
được người dùng yêu thích như: Lazada, Amazon, eBay, Alibaba, Shopee, Sendo.
7
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
Cùng với đó, sự bùng nổ của smartphone (điện thoại thông minh) đang diễn
ra mạnh mẽ tại Việt Nam. Ngày nay, smartphone đã trở thành một trong những công
cụ phổ thông với giá cả phải chăng trải dài khắp các phân khúc từ bình dân đến cao
cấp, ngoài chức năng liên lạc, cùng với sự phát triển của công nghệ, kết nối toàn
cầu, smartphone còn được trang bị nhiều ứng dụng giải trí, định vị, mua sắm, thanh
toán trực tuyến,… Theo thống kê, hệ điều hành Android là nền tảng điện thoại
thông minh phổ biến nhất thế giới với ưu điểm là hệ điều hành không nặng nề, có
khả năng tinh chỉnh cao, cá nhân hóa cao, và giá rẻ. Vì vậy, nền tảng Android được
sử dụng rộng rãi trên toàn thế giới bởi các hãng điện tử điện thoại nổi tiếng như:
Samsung, Sony, HTC, LG, Xiaomi,…. Ngày nay, Android chiếm 75% thị phần điện
thoại thông minh trên toàn thế giới vào thời điểm quý 1 năm 2017, với tổng cộng
500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành
công của hệ điều hành Android cũng là động lực để lập trình ứng dụng của bên thứ
3 trên nền tảng này phát triển mạnh mẽ theo. Android đang và sẽ là mảnh đất màu
mỡ cho các lập trình viên thỏa sức thể hiện mình.
Nắm bắt được những xu thế này, qua quá trình tìm hiểu, khảo sát, đánh giá, và
lấy ý tưởng của ứng dụng TMĐT Lazada của tập đoàn Alibaba, em xin mạnh dạn
lựa chọn đề tài đồ án tốt nghiệp là “Xây dựng ứng dụng thương mại điện tử
Lazada trên Android” với mục đích giúp cho doanh nghiệp quản lý sản phẩm khoa
học, tối ưu hóa kinh doanh, giảm thiểu chi phí từ các kênh cửa hàng phân phối mà
vẫn có thể giới thiệu và quảng bá sản phẩm của mình đến gần hơn với người tiêu
dùng, đồng thời giúp cho người tiêu dùng giảm thời gian, chi phí, công sức đi lại mà
vẫn có thể lựa chọn được những sản phẩm ưng ý.
8
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
1.2 Khảo sát đề tài
Qua khảo sát tìm hiểu, các website/ứng dụng TMĐT hiện nay nói chung và
ứng dụng Lazada nói riêng đều có mô hình xử lý hàng hóa như sau:
Hình 1-1: Quy trình xử lý hàng hóa của Lazada
o
o
o
-
Nhập kho:
Nhà cung cấp hàng cho Lazada chở hàng đến
Nhân viên Lazada kiểm tra hàng, sau đó phân loại, sắp xếp
Nhân viên cập nhật hàng lên ứng dụng Lazada thông qua Webservice
Bán hàng:
o Khách hàng đặt hàng trên ứng dụng Lazada
o Hệ thống chuyển đơn hàng về Webservice để nhân viên xử lý
Đóng gói:
o Nhân viên lấy hàng trong kho theo đơn hàng và đóng gói
o Nhân viên cập nhật lại số lượng hàng trong kho
Vận chuyển:
o Nhân viên giao hàng chuyển hàng theo địa chỉ của khách hàng
o Nhân viên giao hàng mang biên lai về kho để báo cáo
Hậu mãi:
9
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
o
o
o
Nhân viên giải đáp thắc mắc của khách hàng
Xử lý hàng hóa không có người nhận
Xử lý hàng hóa bị khách hàng trả lại
1.3 Mục tiêu đề tài
Vận dụng thành thạo, nắm bắt được ưu và nhược điểm của ngôn ngữ Java.
Xây dựng được ứng dụng TMĐT Lazada gồm có 2 phần: Ứng dụng Lazada
viết cho Android và Webservice quản trị viết bằng ngôn ngữ PHP.
-
-
Ứng dụng Lazada: Dành cho người tiêu dùng
o Đăng ký và đăng nhập
o Tìm kiếm sản phẩm
o Sắp xếp sản phẩm theo các danh mục tương ứng
o Hiển thị các chương trình khuyến mãi
o Xem thông tin sản phẩm
o Bình luận và đánh giá
o Đặt hàng mua sản phẩm
Webservice: Dành cho người quản trị
o Quản lý các danh mục sản phẩm
o Quản lý sản phẩm
o Quản lý đơn hàng
o Quản lý khuyến mại
o Thống kê
1.4 Giới hạn và phạm vi của đề tài
-
Ứng dụng Lazada được viết bằng ngôn ngữ Java trong môi trường Android.
-
Webservice được viết bằng ngôn ngữ PHP.
1.4.1 Môi trường phần cứng
-
CPU: Core i3 hoặc cao hơn.
RAM: tối thiểu 4GB.
HDD: dung lượng tối thiểu trống 2G.
1.4.2 Môi trường phầm mềm
-
Phần mềm: Android Studio, Submit Text, XAMPP hoặc Hosting, VPS,
-
server…
Cơ sở dữ liệu phpMyAdmin.
10
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
1.5 Phương pháp tiếp cận
-
Cách tiếp cận: ứng dụng được viết theo mô hình MVP trên Android.
Sử dụng các phương pháp nghiên cứu:
o Phương pháp đọc tài liệu.
o Phương pháp phân tích các ứng dụng TMĐT hiện có.
o Phương pháp thực nghiệm.
11
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
CHƯƠNG 2:
CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về mô hình MVP
2.1.1 Khái niệm
MVP là một mô hình kiến trúc hướng giao diện người dùng, được thiết kế để
tạo thuận lợi cho việc kiểm thử đơn vị (unit testing) và tăng tính tách biệt giữa tầng
dữ liệu và tầng hiển thị dữ liệu trong mô hình MVP.
Mô hình MVP cho phép tách tầng trình diễn (Presenter) ra khỏi tầng dữ liệu
(Model), vì vậy tương tác với giao diện được tách biệt với cách chúng ta biểu diễn
nó trên màn hình (View), hay nói cách khác, tất cả logic khi người dùng tương tác
được tách ra và đưa vào tầng trình diễn. Thiết kế lý tưởng nhất là với cùng một
logic được áp dụng cho nhiều View khác nhau và hoán đổi được cho nhau.
Hình 2-2: Mô hình MVP
12
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
2.1.2 Cấu trúc mô hình MVP
a) Tầng trình diễn – Presenter
Tầng trình diễn có trách nhiệm như một middle-man giữa View và Model. Nó
lấy dữ liệu từ Model, định dạng và trả về cho View. Nhưng không giống như mô
hình MVC, nó quyết định những gì sẽ xảy ra khi người dùng tương tác với View,
hay nói cách khác nó hàm chứa logic ứng dụng.
b) Tầng logic dữ liệu – Model
Model là tầng xử lí dữ liệu. Lớp này sẽ chịu trách nhiệm lấy dữ liệu từ
database hoặc network một cách bất đồng bộ. Sau đó sẽ trả về dữ liệu cho Presenter.
Trong một ứng dụng với thiết kế kiến trúc tốt, mô hình này sẽ chỉ là một
gateway giữa tầng domain và tầng busines logic. Trong mô hình Clean
Architecture của Uncle Bob, Model sẽ là một interactor thực thi một use case. Để
đơn giản, ở đây Model đơn thuần được nhìn nhận như một data source - cung cấp
dữ liệu chúng ta muốn hiển thị trong giao diện ứng dụng.
c) Tầng giao diện – View
Lớp này chịu trách nhiệm tìm view (bind view), đưa dữ liệu vào view,
animation, kiểm soát các input event của user và gửi cho present các event.
View, thường được implement bởi một Activity (hoặc có thể là một Fragment,
một View... tùy thuộc vào cấu trúc ứng dụng), Activity này sẽ chứa một thuộc tính
là một lớp Presenter. Lý tưởng nhất Presenter nên được cung cấp bởi một
Dependency Injection framewok như Dagger, nhưng trong trường hợp ứng dụng
không sử dụng một thư viện hay framework như vậy ta hoàn toàn có thể tạo ra các
đối tượng Presenter này.
2.1.3 Ưu điểm của mô hình MVP
Trong Android, có một vấn đề phát sinh từ thực tế là các cơ chế xử lý tương
tác trong Android được kết hợp chặt chẽ giữa giao diện người dùng và xử lý, truy
cập dữ liệu. Một ví dụ điển hình là CursorAdapter, đây là sự kết hợp của việc định
13
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
dạng dữ liệu với xử lý tương tác giao diện. Đôi khi trong đó còn bao gồm cả xử lý
dữ liệu ở mức sâu hơn (như tương tác với CSDL) thông qua Cursor.
Việc kết hợp này có thể giúp giảm thiểu lượng code trong ứng dụng cũng như
gộp các xử lý, logic trong ứng dụng vào cùng một nơi. Nhưng đối với một ứng dụng
liên tục phát triển, hay một ứng dụng lớn, việc này khiến cho lượng code trên mỗi
logic trở nên rất lớn, các logic xen lần, chồng chéo lên nhau, rất khó cho việc đọc
hiểu, bảo trì cũng như mở rộng.
Phân tầng, phân lớp ứng dụng có thể giảm đi hiệu năng do ứng dụng cần thêm
nhiều tài nguyên, nhưng tính khả chuyển của ứng dụng cũng tăng gấp nhiều lần.,
không những thế còn mở rộng khả năng cho phép kiểm thử từng phần của ứng dụng
trở nên dễ dàng hơn. Chính vì thế cân nhắc giữa hiệu năng và tính dễ dàng mở rộng,
bảo trì là hết sức quan trọng.
Trong Android, kiểm thử là một vấn đề khó khăn vì mối liên kết chặt chẽ giữa
giao diện, logic và dữ liệu. MVP tách biệt giao diện khỏi dữ liệu, chia ứng dụng ra
thành ít nhất ba lớp khác nhau, từ đó có thể kiểm thử một các độc lập. Với MVP ta
có thể kiểm thử đo đạc một cách tối đa các logic của ứng dụng.
2.1.4 Triển khai MVP trên Android
Có rất nhiều biến thể cũng như phương pháp triển khai MVP, tất cả mọi người
có thể điều chỉnh mô hình này tùy theo nhu cầu và cách họ cảm thấy tốt nhất. Các
mô hình này, về cơ bản khác nhau ở số lượng chức năng mà tầng Presenter đảm
nhận.
Như vậy, chúng ta có nhiều cách triển khai mô hình MVP, và trên thực tế chưa
có một tiêu chuẩn chính xác nào được đưa ra. Tuy nhiên, nhìn chung vai trò của các
tầng không có nhiều thay đổi: View vẫn đảm nhận trình bày, Presenter là nơi chứa
các xử lý đặc trưng của ứng dụng, đảm trách cách Model được thao tác và thay đổi
như thế nào bởi giao diện người dùng. Một điểm đáng chú ý là Presenter có khả
năng thao tác trực tiếp lên View.
14
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
2.1.5 So sánh MVP và MVC
Điểm khác biệt cơ bản của 2 mô hình MVC và MVP là sự khác nhau về vai trò
của Presenter (MVP) và Controller (MVC), nó cũng dẫn đến sự khác nhau về vai
trò của View. Trong MVP, sự hiện diện của Controller đã bị loại bỏ, thay vào đó,
việc xử lý các dữ liệu input được View đảm nhận và chuyển cho Presenter khi có
yêu cầu tương tác đến Model.
Các mô hình MVP được dựa trên mô hình MVC. Các Presenter (MVP) và
Controller (MVC) có vai trò gần tương tự nhau. Chúng có trách nhiệm giao tiếp
giữa Model và View. Điều đó nói rằng, Controller (MVC) không quản lý Model và
View như Presenter (MVP).
Hình 2-3: So sánh MVP và MVC
Trong mô hình MVC, tầng View có phần thông minh và có thể lấy dữ liệu trực
tiếp từ Model. Trong các mô hình MVP, View là hoàn toàn thụ động và dữ liệu luôn
được phân phối đến các View theo Presenter. Controllers trong MVC cũng có thể
được chia sẻ giữa nhiều View. Ngược lại, trong MVP, View và Presenter có mối
quan hệ một-một, do đó, một Presenter được gắn với một View.
Những khác biệt về cách hoạt động làm mô hình MVP đảm bảo tính tách biệt
giữa tầng dữ liệu và tầng hiển thị, và nó cũng làm tăng đáng kể khả năng kiểm thử
của ứng dụng từ việc tách biệt đó.
15
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
2.2 Tổng quan về PHP
Trong đề tài này, webservice quản trị sẽ được viết bằng ngôn ngữ PHP. Vì vậy
sinh viên thực hiện đề tài cần tìm hiểu về ngôn ngữ này.
2.2.1 Khái niệm
PHP (viết tắt của Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản
(scripting language), một loại mã lệnh chủ yếu được dùng để phát triển các trang
web động. PHP là ngôn ngữ mã nguồn mở. Khác với các ngôn ngữ client-side, như
Javascript, mã lệnh PHP được thực thi ở phía server sau đó mã HTML, được trả về
cho trình duyệt (client). Cú pháp PHP được vay mượn nhiều từ C và Java, nên có
nhiều điểm tương đồng với ngôn ngữ C/C++.
PHP hỗ trợ rất nhiều cơ sở dữ liệu như: MySQL, Informix, Oracle, Sybase,
Solid, PostgreSQL, Generic ODBC…
2.2.2
Lịch sử phát triển
PHP mà chúng ta biết đến ngày nay là sự kế thừa của một sản phẩm có tên là
PHP/FI. Được viết bởi Rasmus Lerdorf, bản PHP đầu tiên là một tập hợp đơn giản
các Common Gateway Interface (CGI) – một chuẩn giao tiếp giữa client và server –
nhị phân viết bằng ngôn ngữ C. Ban đầu, Rasmus sử dụng nó để theo dõi người
dùng truy cập vào hồ sơ cá nhân trên internet của mình. Vì vậy, ông đặt tên nó là
“Personal Home Page Tools”. Theo thời gian, nhiều tính năng mới được thêm vào,
và Rasmus đã viết lại PHP Tools này, tạo ra một công cụ lớn hơn và phong phú hơn
về tính năng. Mô hình mới này có khả năng tương tác với cơ sở dữ liệu, và hơn nữa,
nó giúp cho người dùng, có thể tạo ra một ứng dụng web động, ví dụ như
guestbooks. Tháng 6/1995, Rasmus public mã nguồn của PHP Tools ra cộng đồng,
cho phép các nhà phát triển có thể sử dụng và phát triển nó một cách miễn phí.
Tháng 9/1995, Rasmus mở rộng PHP, thêm vào công cụ có tên là FI (Forms
Interpreter), và một số chức năng như chúng ta biết ngày nay. Nó có các biến kiểu
16
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
Perl và cú pháp cho phép nhúng mã HTML. Cú pháp này, tương tự Perl, nhưng hạn
chế hơn, đơn giản và có phần không phù hợp. Trong thực tế, để nhúng mã lệnh
PHP/FI vào một tập tin HTML, các lập trình viên phải sử dụng các comment
HTML. Và mặc dù phương pháp này không được hoàn toàn đón nhận, FI vẫn tiếp
tục phát triển và đem về lợi nhuận thương mại.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút
được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã
được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet.
Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của
dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời
gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó
đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0, và tiếp sau đó là PHP 4,
PHP 5.
2.2.3 Ưu điểm của PHP
PHP chủ yếu tập trung vào kịch bản phía máy chủ, vì vậy có thể làm bất cứ
điều gì mà các chương trình CGI khác có thể làm. Chẳng hạn như thu thập dữ liệu,
tạo ra các trang web động, gửi và nhận cookie… Tuy nhiên, PHP có thể làm nhiều
hơn như vậy.
Có ba lĩnh vực chính mà mã PHP được sử dụng:
-
Kịch bản phía máy chủ (Server-side scripting). Đây là mục tiêu chính mà PHP
hướng tới. Để làm được điều này, cần 3 công cụ sau: trình thông dịch PHP, web
server và trình duyệt web. Phải chạy web server (đã được cài đặt PHP), sau đó chạy
file PHP của mình, và cuối cùng là tận hưởng thành quả mà web server trả về trên
trình duyệt.
17
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
-
Command line scripting (kịch bản cho Command line): chúng ta có thể chạy một
kịch bản PHP mà không cần máy chủ hay trình duyệt web nào. Để chạy kịch bản
PHP với Command line, bạn chỉ cần duy nhất 1 thứ, đó là trình thông dịch PHP.
Loại kịch bản này rất lý tưởng cho các tác vụ được chạy một cách tự động, theo một
lịch trình được định sẵn, bằng cách sử dụng cron (trên Linux) hoặc Task Scheduler
(trên Windows).
-
Dùng để viết ứng dụng desktop: tiện ích mở rộng (extension) của PHP, cho phép
người dùng tạo ra các ứng dụng desktop với giao diện đồ họa khá bắt mắt.
PHP có thể chạy được trên tất cả các hệ điều hành, bao gồm cả Linux, nhiều
phiên bản của Unix (bao gồm cả HP-UX, Solaris và OpenBSD), Microsoft
Windows, Mac OS X, RISC OS, và nhiều hệ điều hành khác. PHP cũng đã hỗ trợ
cho hầu hết các máy chủ web ngày nay (bao gồm Apache, IIS và nhiều máy chủ
web khác). Vì vậy, dễ dàng tự do lựa chọn một hệ điều hành và một máy chủ web.
Hơn nữa, có thể lựa chọn sử dụng lập trình hướng thủ tục, hoặc lập trình hướng đối
tượng (OOP – Object Oriented Program) bởi OOP đã được hỗ trợ từ PHP 5 trở đi,
hoặc hỗn hợp cả hai.
Với PHP, khả năng tạo dữ liệu đầu ra HTML là không giới hạn, có thể xuất
văn bản, hình ảnh, tập tin PDF, audio hay thậm chí cả phim flash. PHP có thể tự
động tạo (autogenerate) những tập tin này, lưu chúng trong hệ thống tập tin và tạo
thành một bộ nhớ cache phía máy chủ cho trang web.
Một trong những tính năng mạnh nhất và quan trọng nhất của PHP là hỗ trợ
một loạt các hệ quản trị cơ sở dữ liệu (CSDL), như MySql, MSSQL, mSQL,
PostgreSQL, SQLite… Và tương ứng với mỗi hệ quản trị đó, là một driver để kết
nối PHP với chúng, ví dụ ODBC cho MSSQL…
PHP cũng đã hỗ trợ giao tiếp với các dịch vụ sử dụng các giao thức khác
nhau như LDAP, IMAP, SNMP, NNTP, POP3, COM… và nhiều giao thức khác.
18
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
PHP cũng hỗ trợ WDDX, giúp trao đổi dữ liệu giữa hầu hết các ngôn ngữ lập trình
web.
Kết luận: Với những tính năng ưu việt của mình, PHP vẫn, sẽ và đang là một trong
những ngôn ngữ lập trình phổ biến nhất ngày nay, được các lập trình viên rất ưa
chuộng, và sử dụng rộng dãi trên toàn thế giới.
2.3 Công cụ mã nguồn mở phpMyAdmin
Trong phạm vi đề tài, sinh viên thực hiện sẽ lưu dữ liệu trong phpMyAdmin.
2.3.1 Khái niệm
phpMyAdmin là một công cụ nguồn mở miễn phí được viết bằng PHP nhằm
giúp người dùng có thể quản lý cơ sở dữ liệu MySQL thông qua một trình duyệt
web thay vì sử dụng giao diện cửa sổ dòng lệnh (command line interface). Nó có
thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các
trường hoặc bản ghi, thực hiện báo cáo SQL, hoặc quản lý người dùng và cấp phép .
Sử dụng phpMyAdmin giúp tăng hiệu quản lý cơ sở dữ liệu. Khi làm việc
với phpMyadmin chúng ta sẽ thấy được hiệu quả tăng lên đáng kể so với sử dụng
cửa sổ dòng lệnh. phpMyAdmin được thiết kế để giúp thực hiện các công việc phổ
biến như xem danh sách các cơ sở dữ liệu trên server, xem cấu trúc của một bảng,
chèn dữ liệu vào bảng, thay đổi cấu trúc bảng một cách nhanh chóng. Có thể thấy
được điều này khi quan sát 1 giao diện cụ thể:
19
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
Hình 2-4: Giao diện phpMyAdmin
Với giao diện trên thì người dùng sẽ nhanh chóng biết được có bao nhiêu
database được tạo ra trên máy chủ bằng cách nhìn vào khung tay trái. Khi nhập dữ
liệu người dùng cũng có thể biết được kiểu dữ liệu phải nhập vào cho từng trường
để tránh việc nhập dữ liệu không chính xác. Những tiện ích trên không có trong cửa
sổ dòng lệnh.
Ngoài việc cung cấp 1 giao diện sử dụng trình duyệt web thân thiện với
người dùng thì phpMyAdmin còn có thêm rất nhiều tính năng vượt trội so với cửa
sổ dòng lệnh, có thể thực hiện được các tác vụ quản lý cơ sở dữ liệu thông
qua phpMyAdmin. Tuy nhiên không chỉ dừng lại ở các tác vụ thông thường mà bạn
có thể thực hiện được với cửa sổ dòng lệnh, phpMyAdmin còn giúp người dùng có
thể xem được thiết kế của database một cách trực quan. Chức năng này còn được
gọi là design view.
2.3.2 Tính bảo mật của phpMyAdmin
Cũng giống các công cụ mã nguồn mở khác phpMyAdmin được phát triển bởi
cộng đồng các lập trình viên trên thế giới. Điều này có nghĩa là bất cứ ai biết lập
20
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
trình đều có thể đóng góp mã lệnh của mình để giúp cải tiến phần mềm này. Chính
vì tính mở của nó nên trong một phiên bản của phpMyAdmin trước đây đã xuất
hiện các lỗi bảo mật khi cho phép hacker truy cập vào database mà không cần sử
dụng mật khẩu. Với phiên bản hiện tại thì lỗi bảo mật này đã được khắc phục và
hiện nay thì người ta vẫn chưa phát hiện ra được lỗi bảo mật đáng kể nào của phần
mềm này. Tuy nhiên thông thường thì các nhà quản trị cơ sở dữ liệu cũng đều hạn
chế việc truy cập vào địa chỉ URL của phpMyadmin cho những IP nhất định để
tránh những rủi ro có thể xảy ra với database.
Giới thiệu về chuỗi JSON
2.3.3 Khái niệm chuỗi JSON
JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu
tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có
thể đọc được, có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ
dàng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều
nên tính ứng dụng của nó hiện nay rất là phổ biến.
JSON là định dạng trao đổi dữ liệu văn bản dung lượng nhẹ. Cú pháp của
JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key và value, điều này
tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó.
2.3.4 Cấu trúc chuỗi JSON
- Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}.
- Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}.
- Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để
ngăn cách.
- Các key của JSON nên đặt chữ cái không dấu hoặc số, dấu _ và không có
khoảng trắng., ký tự đầu tiên không nên đặt là số. Điều này rất giống với
nguyên tắc đặt tên biến trong PHP.
21
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
Hình 2-5: Ví dụ chuỗi JSON
Chuỗi JSON ví dụ ở trên lưu thông tin người dùng có username là son123,
email là , tuổi là 22, địa chỉ là Hải Dương.
2.3.5 Các trường hợp nên dùng JSON
Lưu trữ dữ liệu đơn thuần. Đó là khi lưu trữ dữ liệu dưới dạng metadata ở phía
server. Chuỗi JSON sẽ được lưu vào database và sau đó khi cần dữ liệu thì sẽ được
giải mã. Ví dụ với PHP, cung cấp các hàm liên quan đến JSON để mã và giải mã là
json_encode và json_decode. Phương pháp này cũng tương tự như sử dụng tính năng
serialize và unserialize của PHP. Nhưng trong khi serialize và unserialize sử dụng
với cả dữ liệu và biến, tức là phụ thuộc vào ngôn ngữ lập trình là PHP và dĩ nhiên
không thể transfer sang ngôn ngữ lập trình khác để unserialize được. Vì vậy, nếu dữ
liệu chỉ đơn thuần là dữ liệu cơ bản (chuỗi kí tự, số…) thì bạn hoàn toàn không nên
sử dụng serialize mà nên sử dụng JSON. Sử dụng JavaScript, ActionScript để xử lý
thông tin trả về từ phía server. Rất nhanh và rất dễ dàng.
22
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
CHƯƠNG 3:
NỘI DUNG THỰC HIỆN
3.1 Xây dựng kiến trúc hệ thống
3.1.1 Xác định yêu cầu hệ thống
Từ dữ liệu thu thập được trong quá trình khảo sát, có thể xác định được, ứng
dụng sẽ được chia thành 2 phần và gồm những chức năng chính sau đây:
- Phần Android (Ứng dụng Lazada)
o Đăng ký và Đăng nhập
o Sắp xếp sản phẩm theo các danh mục tương ứng
o Tìm kiếm sản phẩm
o Thể hiện các chương trình khuyến mại
o Xem thông tin sản phẩm
o Bình luận và đánh giá
o Đặt hàng mua sản phẩm
- Phần Webservice (Quản trị nội dung cho ứng dụng Lazada)
o
Quản lý các danh mục sản phẩm
o
Quản lý sản phẩm
o
Quản lý đơn hàng
o
Quản lý khuyến mại
o
Thống kê
3.1.2
Phân tích yêu cầu hệ thống
a) Phần Android
- Đăng ký:
Ứng dụng Lazada là ứng dụng mua hàng trực tuyến, ngoài mua được hàng,
khách hàng có thể sử dụng các tiện ích khác của ứng dụng, vì vậy ứng dụng
yêu cầu khách hàng phải xác thực thông tin thông qua hình thức đăng nhập tài
khoản. Khách hàng cần đăng ký tài khoản trên ứng dụng, bao gồm: họ tên, tên
đăng nhập (có định dạng là một email) và mật khẩu (yêu cầu có từ 6 ký tự, có
cả chữ thường, chữ hoa và số). Khách hàng chưa đăng nhập vẫn được tìm
kiếm và xem thông tin các sản phẩm, bình luận (tên người bình luận sẽ là tên
thiết bị) và đặt hàng sản phẩm của Lazada.
-
Đăng nhập:
23
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
Khách hàng sử dụng tài khoản đã đăng ký để đăng nhập vào ứng dụng. Khi
đăng nhập vào ứng dụng, khách hàng có thể sử dụng tất cả tiện ích của ứng
dụng.
- Sắp xếp sản phẩm theo các danh mục tương ứng:
Ứng dụng sẽ trình bày sản phẩm một cách khoa học đế giúp tiêu dùng dễ
dàng tìm kiếm. Các sản phẩm cùng một dành mục hàng hóa sẽ được để chung
vào danh mụ cha như: Điện tử, Thời trang, Nhà cửa và đời sống…, các sản
phẩm cùng thương hiệu sẽ được để chung vào danh mục thương hiệu đó như:
Apple, Samsung, Sony, LG, HTC.…
- Tìm kiếm sản phẩm:
Khách hàng có thể tìm kiếm các sản phẩm mong muốn bằng cách nhập tên
sản phẩm vào “ô tìm kiếm”. Ứng dụng sẽ trẻ về danh sách sản phẩm dưới dạng
list (nếu tìm thấy) để giúp khách hàng dễ dàng trong việc tìm kiếm.
- Hiển thị các chương trình khuyến mãi:
Chương trình khuyến mãi là một hình thức không thể thiếu đối với mỗi
websites hay ứng dụng TMĐT, Lazada cũng không phải là một ngoại lệ. Ứng
dụng Lazada sẽ hiển thị các chương trình khuyến mãi, giảm phần trăm giá sản
phẩm, giúp kích cầu mua sắm, xả hàng tồn kho, hàng đã lỗi thời.
- Xem thông tin sản phẩm:
Khi khách hàng chọn vào một danh mục sản phẩm (hay danh mục thương
hiệu), hệ thống sẽ hiển thị danh sách các sản phẩm tương ứng, khách hàng
click chọn sản phẩm mong muốn để xem thông tin về sản phẩm đó. Khi khách
hàng click vào một sản phẩm, hệ thống sẽ hiển thị ra các thông tin của sản
phẩm đó như tên sản phẩm, hình ảnh, giá bán, thông tin, thông số kỹ thuật, các
bình luận, đánh giá của các khách hàng khác (nếu có).
-
Bình luận và đánh giá sản phẩm:
Khách hàng có thể bày tỏ ý kiến của mình bằng cách bình luận và đánh giá
sản phẩm. Bình luận gồm: Tiêu đề bình luận, nội dung bình luận, số rank (số
sao đánh giá, tối thiểu là 0 sao, tối đa là 5 sao). Với người dùng chưa đăng
nhập, tên người đánh giá sẽ mặc định là tên thiết bị, nếu đã đăng nhập thì tên
người bình luận đánh giá sẽ là tên khi người dùng đăng ký tài khoản.
24
Xây dựng ứng dụng thương mại điện tử Lazada trên Android
-
Đặt hàng mua sản phẩm:
Khi thấy ưng ý sản phẩm, khách hàng sẽ bỏ sản phẩm đó vào “Giỏ hàng”.
Giỏ hàng có thể chứa nhiều sản phẩm, tại đây, khách hàng có thể tùy chỉnh lại
giỏ hàng của mình (loại bỏ sản phẩm, chỉnh sửa số lượng sản phẩm). Khi tiến
hành thanh toán, Lazada yêu cầu khách hàng nhập đầy đủ thông tin như: họ
tên, số điện thoại, địa chỉ và hình thức mua hàng (trả bằng thẻ hoặc nhận hàng
rồi thanh toán). Đơn hàng sẽ được chuyển về kho của Lazada để xem xét và
giao hàng.
b) Phần webservice
Ứng dụng LAZADA lấy dữ liệu từ webservice, vì vậy cơ sở dữ liệu được
lưu trên nền web chứ không lưu trên SQLite, người quản trị Admin đăng nhập
và quản lý nội dung trên Webservice. Tài khoản của quản trị viên mới có quyền
đăng nhập vào webservice, tài khoản của khách hàng chỉ có quyền đăng nhập
vào ứng dụng Lazada.
- Quản lý các danh mục sản phẩm:
o Thêm: thêm danh mục sản phẩm mới gồm: tên danh mục và mã loại
-
cha
o Xóa: xóa danh mục sản phẩm
Quản lý sản phẩm:
o Thêm: Thêm các sản phẩm mới vào các danh mục mặt hàng tương ứng,
gồm các thông tin cơ bản như: tên sản phẩm, giá, ảnh, thông tin mô tả,
thông số kỹ thuật, thương hiệu, số lượng, người đăng (mặc định là
người quản trị đang đăng nhập).
o Cập nhật: Người quản trị chỉnh sửa lại các thông tin của sản phẩm như:
tên sản phẩm, giá, ảnh, thông tin mô tả, thông số kỹ thuật, thương hiệu,
-
số lượng.
o Xóa: Xóa các sản phẩm không còn kinh doanh.
Quản lý đơn hàng:
o Chờ kiểm duyệt: là trạng thái mặc định khi có đơn hàng mới.
o Đã hủy: hủy các đơn hàng không hợp lệ (đơn hàng spam, địa chỉ không
cụ thể, số điện thoại không đúng).
o Đang giao hàng: Nhân viên giao hàng đang trong quá trình đi giao hàng
cho khách hàng đó.
25