1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo đồ án tốt nghiệp đề tài Xây dựng ứng dụng Lazada trên android

74 3,2K 39

Đ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 74
Dung lượng 3,81 MB

Nội dung

Báo cáo đồ án tốt nghiệp đại học Đề tài: xây dựng ứng dụng thương mại điện tử Lazada trên android Báo cáo mô tả quá trình khảo sát đề tài, mô tả ứng ứng, mô tả cơ sở dữ liệu ứng dụng lazada clone, các công nghệ sử dụng để viết ứng dụng (ngôn ngữ java, mô hình MVP,...) Báo cáo đã được căn chỉnh đúng chuẩn Đề tài tốt nghiệp đại học.

Trang 1

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

Trang 3

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 TINCHUYÊ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

Trang 4

MỤC LỤ

Trang 5

MỤC LỤC 3

DANH SÁCH HÌNH VẼ 5

DANH SÁCH BẢNG BIỂU 7

DANH SÁCH TỪ VIẾT TẮT 8

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 9

1.1 Lý do chọn đề tài 9

1.2 Khảo sát đề tài 11

1.3 Mục tiêu đề tài 12

1.4 Giới hạn và phạm vi của đề tài 12

1.4.1 Môi trường phần cứng 13

1.4.2 Môi trường phầm mềm 13

1.5 Phương pháp tiếp cận 13

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14

2.1 Tổng quan về mô hình MVP 14

2.1.1 Khái niệm 14

2.1.2 Cấu trúc mô hình MVP 15

2.1.3 Ưu điểm của mô hình MVP 15

2.1.4 Triển khai MVP trên Android 16

2.1.5 So sánh MVP và MVC 17

2.2 Tổng quan về PHP 18

2.2.1 Khái niệm 18

2.2.2 Lịch sử phát triển 18

Trang 6

2.2.3 Ưu điểm của PHP 19

2.3 Công cụ mã nguồn mở phpMyAdmin 21

2.3.1 Khái niệm 21

2.3.2 Tính bảo mật của phpMyAdmin 22

2.4 Giới thiệu về chuỗi JSON 22

2.4.1 Khái niệm chuỗi JSON 22

2.4.2 Cấu trúc chuỗi JSON 23

2.4.3 Các trường hợp nên dùng JSON 23

CHƯƠNG 3: NỘI DUNG THỰC HIỆN 24

3.1 Xây dựng kiến trúc hệ thống 24

3.1.1 Xác định yêu cầu hệ thống 24

3.1.2 Phân tích yêu cầu hệ thống 24

3.2 Phân tích thiết kế hệ thống 28

3.2.1 Biểu đồ Use case 28

3.2.2 Biểu đồ lớp 37

3.2.3 Phân tích và thiết kế CSDL 39

3.2.4 Mô hình quan hệ dữ liệu 46

3.3 Thiết kế giao diện 47

3.3.1 Giao diện ứng dụng 47

3.3.2 Giao diện Webservice 58

CHƯƠNG 4: KẾT LUẬN 65

4.1 Kết quả đạt được của đề tài 65

4.2 Hạn chế của đề tài 65

4.3 Hướng phát triển của đề tài 65

Trang 7

TÀI LIỆU THAM KHẢO 67

Trang 8

DANH SÁCH HÌNH VẼ

Hình 1-1: Quy trình xử lý hàng hóa của Lazada 11

Hình 2-1: Mô hình MVP 14

Hình 2-2: So sánh MVP và MVC 17

Hình 2-3: Giao diện phpMyAdmin 21

Hình 2-4: Ví dụ chuỗi JSON 23

Hình 3-1: Biểu đồ use case mức tổng quát 30

Hình 3-2: Biểu đồ use case Đăng nhập 31

Hình 3-3: Biểu đồ use case Quản lý danh mục sản phẩm 32

Hình 3-4: Biểu đồ use case Quản lý sản phẩm 32

Hình 3-5: Biểu đồ use case Quản lý đơn hàng 33

Hình 3-6: Biểu đồ use case Thống kê 34

Hình 3-7: Biểu đồ use case Tìm kiếm sản phẩm 34

Hình 3-8: Biểu đổ use case Xem sản phẩm 35

