Tải bản đầy đủ (.pdf) (82 trang)

Ứng dụng đặt hàng adidas

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 (6.73 MB, 82 trang )


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

ỨNG DỤNG ĐẶT HÀNG ADIDAS

Nhóm sinh viên thực hiện:
Bùi Thiện Nhân-19521927
Trần Hiếu Nghĩa-19521902

GIẢNG VIÊN HƯỚNG DẪN
LÊ THANH TRỌNG

TP. HỒ CHÍ MINH, 2022


Lời cảm ơn
Đầu tiên nhóm em xin gửi lời cảm ơn tới thầy Lê Thanh Trọng trong việc
giúp cả lớp nói chung và nhóm em nói riêng có được khối kiến thức cần
thiết trong môn học này để phục vụ cho việc làm đồ án. Trong suốt quá
trình học tập mơn này, nhóm em nhận được rất nhiều tài liệu cũng như
những kiến thức mà thầy cung cấp để phục vụ cho mơn học. Tuy nhiên
trong q trình làm đồ án khơng thể tránh khỏi những thiếu sót, nhóm
em mong thầy thơng cảm và sẽ coi đó là bài học trong tương lai sau này.
Các thành viên.


Nhận xét của giảng viên


…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………

Revision History
Name
Date
Reason For Changes
Trần Hiếu Nghĩa 1/04/2022

Phiên bản đầu tiên
Bùi Thiện Nhân 13/04/2022 Thêm các sơ đồ, business
Bùi Thiện Nhân 05/05/2022
Phiên bản thứ 2
Trần Hiếu Nghĩa 23/05/2022 Sửa Use Case & Interface
Bùi Thiện Nhân 07/06/2022 thêm Implementation, install

Version
V1.1
V1.2.1
V1.2
V1.2.1
V1.2.2


MỤC LỤC
Chương 1. GIỚI THIỆU CHUNG

10

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

10

1.2. Tổng quan về chức năng

10

1.2.1.


Đối với phần đăng nhập, đăng ký và đăng xuất

10

1.2.2.

Đối với người sử dụng

11

Chương 2. CƠ SỞ LÝ THUYẾT

12

2.1. Dart

12

2.2. Flutter

12

2.3. Provider

12

2.4. Đăng nhập bằng bên thứ 3

13


2.5. NodeJs

13

2.6. Heroku

13

2.7. Postman

14

Chương 3. XÂY DỰNG HỆ THỐNG

15

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

15

3.1.1.

Áp dụng kiến trúc MVVM trong ứng dụng

15

3.1.2.

Sơ đồ use case


17

3.1.3.

ERD

18

3.1.4.

Cơ sở dữ liệu

18

3.1.4.1. User

18

3.1.4.2. UserAddress

18

3.1.4.3. Store

19

3.1.4.4. Product

19



3.1.4.5. ProductTypes

19

3.1.4.6. ProductCategory

20

3.1.4.7. OrderItem

20

3.1.4.8. Order

20

3.1.4.9. Promotion

21

3.1.4.10. AdBanner

21

3.2. Thiết kế giao diện

21

3.2.1.


Màn hình splash

21

3.2.2.

Màn hình PopularProduct

23

3.2.3.

Màn hình Shop (Search)

26

3.2.4.

Màn hình Store

29

3.2.5.

Màn hình Product Category

32

3.2.6.


Màn hình List Filtered Product

34

3.2.7.

Màn hình Product Detail

36

3.2.8.

Màn hình WishList

41

3.2.9.

Màn hình Order

44

3.2.10.

Màn hình Authenticate

52

3.2.11.


Màn hình Order History

57

3.2.12.

Màn hình Settings:

61

3.2.13.

Màn hình chỉnh sửa, thêm User Address

71

Chương 4. CÀI ĐẶT

79

4.1. Môi trường phát triển

79

4.2. Các thư viện được sử dụng

80

Chương 5. KẾT LUẬN


81


5.1. Kết quả đạt được

81

5.1.1.

Về UI/UX

81

5.1.2.

Ưu điểm

81

5.1.3.

Nhược điểm và giải pháp

82

5.1.3.1. Các vấn đề hiện hữu

82