Hình 3-9: Biểu đồ use case Bình luận và đánh giá 35

Hình 3-10: Biểu đồ use case Đặt hàng sản phẩm 36

Hình 3-11: Biểu đồ lớp 37

Hình 3-12: Mô hình quan hệ dữ liệu 46

Hình 3-13: Giao diện chính của ứng dụng 47

Hình 3-14: Giao diện đăng ký 48

Hình 3-15: Giao diện đăng nhập 49

Hình 3-16: Giao diện danh mục điện tử 50

Hình 3-17: Giao diện danh mục khuyến mại 51

Hình 3-18: Giao diện sản phẩm theo thương hiệu 52

Trang 9

Hình 3-19: Giao diện thông tin sản phẩm 53

Hình 3-20: Giao diện bình luận và đánh giá 54

Hình 3-21: Giao diện giỏ hàng 55

Hình 3-22: Giao diện thanh toán 56

Hình 3-23: Giao diện tìm kiếm sản phẩm 57

Hình 3-24: Giao diện đăng nhập webservice 58

Hình 3-25: Giao diện chính của webservice 59

Hình 3-26: Giao diện quản lý danh mục 60

Hình 3-27: Giao diện quản lý sản phẩm 61

Hình 3-28: Giao diện thêm sản phẩm 62

Hình 3-29: Giao diện quản lý đơn hàng 63

Hình 3-30: Giao diện phê duyệt đơn hàng 64

Trang 10

DANH SÁCH BẢNG BIỂU

Bảng 3-1: Danh sách các Actor 28

Bảng 3-2: Danh sách các Use case 29

Bảng 3-3: Các lớp của biểu đổ lớp 38

Bảng 3-4: Các đối tượng và thuộc tính của đối tượng 39

Bảng 3-5: Bảng Loại sản phẩm 40

Bảng 3-6: Bảng Thương hiệu 40

Bảng 3-7: Bảng Sản phẩm 41

Bảng 3-8: Bảng Chi tiết sản phẩm 42

Bảng 3-9: Bảng Nhân viên 42

Bảng 3-10: Bảng Loại nhân viên 43

Bảng 3-11: Bảng Khuyến mại 43

Bảng 3-12: Bảng Chi tiết khuyến mại 44

Bảng 3-13: Bảng Đánh giá 44

Bảng 3-14: Bảng Hóa đơn 45

Bảng 3-15: Bảng Chi tiết hóa đơn 45

Trang 11

MVP Model View Presenter Mô hình MVP

CSDL Cơ sở dữ liệu Cơ sở dữ liệu cho ứng dụngPHP Hypertext Preprocessor Ngôn ngữ lập trình PHPXAMPP X + Apache + Mysql + PHP + Perl Chương trình tạo máy chủ ảoHTTP HyperText Transfer Protocol Giao thức truyền siêu văn bảnJSON JavaScript Object Noattion Định dạng trao đổi dữ liệu

Trang 12

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ôngtin được coi là một trong những ngành quan trọng cần thiết trong nền kinh tế củanhiề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áttriể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ầumua 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êudù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 trongkinh doanh Mua sắm trực tuyến ngày nay đã được các doanh nghiệp ứng dụng rấthiệ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ỉ chodoanh 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ệnthoạ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ườimua 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

Trang 13

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ữngcô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ốitoà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ệnthoạ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ếngnhư: 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ớitổ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ủabê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êudù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 ý

Trang 14

o Nhà cung cấp hàng cho Lazada chở hàng đến

o Nhân viên Lazada kiểm tra hàng, sau đó phân loại, sắp xếp

o 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:

Trang 15

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:

o Nhân viên giải đáp thắc mắc của khách hàng

o Xử lý hàng hóa không có người nhận

o 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 Lazadaviế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

Trang 16

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

- 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

Trang 17

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ộtlogic đượ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

Trang 18

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ộtDependency Injection framewok như Dagger, nhưng trong trường hợp ứng dụngkhô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ươngtác trong Android được kết hợp chặt chẽ giữa giao diện người dùng và xử lý, truycậ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