5.1.3.2. Giải pháp

82

5.1.4.

Hướng phát triển trong tương lai

Chương 6. TÀI LIỆU THAM KHẢO

82
82


TĨM TẮT ĐỒ ÁN
ỨNG DỤNG ADIDAS
-

Ngơi nhà của thể thao và giày sneaker, ứng dụng adidas giúp bạn dễ dàng
tiếp cận các sản phẩm giày sneaker, đợt ra mắt thời trang theo mùa, cùng các
bộ môn thể thao, trang phục và thiết bị phù hợp với phong cách cá nhân.
Nguồn cảm hứng, câu chuyện của các vận động viên và ưu đãi độc quyền
trên ứng dụng ngay trong tầm tay của bạn. Các sản phẩm adidas tốt nhất, tinh
tuyển cho bạn.

CHỈ MỘT ỨNG DỤNG ADIDAS. NHIỀU LỢI ÍCH
-

Cập nhật trước, sở hữu sớm. Từ tin tức vận động viên, dự án hợp tác trang
phục và các đợt ra mắt hype, bạn có thể khám phá tất cả chỉ với ứng dụng

adidas.

-

Nắm bắt tin tức về các mẫu giày sneaker

-

Mua sắm các sản phẩm mới ra mắt của adidas.

-

Giành quyền truy cập đến các ưu đãi, phần thưởng, quà tặng và sản phẩm đặc
biệt.

-

Nhận thông báo khi các sản phẩm giày sneaker & trang phục adidas yêu
thích của bạn được giảm giá

-

Theo dõi đơn hàng và lịch sử mua sắm để trả hàng dễ dàng.

TÌM NHANH CỬA HÀNG
-

Cập nhật, thơng tin các cửa hàng chính hãng được ủy quyền từ Adidas đang
có mặt ở quốc gia hiện tại của người dùng.


-

Thơng tin địa chỉ cửa hàng được tích hợp với cơng cụ tìm kiếm, chỉ đường
GoogleMap.


ADIDAS PHONG CÁCH THỂ THAO TỰ NHIÊN
-

Điều chỉnh dựa trên sở thích của bạn, ứng dụng adidas cho phép bạn dễ dàng
tạo phong cách Ba Sọc của chính mình. Và nếu thể thao là phong cách của
bạn, trang phục dòng Originals từ kho tàng adidas sẽ định hình phong cách
cho ngày nay. Với dòng trang phục cho nam, nữ và trẻ em, adidas luôn đổi
mới qua mỗi mùa.


Chương 1. GIỚI THIỆU CHUNG
1.1.

Lý do chọn đề tài

Hiện nay các chi nhánh của Adidas cũng như các cửa hàng nhượng quyền, được phép
phân phối, bán lẻ các sản phẩm chính hãng của Adidas xuất hiện ngày càng phổ biến.
Vì thế mỗi gian hàng, cửa hàng bắt đầu được phân bổ, tập trung vào một tệp hoặc
một lượng khách hàng nhất định, để làm nổi bật tiêu đề của chi nhánh, cửa hàng. Vì
vậy, việc một số cửa hàng mặc dù được thuộc hệ thống quản lý Adidas vẫn có thể sẽ
khơng có đầy đủ tồn bộ sản phẩm của Adidas để cung cấp cho người dùng. Ngồi
ra, các thơng tin về khuyến mãi, ra mắt sản phẩm, sự kiện, cộng đồng,… sẽ không
thể chỉ mỗi được thông báo ở cửa hàng, việc quảng cáo sẽ cần được đến từ nhiều
hướng tiếp cận, mạng xã hội là một trong những cách truyền thông hiệu quả nhất hiện

nay.
Hiểu và nắm bắt được vấn đề đó, nhóm chúng em mang đến một giải pháp cho các
chuỗi cửa hàng về việc quản lý cũng như để cửa hàng được tiếp cận người tiêu dùng
dễ dàng hơn. Các thông tin về cửa hàng, thương hiệu, sản phẩm cũng sẽ được đưa
đến một cách đầy đủ và chính xác. Người dùng sẽ khơng cần bắt buộc phải ‘có mặt’
ở một cửa hàng để tận hưởng khơng khí adidas. Ứng dụng hỗ trợ đặt hàng và quản lý
các sản phẩm Adidas sẽ giúp người dùng có thể đặt hàng tại nhà cũng như biết được
các hoạt động mới của cửa hàng và giúp các chuỗi cửa hàng tiến gần hơn với người
tiêu dùng.
1.2.

Tổng quan về chức năng

1.2.1. Đối với phần đăng nhập, đăng ký và đăng xuất
● Người sử dụng có thể đăng nhập hoặc đăng ký bằng ba phương thức
sau:
● Sử dụng email và password
● Thông qua google


● Thông qua facebook
● Sau khi đăng ký, người dùng được chuyển thẳng sang trang chính
● Khi một tài khoản đã đăng nhập, người dùng không cần phải đăng nhập
lại mỗi khi truy cập ứng dụng
1.2.2. Đối với người sử dụng
Ngồi xem thơng tin sản phẩm thì tất cả các chức năng của người sử dụng
đều yêu cầu phải đăng nhập trước.
a) Xem và nhận thông báo
● Thông báo của người dùng sẽ được update liên tục khi có thơng báo mới
● Khi người dùng xem một thông báo, sẽ giảm số lượng thông báo mới đi

một đơn vị
b) Xem và tra cứu thơng tin sản phẩm
● Người dùng có thể tra cứu sản phẩm theo tên gọi và xem thông tin chi tiết
của sản phẩm
● Khi người dùng chọn sản phẩm thì sẽ lưu vào giỏ hàng bao gồm các thuộc
tính cần thiết
● Khi người dùng đặt hàng và hồn tất điền vào các thơng tin của đơn hàng,
đơn hàng sẽ được thêm vào cơ sở dữ liệu và cộng điểm cho người dùng
c) Tra cứu và xem thông tin của cửa hàng
● Người dùng có thể tra cứu và xem thông tin của cửa hàng dựa trên tên và
địa chỉ của cửa hàng
● Người dùng có thể mở các ứng dụng liên quan để xem thông tin của cửa
hàng (địa chỉ, điện thoại)
d) Xem thông tin cá nhân
● Người dùng có thể xem và cập nhật một số thơng tin cá nhân
● Có thể đổi mật khẩu của người dùng
e) Xem và chỉnh sửa địa chỉ đã lưu
● Người dùng có thể xem, chỉnh sửa hoặc xóa thơng tin địa chỉ đã lưu trong
ứng dụng
f) Xem lịch sử đơn hàng
● Người dùng có thể xem lịch sử cũng như đơn hàng và chi tiết của những
đơn hàng đó(bao gồm tình trạng của đơn hàng)
g) Liên hệ
● Người dùng có thể mở các ứng dụng đã cài đặt trong máy để liên hệ và
tương tác với cửa hàng.
h) Cài đặt
● Người dùng có quyền chỉnh sửa cài đặt trong ứng dụng bao gồm quyền
không nhận thông báo đẩy



Chương 2. CƠ SỞ LÝ THUYẾT
2.1.
-

Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và
sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được sử dụng
để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động.
Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế
garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript.
Nó hỗ trợ interface, mixin, abstract, generic, static typing và sound type. Dart
là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.

2.2.
-

-

-

-

Flutter

Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng
cao trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với
những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức.
Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với
những ứng dụng được xây dựng bằng cách sử dụng Android SDK, cả về giao
diện và hiệu suất. Hơn nữa, với những tinh chỉnh nhỏ, chúng có thể chạy trên
thiết bị iOS.

Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính
năng hữu ích như mixin, generic, isolate, và static type.
Flutter có các thành phần UI của riêng nó, cùng với một cơ chế để kết xuất
chúng trên nền tảng Android và iOS. Hầu hết các thành phần giao diện người
dùng, đều sẵn dùng, phù hợp với các nguyên tắc của Material Design.
Các ứng dụng Flutter có thể được phát triển bằng cách sử dụng IntelliJ IDEA,
một IDE rất giống với Android Studio.
Flutter hồn tồn miễn phí và cũng là mã nguồn mở.

2.3.
-

Dart

Provider