Trang 19

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ụngliê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ỗilogic 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 đọchiể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êmnhiề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ụngtrở 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ữagiao diện, logic và dữ liệu MVP tách biệt giao diện khỏi dữ liệu, chia ứng dụng rathà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 đảmnhậ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áctầng không có nhiều thay đổi: View vẫn đảm nhận trình bày, Presenter là nơi chứacác xử lý đặc trưng của ứng dụng, đảm trách cách Model được thao tác và thay đổinhư 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

Trang 20

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ề vaitrò 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ếpgiữ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ựctiế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ốiquan 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ệtgiữ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 đó

Trang 21

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ảncá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ườidù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 (FormsInterpreter), và một số chức năng như chúng ta biết ngày nay Nó có các biến kiểuPerl và cú pháp cho phép nhúng mã HTML Cú pháp này, tương tự Perl, nhưng hạnchế hơn, đơn giản và có phần không phù hợp Trong thực tế, để nhúng mã lệnh

Trang 22

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 commentHTML Và mặc dù phương pháp này không được hoàn toàn đón nhận, FI vẫn tiếptụ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ờigian 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ềuhơ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

- 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ịchbả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

Trang 23

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ềuphiên bản của Unix (bao gồm cả HP-UX, Solaris và OpenBSD), MicrosoftWindows, 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 đốitượ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ấtvă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ạothà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ếtnố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ácnhau như LDAP, IMAP, SNMP, NNTP, POP3, COM… và nhiều giao thức khác.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ìnhweb

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 ưachuộng, và sử dụng rộng dãi trên toàn thế giới

Trang 24

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ằmgiúp người dùng có thể quản lý cơ sở dữ liệu MySQL thông qua một trình duyệtweb 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áctrườ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ệcvới phpMyadmin chúng ta sẽ thấy được hiệu quả tăng lên đáng kể so với sử dụngcử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ể:

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ữ

Trang 25

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ởicộ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ậptrì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ấthiệ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ầnmề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ạnchế 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

CHƯƠNG 3: Giới thiệu về chuỗi JSON

3.1.1 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ệutuâ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ềunên tính ứng dụng của nó hiện nay rất là phổ biến

Trang 26

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 đó

3.1.2 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ớinguyên tắc đặt tên biến trong PHP

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à nguyenson442@gmail.com, tuổi là 22, địa chỉ là Hải Dương

3.1.3 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íaserver Chuỗi JSON sẽ được lưu vào database và sau đó khi cần dữ liệu thì sẽ đượcgiả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ăngserialize và unserialize của PHP Nhưng trong khi serialize và unserialize sử dụngvớ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ênkhô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

Trang 27

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.

Trang 28

CHƯƠNG 4: NỘI DUNG THỰC HIỆN

o Thể hiện các chương trình khuyến mại

o Xem thông tin sản phẩm

Trang 29

Ứ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ụngyê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àikhoả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ìmkiế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ênthiết bị) và đặt hàng sản phẩm của Lazada

- Đăng nhập:

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 ứngdụ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 để chungvào danh mụ cha như: Điện tử, Thời trang, Nhà cửa và đời sống…, các sảnphẩ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ênsả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ạnglist (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ỗiwebsites hay ứng dụng TMĐT, Lazada cũng không phải là một ngoại lệ Ứngdụng Lazada sẽ hiển thị các chương trình khuyến mãi, giảm phần trăm giá sảnphẩ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:

Trang 30

Khi khách hàng chọn vào một danh mục sản phẩm (hay danh mục thươnghiệu), hệ thống sẽ hiển thị danh sách các sản phẩm tương ứng, khách hàngclick chọn sản phẩm mong muốn để xem thông tin về sản phẩm đó Khi kháchhà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ảnphẩm đó như tên sản phẩm, hình ảnh, giá bán, thông tin, thông số kỹ thuật, cácbì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 đăngnhập, tên người đánh giá sẽ mặc định là tên thiết bị, nếu đã đăng nhập thì tênngười bình luận đánh giá sẽ là tên khi người dùng đăng ký tài khoản

- Đặ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ạigiỏ 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ếnhà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àngrồi thanh toán) Đơn hàng sẽ được chuyển về kho của Lazada để xem xét vàgiao hàng