Provider là một trong những giải pháp để quản lý State trong lập trình ứng
dụng với Flutter.
Provider là một thư viện cung cấp cho bạn một đường dẫn để bạn có thể kết
nối với các widget của bạn. Nó chỉ đơn giản là cung cấp dữ liệu cho những
widget nào cần, và không quan tâm đến những widget mà khơng cần cung cấp
dữ liệu.
Hồn tồn tách biệt logic khỏi các widget.
Dễ nắm bắt và làm quen với người mới bắt đầu.
Cấu trúc của dự án sẽ gọn gàng hơn.

12


-


Nó được chính Google và Flutter khuyến khích sử dụng cho tới thời điểm hiện
tại.

2.4.

Đăng nhập bằng bên thứ 3

Ứng dụng có hỗ trợ tính năng đăng nhập thơng qua bên thứ ba bằng Google
và Facebook. Một số thông tin đơn giản của người dùng sẽ được truy cập và
lưu trữ tại đây.
1.

Google Sign In

2.

Facebook Sign In (Hiện tại chưa được hoàn chỉnh)

2.5.
-

-

-

-

Nodejs là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8
Engine. Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên tồn thế giới.

NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Windows
cho tới Linux, MacOs nên đó cũng là một lợi thế. NodeJS cung cấp các thư
viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc
lập trình và giảm thời gian ở mức thấp nhất.
Không đồng bộ: Tất cả các API của Nodejs đều khơng đồng bộ (noneblocking), nó chủ yếu dựa trên nền của Nodejs Server và chờ đợi Server trả dữ
liệu về. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế
thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ
các cuộc gọi API trước (Realtime).
Tốc độ xử lý nhanh: Nodejs được xây dựng dựa vào nền tảng V8 Javascript
Engine nên việc thực thi chương trình rất nhanh.
Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mơ hình luồng
duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng
một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái
ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.
Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có
thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ
truyền thống như Apache HTTP Server.
Không đệm: Nodejs khơng đệm bất kì một dữ liệu nào và các ứng dụng này
chủ yếu là đầu ra dữ liệu.
Có giấy phép: Nodejs đã được cấp giấy phép bởi MIT License.

2.6.
-

NodeJs

Heroku

Heroku là một nền tảng đám mây cho phép các cá nhân, doanh nghiệp xây
dựng, triển khai, quản lý và mở rộng ứng dụng. Lợi thế chính của nền tảng này


13


-

-

nằm ở tính linh hoạt và dễ sử dụng, đây là giải pháp giúp các nhà phát triển
đưa ứng dụng của họ ra thị trường đơn giản và nhanh chóng.
Heroku Runtime: Hỗ trợ cung cấp các smart container mà ứng dụng của bạn
sẽ chạy trong đó. Bên cạnh đó, tính năng này còn giúp xử lý mọi thứ quan
trọng trong ứng dụng bao gồm cấu hình, điều phối, cân bằng tải, backup, log,
bảo mật…
Heroku Redis: Hỗ trợ dịch vụ Redis phục vụ cho lập trình viên sử dụng. Dịch
vụ này cho phép lưu trữ trên bộ nhớ với tốc độ nhanh phổ biến.
Add-ons: Hỗ trợ bạn quản lý các ứng dụng với dịch vụ được tích hợp sẵn như
New Relic, Mongo DB, SendGrid, Searchify, Fasty, ClearDB,…
Code/data rollback: Giúp người dùng có thể dễ dàng khơi phục mã nguồn hoặc
cơ sở dữ liệu của mình về trạng thái trước đó.
App Metrics: Đây là tính năng giúp giám sát lưu lượng, thời gian phải hồi, bộ
nhớ, tải CPU và lỗi. Giúp bạn quản lý ứng dụng chặt chẽ.
GitHub Integration: Giúp bạn có thể thực hiện các tính năng như pull request,
push, commit…hoạt động với mọi branch mà bạn muốn.

2.7.
-

-


Postman

Postman là một loại cơng cụ cho phép người dùng có thể thao tác với API, mà
trong đó phổ biến nhất là REST. Với thử nghiệm API thì Postman là một trong
những cơng cụ phổ biến vì được thực nghiệm nhiều nhất. Postman có khả năng
hỗ trợ mọi phương thức HTTP bao gồm: POST, PUT, DELETE, PATCH,
GET,... Ngồi ra, Postman cịn cho phép lập trình viên lưu lại lịch sử của các
lần request.
Postman sử dụng Collection nên người dùng có thể tạo bộ sưu tập cho những
lệnh gọi API của họ. Mỗi một bộ sưu tập đều có thể tạo ra thư mục con với
nhiều request.
Trong Postman Collections và environment sẽ được import hoặc export giúp
người dùng có thể chia sẻ tệp dễ dàng hơn.
Postman có khả năng test trạng thái phản hồi của HTTP.
Hỗ trợ gỡ lỗi: Bộ phận bảng điều khiển của Postman có thể giúp bạn kiểm tra
dữ liệu đã xuất. Từ đó, q trình gỡ lỗi sẽ trở nên dễ dàng và linh hoạt hơn.
Hỗ trợ tạo thử nghiệm: Những điểm kiểm tra thử nghiệm và xác định trạng
thái phản hồi HTTP thành cơng. Và vai trị xác nhận có thể được thêm vào mỗi
lệnh gọi API nhằm đảm bảo phạm vi kiểm tra.
Thơng qua q trình sử dụng bộ sưu tập và newman sẽ đảm bảo các kiểm thử
sẽ chạy được trong những lần lặp lại. Từ đó, tiết kiệm thời gian cho các thử
nghiệm có thể lặp đi lặp lại.
Tích hợp liên tục: Postman có khả năng hỗ trợ tích hợp liên tục cho các hoạt
động phát triển và có thể được duy trì.

14


Chương 3. XÂY DỰNG HỆ THỐNG
3.1.


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

3.1.1. Áp dụng kiến trúc MVVM trong ứng dụng

A. Định nghĩa
- Mơ hình MVVM cho phép tách biệt dữ liệu (Model), mã thực thi (logic
hay còn gọi là View Model) và giao diện người dùng (View). Mơ hình
MVVM được xây dựng dựa trên mơ hình MVP với một trong những
ngun tắc lớn nhất là tầng dưới không được phép biết tầng trên làm gì.
- Về cách thức hoạt động ViewModel chiếm vị trí trung tâm. Nó sẽ gửi và
nhận dữ liệu từ model và gửi cho view, đông thời cũng quan sát sự thay
đổi của dữ liệu xảy ra ở View và phản hồi với model tương ứng.
B. Sử dụng mơ hình MVVM trong ứng dụng:

15


a) Thư mục views
o View là nơi người dùng tương tác với các widget được hiển thị trên
màn hình. Các sự kiện người dùng này sẽ tạo ra một số action
chuyển đến ViewModel để xử lý. Khi Viewmodel xử lý xong action
nó sẽ cập nhật lại View.
b) Thư mục view_models
o ViewModel là trung gian giữa View và Model, nó nhận các sự kiện
của người dùng và gửi yêu cầu đó đến Model để lấy data. Khi Model
có data và trả lại cho ViewModel, ViewModel sẽ thơng báo data đó
đến View. ViewModel có thể được sử dụng bởi View, hay một
ViewModel có thể cung cấp dữ liệu cho nhiều View khác nhau.
c) Thư mục models

o Model cũng chứa các lớp mô tả business logic và định nghĩa
business rules cho dữ liệu (cách mà dữ liệu sẽ được thay đổi và sử
dụng).
d) Thư mục services
o Đây là thành phần quản lý toàn bộ các cơ sở dữ liệu (database) bao
gồm gọi api, xử lý kết quả trả về. Convert sang các models của ứng
dụng.

16


3.1.2. Sơ đồ use case

17


3.1.3. ERD

3.1.4. Cơ sở dữ liệu
3.1.4.1.

User

Field

Type

Description

fullName


String

Họ và tên của khách hàng

dateOfBirth

DateTime

Ngày sinh của khách hàng

email

String

Email của khách hàng

favoriteProducts

List<Product>? Chứa danh sách các sản phẩm mà khách hàng yêu
thích

gender

String?

Giới tính của khách hàng

phoneNumber


String

Số điện thoại của khách hàng