- Quản lý các danh mục sản phẩm:

Trang 31

o Thêm: thêm danh mục sản phẩm mới gồm: tên danh mục và mã loạicha

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àngcho khách hàng đó

o Hoàn thành: Sản phẩm đã được giao thành công cho khách hàng Tạigiao diện này, khi có yêu cầu thay đổi đơn hàng từ phía chủ đơn hàng

đó như: loại bỏ bớt sản phẩm, thêm sản phẩm khác… thì người nhânviên tiến hành cập nhật lại đơn hàng đó theo đúng yêu cầu của chủ đơnhàng Thời gian giao hàng mặc định trong khoảng thời gian sau 3 ngày

kể từ ngày khách hàng đặt mua sản phẩm

- Thống kê:

o Thống kê số lượng sản phẩm

Trang 32

o Thống kê số lượng thành viên

o Thống kê số lượng đơn hàng

o Thống kê doanh thu

Trang 33

4.2 Phân tích thiết kế hệ thống

4.2.1 Biểu đồ Use case

a) Danh sách các actor và usecase

- Danh sách các actor

Sau khi khảo sát thực tế và tham khảo một số tài liệu, sinh viên thực hiện

đã phân tích và đưa ra được các actor chính của ứng dụng:

Bảng 3-1: Danh sách các Actor

1 Quản trị viên (Admin) - Admin có một tài khoản riêng để đăng nhập

vào webservice quản trị

- Admin là người quản lý mọi hoạt độngchung của hệ thống như quản lý danh mụcsản phẩm, quản lý sản phẩm, quản lý đơnhàng, quản lý khuyến mại xem thống kê,…

- Ngoài ra, Admin có đầy đủ các quyền nhưngười dùng khách hàng trên ứng dụng

2 Khách hàng - Khách hàng là người trực tiếp sử dụng các

tính năng của ứng dụng: tìm kiếm sản phẩm,xem sản phẩm, bình luận, đánh giá, đặt hàngsản phẩm

- Tài khoản của khách hàng chỉ có hiệu lựcđăng nhập trên ứng dụng, chứ không thể đăngnhập vào webservice quản trị

- Danh sách các Use case

Trang 34

Bảng 3-2: Danh sách các Use case

STT Tên Usecase Ý nghĩa

1 Use case Mức tổng quát Đưa ra các actor có trong hệ thống quản lý,

và chức năng chính của mỗi actor

2 Use case Đăng nhập Yêu cầu đăng nhập để xác thực trong

webservice và ứng dụng

3 Use case Quản lý danh mục Quản lý các danh mục sản phẩm hàng hóa

(thêm, xóa danh mục)

4 Use case Quản lý sản phẩm Quản lý sản phẩm hàng hóa (thêm, sửa, xóa

7 Use case Tìm kiếm sản phẩm Tìm kiếm các sản phẩm

8 Use case Xem sản phẩm Xem thông tin của sản phẩm

9 Use case Bình luận và đánh giá Bình luận và đánh giá của khách hàng về

sản phẩm

10 Use case Đặt hàng sản phẩm Khách hàng đặt hàng sản phẩm của Lazada

Trang 35

b) Biểu đồ Use case

- Use case mức tổng quát

Hình 3-6: Biểu đồ use case mức tổng quát

Trang 36

- Use case Đăng nhập

o Mục đích: Đảm bảo xác thực thông tin người dùng và an toàn bảo mật

Trang 37

- Use case Quản lý danh mục sản phẩm

o Mục đích: quản lý danh mục sản phẩm cho ứng dụng

o Tác nhân: Admin

o Mô tả: sau khi đăng nhập vào webservice, admin tiến hành thêm, xóa danh mục sản phẩm

Hình 3-8: Biểu đồ use case Quản lý danh mục sản phẩm

- Use case Quản lý sản phẩm

o Mục đích: quản lý sản phẩm cho ứng dụng

o Tác nhân: admin

o Mô tả: sau khi đăng nhập vào webservice, admin tiến hành thêm, cậpnhật, xóa sản phẩm

Ngày đăng: 04/09/2017, 15:54

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

TÀI LIỆU LIÊN QUAN

w