isVerifiedEmail boolean

Kiểm tra xem email của khách hàng đã được xác thực
chưa

3.1.4.2. UserAddress
Field

Type Description

userId

String ID của user

18


String Chứa tên của người nhận hang

receptionName

receptionPhoneNumber String Chứa số điện thoại của người nhận hàng
address

String Chứa địa chỉ của người nhận hàng


country

String Chứa quốc gia của người nhận hàng

3.1.4.3. Store
Field

Type Description

name

String Tên của cửa hàng

address

String Địa chỉ cụ thể của cửa hàng

openTime int

Thời gian cửa hàng bắt đầu mở cửa

clostTime int

Thời gian cửa hàng đóng cửa

3.1.4.4. Product
Field

Type


Description

imageUrls

List<String>

Danh sách url hình ảnh của sản phẩm

tag

String

Thơng tin tóm tắt đi kèm của sản phẩm (‘HOT’,
‘NEW’,…)

price

int

Giá tiền của sản phẩm

name

String

Tên của sản phẩm

isFavorite

bool


Biến để kiểm tra xem sản phẩm có được user lưu vào
danh sách yêu thích chưa

productType ProductType

categories

Lưu loại sản phẩm (‘Shoes’, ‘Clothes’,…)

List<ProductCategory> Lưu danh sách các mục phân loại của sản phẩm
(‘Running’, ‘Slide’, ‘LifeStyles’,…)

3.1.4.5. ProductTypes
Field

Type

Description

name

String

Tên của loại sản phẩm (‘Shoes’, ‘Clothes’,…)

19


categories List<ProductCategory> Danh sách các mục phân loại (‘All’, ‘Running’,…)


3.1.4.6. ProductCategory
Field

Type Description

name

String Tên của mục phân loại (‘Running’, ‘Slide’, ‘LifeStyles’, …)

imageUrl String Chứa link url hình ảnh của mục phân loại

3.1.4.7. OrderItem
Field

Type

product

Product Chứa 1 object lưu trữ sản phẩm

size

Double

quantity int
int

total


Description

Size của sản phẩm (8, 8.5, 9, 9.5,…)
Số lượng của 1 product, order item
Tổng giá trị của order item (product.price * quantity – promotion?)

3.1.4.8. Order
Field

Type

Description

userId

String

Chứa id của người dùng đặt đơn hàng

orderDateTime

DateTime

Thời gian đơn hàng được đặt

userAddress

UserAddress

Chứa object address của người dùng


paymentMethod String

Phương thức thanh tốn

promotion

Promotion?

Chứa promotion của Order nếu có

orderStatus

String

Tình trạng đơn hàng

orderItems

List<OrderItem> Chứa các item (sản phẩm) của đơn hàng

total

int

Tổng thành tiền của đơn hàng

20



3.1.4.9. Promotion
Field

Type

Description

name

String

Tiêu đề của khuyến mãi

description

String

Mô tả chi tiết khuyến mãi

expiredDate DateTime Hạn sử dụng của khuyến mãi
double

discount

Chứa giá trị giảm giá (>1: giảm theo phần tram, [else] giảm trực tiếp.

3.1.4.10. AdBanner
Field

Type


Description

tag

String

Tóm tắt cho banner quảng cáo

title

String

Tiêu đề của banner quảng cáo

image

String?

Chứa url hình ảnh của banner quảng cáo, nếu null sẽ hiển thị video

video

String?

Chứa url video của banner quảng cáo

product Product Object product mà banner đang quảng cáo

3.2.


Thiết kế giao diện

3.2.1. Màn hình splash
Khi chạy ứng dụng sẽ vào màn hình loading. Hiển thị logo của thương hiệu Adidas
trong 1 khoảng thời gian tùy cấu hình của thiết bị người dùng, để load và build các
widget cần thiết cho màn hình chính của ứng dụng.

21


22


3.2.2. Màn hình PopularProduct
Người dùng sẽ nhận được một List các banner quảng cáo các sản phẩm đang hot,
được giảm giá, limited,… được quảng cáo từ nhà cung cấp. Đồng thời có thể
navigate sang product_detail nếu người nhấn vào button shopnow.

23


24


25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×