1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online

131 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 131
Dung lượng 2,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các website trong thực tế, em đã quyết định chọn đề tài “Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online”

Trang 1

ĐẠ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

Nguyễn Quốc Nam Sang

Khóa luận tốt nghiệp

Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất

online Research AR and building an application for online

furniture commerce

Kỹ sư ngành kĩ thuật phần mềm

Tp Hồ Chí Minh, 2021

Trang 2

ĐẠ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

Nguyễn Quốc Nam Sang -17520976

Khóa luận tốt nghiệp Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất

Trang 3

DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

1 ……… – Chủ tịch

2 ……… – Thư ký

3 ……… – Ủy viên

4 ……… – Ủy viên

Trang 4

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập - Tự Do - Hạnh Phúc

TP HCM, ngày …… tháng …… năm ……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ HƯỚNG DẪN)

Tên khóa luận:

Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online

Nguyễn Quốc Nam Sang 17520976 TS Trần Anh Dũng

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang _ Số chương _

Số bảng số liệu _ Số hình vẽ _

Số tài liệu tham khảo _ Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

2 Về nội dung nghiên cứu:

Trang 5

3 Về chương trình ứng dụng:

4 Về thái độ làm việc của sinh viên:

Trang 6

Đánh giá chung:

Điểm từng sinh viên:

Nguyễn Quốc Nam Sang: ………/10

Người nhận xét

(Ký và ghi rõ họ tên)

TS Trần Anh Dũng

Trang 7

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập - Tự Do - Hạnh Phúc

TP HCM, ngày …… tháng …… năm ……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận:

Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online

Nguyễn Quốc Nam Sang 17520976

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang _ Số chương _

Số bảng số liệu _ Số hình vẽ _

Số tài liệu tham khảo _ Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

Trang 8

2 Về nội dung nghiên cứu:

3 Về chương trình ứng dụng:

4 Về thái độ làm việc của sinh viên:

Trang 9

Đánh giá chung:

Điểm từng sinh viên:

Nguyễn Quốc Nam Sang: ………/10

Người nhận xét

(Ký và ghi rõ họ tên)

Trang 10

LỜI CẢM ƠN

Đầu tiên, nhóm tác giả xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công Nghệ Phần Mềm đã giúp cho nhóm tác giả có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này

Đặc biệt, nhóm tác giả xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thầy Trần Anh Dũng, đã hướng dẫn tận tình, truyền đạt nhiều kiến thức bổ ích để giúp chúng em hoàn thành được sản phẩm

Trong thời gian thực hiện đề tài, nhóm tác giả đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó, nhóm tác giả vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo khóa luận tốt nhất Tuy nhiên, trong quá trình thực hiện, nhóm tác giả không tránh khỏi những thiếu sót Chính vì vậy, nhóm tác giả rất mong nhận được những sự góp ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà nhóm tác giả đã học tập và là hành trang

để nhóm tác giả thực hiện tiếp các đề tài khác trong tương lai Xin chân thành cảm ơn các quý Thầy Cô !

Nhóm tác giả thực hiện

Trang 11

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online

TÊN ĐỀ TÀI (tiếng Anh): Research AR and building an application for online

furniture commerce

Cán bộ hướng dẫn: ThS Trần Anh Dũng

Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 30/06/2021

Sinh viên thực hiện:

Nguyễn Quốc Nam Sang: 17520976

Nội dung đề tài: (Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết

quả mong đợi của đề tài)

1 Mục tiêu của đề tài

1.1 Bối cảnh chọn đề tài

Công việc kinh doanh buôn bán đã xuất hiện từ rất lâu, trải qua mỗi giai đoạn lịch sử

nó mang một hình thức đặc thù riêng Trước kia, khi các công cụ hỗ trợ công việc mua

bán chưa phát triển mạnh, thì người kinh doanh mua bán chỉ diễn ra dưới hình thức mua

bán trực tiếp Từ khi khoa học công nghệ phát triển, nó đã tạo ra phát triển các loại hình

thức mua bán mới, điển hình là mua bán trực tuyến Hình thức mua bán trực tuyến hỗ trợ

Trang 12

đắc lực cho người kinh doanh tiếp xúc với được nhiều khách hàng, còn khách hàng thì công việc mua bán được diễn ra nhanh chóng, thuận lợi, tiết kiệm được thời gian,…

- Hiện nay, Thương Mại Điện Tử (TMĐT) đang được nhiều quốc gia quan tâm, coi là một trong những động lực phát triển chủ yếu của nền kinh tế và dần trở thành xu hướng tất yếu trong mùa dịch toàn cầu COVID-19 đang diễn ra TMĐT đem lại những lợi ích tiềm tàng, giúp doanh nghiệp thu được thông tin phong phú về thị trường và đối tác, giảm chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ bạn hàng Thế nhưng thị trường thương mại điện tử hiện nay chỉ giới hạn ở những món đồ nhỏ, món đồ dễ lắp đặt và không có giá trị quá lớn khi người dùng phổ thông muốn mua bán online Với công nghệ

AR bọn em muốn mở rộng thị trường đến những món đồ mà bình thường không ai nghĩ tới sẽ mua bán qua internet: đồ nội thất, trang trí nhà, phòng ốc

- Việc mua hàng qua mạng chỉ với thủ tục đăng ký mua sắm đơn giản nhưng đem lại nhiều lợi ích: tiết kiệm và chủ động về thời gian, tránh những nơi đông người và tránh khỏi những phiền phức khó chịu Vậy nên việc mua bán hàng qua mạng đang rất được mọi người quan tâm và thị trường mua bán đồ nội thất online cũng chưa được khai thác nhiều nên rất có tiềm năng để phát triển, công nghệ AR sẽ là đòn bẩy thúc đẩy khả năng khai thác thị trường này Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các website trong thực tế, em đã quyết định chọn đề tài “Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online”

- Phục vụ tốt hơn nhu cầu của khách hàng và quản lý của cửa hàng trong hoạt động kinh doanh

- Khách hàng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể đặt hàng được ngay

- Khách hàng có thể xem trước sản phẩm mình chọn sẽ trông ra sao trong nhà, phòng mình từ đó tăng khả năng quyết định đặt mua sản phẩm

Trang 13

1.2 Tính mới/ khác biệt về chức năng của đề tài so với một số ứng dụng thương mại điện tử hiện nay

❖ Khai thác công nghệ AR:

Hiện nay thị trường đã đầy rẫy những trang thương mại điện tử cho đủ loại sản phẩm nhưng thị trường đồ nội thất vẫn thuộc về các cửa hàng lớn, các chủ gia công đồ nội thất là chính Để thị trường đồ nội thất sát nhập vào thị trường thương mại điện tử thì chúng ta phải giải quyết một trong những vấn đề mà người mua đồ nội thất hay đắn đo nhất: lựa mua mẫu mã và thiết kế hợp với không gian của sản phẩm Với công nghệ AR chúng ta có thể hiện lên sản phẩm một cách chân thực trong không gian thực để khách hàng có thể quyết định mua sản phẩm hay không ngay tại chỗ mà không cần ra cửa hàng lựa chọn hay nhờ các chủ gia công tư vấn

1.3 Mục đích của đề tài

Ứng dụng mua bán hàng Furniture store và phần mềm AR chạy trên nền Android

và Web được thực hiện dựa trên hai mục đích chính sau:

Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình ứng dụng với Unity, java Web và react Và các công nghệ AR như thư viện ARcore của google Có thể áp

dụng trong ứng dụng Furniture store và phần mềm AR trong việc khai thác thị trường

nội thất trong mảng E-commerce

Thứ hai là phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứng dụng vào thực tế, giúp những người có nhu cầu mua bán hàng hóa có thể thao tác dễ dàng và tiện lợi

Trang 14

Em hi vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợp với

sự tìm hiểu công nghệ của em, luận văn tốt nghiệp của em sẽ đạt được mục đích mong đợi

1.4 Ý nghĩa của đề tài

Trước hết, đề tài “Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online” là một ứng dụng được xây dựng như một đề tài thể hiện việc áp dụng những kiến thức quý báu

đã được các thầy cô của trường Đại học Công nghệ Thông tin – Đại học Quốc gia thành phố Hồ Chí Minh đã 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 thầy Trần Anh Dũng trong suốt thời gian em chúng 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 quá 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ỗi thành viên trong em

Thứ ba, Tính đến tháng 12 năm 2019, mặc dù số người dùng hệ điều hành IOS đã tăng lên, nhưng số lượng người dùng Android vẫn chiếm áp đảo gấp 6 lần IOS, chiếm 85% thị phần toàn ngành (https://tintuc.viettelstore.vn/so-luong-nguoi-dung-android-

công ty sử dụng ngôn ngữ lập trình này (mức độ phổ biến chỉ xếp thứu 2 sau C theo Wiki) Chính vì thế, lập trình ứng dụng android bằng Unity và Web sử dụng ngôn ngữ C# có nhiều cơ hội việc làm và với các thành viên trong em, đích đến của việc học ở trường là đi làm nên em hi vọng việc cố gắng nghiên cứu và áp dụng công nghệ vào đề tài của mình, sẽ giúp từng thành viên trong em tìm kiếm được 1 cơ hội nghề nghiệp phù hợp Và em chúng em cũng rất hy vọng sẽ tạo nên một sản phẩm hoàn chỉnh nhất 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

Trang 15

1.5 Nhiệm vụ của đề tài

Đề tài “Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online” là hai ứng dụng chạy trên điện thoại sử dụng hệ điều hành Android có phần cứng hỗ trợ AR và một ứng dụng chạy trên nền tảng Web

Hai ứng dụng gồm có : Ứng dụng Furniture Store viết trên Web và ARFurniture

sử dụng công nghệ Unity viết cho android

- Ứng dụng Furniture Store: Dành cho người tiêu dùng và quản trị viên

+ Đăng ký và đăng nhập

+ Tìm kiếm sản phẩm có sử dụng bộ lọc

+ Sắp xếp sản phẩm theo các hạng mục tương ứng

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

+ Đặt hàng mua sản phẩm vào giỏ hàng

+ Xem thông tin giỏ hàng và tạo đơn hàng

+ Thanh toán đơn hàng

+ Quản lý sản phẩm + Quản lý đơn hàng

Trang 16

+ Liên kết với Furniture Store để mua hàng

+ Đăng nhập, đăng ký trên phần mềm để tiến hành thêm vào sản phẩm

vào giỏ hàng

+ Mua hàng trực tiếp tại Furniture Store

Mục tiêu của đề tài này là:

- Tìm hiểu các hoạt động kinh doanh trong thực tế

- Tìm hiểu cách thức xây dựng một ứng dụng trên android

- Xây dựng thành công ứng dụng thương mại điện tử sử dụng công nghệ AR hiện đại để khai thác thị trường E-commerce nội thất

- Hệ thống có khả năng ứng dụng và triển khai vào thực tiễn nhanh chóng

- Áp dụng công nghệ ARcore của google để tăng tốc độ phát triển phần mềm và đảm bảo công nghệ hiện đại ít lỗi

2 Phạm vi nghiên cứu

Ứng dụng Furniture Store và ARFurniture được em xây dựng bằng ngôn ngữ Java

trên môi trường Web và phần mềm android ARFurniture được xây dựng bằng Unity kết hợp thư viện ARcore

Tìm hiểu về công nghệ AR và các ứng dụng có thể của AR để phát triển phần mềm có tính thương mại điện tử

3 Đối tượng nghiên cứu

- Các công nghệ:

Trang 17

+ Amazon web service

- Thuật toán: Các thuật toán liên quan tới AR như tìm kiếm mặt phẳng

- Đối tượng trong phạm vi đề tài hướng đến:

+ Những doanh nghiệp, nhà bán hàng trong và ngoài nước

+ Người tiêu dùng trong nước và quốc tế

4 Phương pháp nghiên cứu

Cách tiếp cận: ứng dụng được xây dựng dựa theo mô hình webservice trên nền tảng Java và ứng dụng ARFurniture được xây dựng dựa theo công nghệ Unity

Em đã sử dụng các phương pháp nghiên cứu:

- Phương pháp đọc tài liệu

- Phương pháp phân tích các ứng dụng TMĐT hiện có

- Phương pháp thực nghiệm

Trang 18

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 Furniture Store nói riêng, em nhận thấy các ứng dụng đều có mô hình xử lý hàng hóa như sau:

- Bán hàng:

+ Khách hàng đặt nội thất trên ứng dụng Furniture Store

+ Khách hàng có thể tới phần đặt nội thất này qua ứng dụng ARFurniture + Hệ thống chuyển đơn nội thất về Webservice để nhân viên xử lý

- Đóng gói:

+ Nhân viên lấy nội thất trong kho theo đơn hàng và đóng gói

+ Nhân viên cập nhật lại số lượng nội thất trong kho

Trang 19

+ 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

Em nhận thấy ứng dụng ARFuniture có mô hình thu hút khách hàng như sau:

- Sư dụng phần mềm:

+ Khách hàng chọn lựa sản phẩm yêu thích muốn mua

+ Khách hàng thử sản phẩm trên thế giới thực qua AR camera

+ Khách hàng thấy thích thú và muốn mua sản phẩm

Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, em đã xây dựng ý tưởng thiết

kế ứng dụng thương mại điện tử cần đạt được những mục tiêu sau:

5.1 Đối với khách hàng và người quản trị

Khách hàng xem lựa chọn sản phẩm và tiến hành mua sắm, đăng nhập khách hàng

và quyết định có sử dụng ứng dụng hay không

Khách hàng có thể tìm hiểu những thông tin về sản phẩm, giá cả và đánh giá sản phẩm

Nếu bạn là người quản trị bạn có thể thao tác trên cơ sở dữ liệu, đăng ký người quản trị mới, cập nhật thông tin sản phẩm, cập nhật tin tức, thông tin tư vấn,…

Trang 20

Khách hàng có thể xem các thông tin về số khách hàng, lựa chọn các sản phẩm vào giỏ hàng sau khi xem sản phẩm

Xử lý, chuẩn hóa dữ liệu nhập vào bởi những người truy cập ứng dụng và ban quản trị khi cập nhật thông tin

Xây dựng thành công hệ thống gợi ý sản phẩm cho hiệu năng cao

Hệ thống có khả năng xây dựng và phát triển nhanh chóng

Hệ thống tối ưu hóa lợi nhuận cho nhà cung cấp sản phẩm uy tín, chất lượng Phần mềm ARFuniture thân thiện với người dùng và cung cấp trải nghiệm tối ưu

để khách hàng cảm thấy thích thú khi mua sản phẩm

Phần mềm ARFurniture áp dụng công nghệ AR mới nhất để cung cấp người dùng trải nghiệm tối ưu

Trang 21

Kế hoạch thực hiện: (Mô tả kế hoạch làm việc và phân chia công việc các thành viên tham

+ Sprint 1: tìm hiểu về platform Java, ReactJS, Unity, Arcore, khảo sát nghiệp vụ, quy trình xử lý hàng hóa của các ứng dụng, website tương

Sprint Nguyễn Quốc Nam Sang

Trang 22

1

(01/03/2020 –

21/03/2020)

Tìm hiểu về platform Java, ReactJS, Unity, Arcore, khảo sát nghiệp

vụ, quy trình xử lý hàng hóa của các ứng dụng, website tương tự hiện có: Tiki, Shopee, IKEA

+ Sprint 5: Tìm hiểu về AR và các nguyên lý thiết kế AR Thực hiện test và kiểm tra tính thực dụng của AR, áp dụng AR vào phần mềm ARFurniture và tiến hành kết hợp

+ Sprint 6: Áp dụng thành công và tiến hành Deploy, kiểm thử và bảo trì, thu thập thông tin từ người dùng thử

Trang 23

Sprint Nguyễn Quốc Nam Sang

Trang 24

MỤC LỤC

Chương 1 Giới thiệu đề tài 311.1 Mục tiêu đề tài: 311.2 Lí do chọn đề tài: 321.3 Tổng quan các vấn đề chính 33Chương 2 Các kiến thức/công nghệ nền tảng 342.1 ARcore Introduction 342.2 ARcore 342.3 Unity 352.4 ReactJs 362.5 Mobx 382.6 Java Jax-rs 382.7 Amazon Elastic cloud compute 392.8 Amazon Relational Database Service 40Chương 3 Xây dựng ứng dụng 413.1 Tổng quan khảo sát các ứng dụng liên quan 413.1.1 Khảo sát AppStore: 413.1.2 Khảo sát các cửa hàng online như Shoppee, Tiki,… 413.2 Phân tích, thiết kế, cài đặt phần mềm 41

Trang 25

3.2.1 Yêu cầu chức năng 413.2.2 Yêu cầu phi chức năng 473.2.3 Yêu cầu giao diện 483.3 Đặc tả yêu cầu phần mềm 493.3.1 Các bên liên quan – Stakeholders 493.3.2 Các actors và mục tiêu 503.3.3 Các usecase 513.3.4 Sơ đồ Use Case 533.3.5 Đặc tả Use Cases 553.3.6 Sơ đồ Sequence 733.3.7 Sơ đồ Activity 843.4 Thiết kế giao diện 893.4.1 Sơ đồ màn hình liên kết 893.4.2 Danh sách màn hình 913.4.3 Hình ảnh mỗi màn hình 96Chương 4 Thiết kế Kiểm thử 1224.1 Môi trường kiểm thử 1224.2 Kết quả thử nghiệm 1224.3 Kết quả sản phẩm: 122Chương 5 Kết luận và hướng phát triển 1235.1 Kết quả đạt được 1235.1.1 Lý thuyết 1235.1.2 Công nghệ 123

Trang 26

5.1.3 Ứng dụng FurnitureStore bán hàng online 1255.1.4 Ứng dụng FurnitureStore AR 1265.2 Hạn chế 1275.3 Hướng phát triển 127Tài liệu tham khảo 129

Trang 27

DANH MỤC TỪ VIẾT TẮT

TỪ VIẾT TẮT TỪ ĐẦY ĐỦ ĐỊNH NGHĨA TIẾNG VIỆT

AR Augmented reality Thực tế tăng cường

SDK Software Development Kit Bộ phát triển phần mềm

NDK Native Development Kit Bộ phát triển Native

3D Three Dimensional 3 chiều

API Application Programming

Interface Giao diện lập trình ứng dụng

Trang 28

DANH MỤC BẢNG BIỂU

Bảng 3.1 Bảng yêu cầu chức năng 47 Bảng 3.2 Bảng yêu cầu phi chức năng 47 Bảng 3.3 Bảng yêu cầu giao diện 49 Bảng 3.4 Bảng các actors và mục tiêu 51 Bảng 3.5 Đặc tả use case “cấp quyền camera” 56 Bảng 3.6 Đặc tả use case “tìm kiếm mặt phẳng” 57 Bảng 3.7 Đặc tả use case “thay đổi danh mục nội thất” 58 Bảng 3.8 Đặc tả use case “Chọn nội thất” 59 Bảng 3.9 Đặc tả use case “Xóa nội thất đã chọn” 60 Bảng 3.10 Đặc tả use case “Chụp màn hình sau khi thiết kế” 61 Bảng 3.11 Đặc tả use case “Truy cập trang web để lựa và mua sản phẩm” 62 Bảng 3.12 Đặc tả use case “Tìm kiếm trên trang web sản phẩm mình muốn” 63 Bảng 3.13 Đặc tả use case “Thêm sản phẩm vào giỏ hàng” 64 Bảng 3.14 Đặc tả use case “Xem và theo dõi đơn hàng” 65 Bảng 3.15 Đặc tả use case “Chọn hình thức thanh toán” 66 Bảng 3.16 Đặc tả use case “Quản lí sản phẩm” 67 Bảng 3.17 Đặc tả use case “Quản lí đơn hàng” 69 Bảng 3.18 Đặc tả use case “Quản lí nhập hàng” 70 Bảng 3.19 Đặc tả use case “Thống kê doanh thu” 72 Bảng 3.20 Đặc tả use case “Phân quyền hệ thống” 73

Trang 29

Bảng 3.21 Bảng danh sách màn hình FurnitureStore – khách hàng 93 Bảng 3.22 Bảng danh sách màn hình FurnitureStore – Quản lý 95 Bảng 3.23 Bảng danh sách màn hình ARFurniture 96

DANH MỤC HÌNH ẢNH

Hình 3.1 Sơ đồ usecase khách hàng sử dụng website và phần mềm AR 53 Hình 3.2 Sơ đồ usecase quản lý sử dụng chức năng quản lý website 54 Hình 3.3 Sơ đồ Sequence cho UC-2 – Tìm kiếm mặt phẳng 74 Hình 3.4 Sơ đồ Sequence cho UC-3 – Thay đổi danh mục 75 Hình 3.5 Sơ đồ Sequence cho UC-5 – Xóa nội thất đã đặt 76 Hình 3.6 Sơ đồ Sequence cho UC-6 – Chụp màn hình 77 Hình 3.7 Sơ đồ Sequence cho UC-7 – Truy cập trang web để lựa và mua sản phẩm 78 Hình 3.8 Sơ đồ Sequence cho UC-8 – Tìm kiếm sản phẩm mình muốn 79 Hình 3.9 Sơ đồ Sequence cho UC-9 – Thêm sản phẩm vào giỏ hàng 79 Hình 3.10 Sơ đồ Sequence cho UC-10 – Xem và theo dõi đơn hàng 80 Hình 3.11 Sơ đồ Sequence cho UC-13– Đặt hàng và thanh toán 81 Hình 3.12 Sơ đồ Sequence cho UC-15 – Quản lí đơn hàng 82 Hình 3.13 Sơ đồ Sequence cho UC-18 – Phân quyền hệ thống 83 Hình 3.14 Sơ đồ Activity cho UC-2 – Tìm kiếm mặt phẳng 84 Hình 3.15 Sơ đồ Activity cho UC-3 – Thay đổi danh mục 85

Trang 30

Hình 3.16 Sơ đồ Activity cho UC-1 – Chọn nội thất 86 Hình 3.17 Sơ đồ Activity cho UC-5 – Xóa nột thất đã đặt 87 Hình 3.18 Sơ đồ Activity cho UC-6 – Chụp màn hình 88 Hình 3.19 Sơ đồ liên kết FurnitureStore khách hàng 89 Hình 3.20 Sơ đồ liên kết FurnitureStore – Quản lý 91 Hình 3.21 Sơ đồ liên kết ARFurniture 91 Hình 3.22 Màn hình trang chủ 96 Hình 3.23 Màn hình đăng nhập 97 Hình 3.24 Màn hình đăng ký 97 Hình 3.25 Màn hình chi tiết sản phẩm 98 Hình 3.26 Màn hình giỏ hàng 99 Hình 3.27 Màn hình quản lý đơn hàng 100 Hình 3.28 Màn hình thanh toán đơn hàng 101 Hình 3.29 Màn hình thanh toán bằng Visa 102 Hình 3.30 Màn hình chi tiết đơn hàng 102 Hình 3.31 Màn hình trang chủ trước khi đăng nhập 103 Hình 3.32 Màn hình trang chủ sau khi đăng nhập 103 Hình 3.33 Màn hình đăng nhập 104 Hình 3.34 Màn hình quản lý sản phẩm 104 Hình 3.35 Màn hình chi tiết sản phẩm 105 Hình 3.36 Màn hình sửa sản phẩm 106

Trang 31

Hình 3.37 Màn hình thêm sản phẩm 107 Hình 3.38 Màn hình quản lý đơn hàng 108 Hình 3.39 Màn hình chi tiết đơn hàng 109 Hình 3.40 Màn hình sửa đơn hàng 110 Hình 3.41 Màn hình thêm đơn hàng 111 Hình 3.42 Màn hình quản lý nhập hàng 112 Hình 3.43 Màn hình chi tiết đơn nhập hàng 112 Hình 3.44 Màn hình sửa đơn nhập hàng 113 Hình 3.45 Màn hình thêm đơn nhập hàng 114 Hình 3.46 Màn hình chọn khung thời gian thống kê doanh thu 115 Hình 3.47 Biểu đồ thống kê doanh thu của một món đồ trên tổng 115 Hình 3.48 Biểu đồ thống kê chi phí 116 Hình 3.49 Màn hình chọn khung thời gian thống kê lợi nhuận 116 Hình 3.50 Biểu đồ thống kê lợi nhuận 117 Hình 3.51 Màn hình phân quyền tài khoản 117 Hình 3.52 Màn hình trang chính chưa đăng nhập 118 Hình 3.53 Màn hình trang chính sau khi đăng nhập 118 Hình 3.54 Màn hình đăng nhập 119 Hình 3.55 Màn hình đăng ký 120 Hình 3.56 Màn hình danh mục khác 120 Hình 3.57 Màn hình giỏ hàng 121

Trang 32

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

Tên đề tài: Tìm hiểu AR và xây dựng ứng dụng website bán đồ nội thất

1.1 Mục tiêu đề tài:

Công việc kinh doanh buôn bán đã xuất hiện từ rất lâu, trải qua mỗi giai đoạn lịch

sử nó mang một hình thức đặc thù riêng Trước kia, khi các công cụ hỗ trợ công việc mua bán chưa phát triển mạnh, thì người kinh doanh mua bán chỉ diễn ra dưới hình thức mua bán trực tiếp Từ khi khoa học công nghệ phát triển, nó đã tạo ra phát triển các loại hình thức mua bán mới, điển hình là mua bán trực tuyến Hình thức mua bán trực tuyến

hỗ trợ đắc lực cho người kinh doanh tiếp xúc với được nhiều khách hàng, còn khách hàng thì công việc mua bán được diễn ra nhanh chóng, thuận lợi, tiết kiệm được thời

gian,…

Hiện nay, Thương Mại Điện Tử (TMĐT) đang được nhiều quốc gia quan tâm, coi

là một trong những động lực phát triển chủ yếu của nền kinh tế và dần trở thành xu hướng tất yếu trong mùa dịch toàn cầu COVID-19 đang diễn ra TMĐT đem lại những lợi ích tiềm tàng, giúp doanh nghiệp thu được thông tin phong phú về thị trường và đối tác, giảm chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ bạn hàng Thế nhưng thị trường thương mại điện tử hiện nay chỉ giới hạn ở những món đồ nhỏ, món đồ dễ lắp đặt

và không có giá trị quá lớn khi người dùng phổ thông muốn mua bán online Với công nghệ AR bọn em muốn mở rộng thị trường đến những món đồ mà bình thường không ai nghĩ tới sẽ mua bán qua internet: đồ nội thất, trang trí nhà, phòng ốc

Việc mua hàng qua mạng chỉ với thủ tục đăng ký mua sắm đơn giản nhưng đem lại nhiều lợi ích: tiết kiệm và chủ động về thời gian, tránh những nơi đông người và tránh khỏi những phiền phức khó chịu Vậy nên việc mua bán hàng qua mạng đang rất được mọi người quan tâm và thị trường mua bán đồ nội thất online cũng chưa được khai thác nhiều nên rất có tiềm năng để phát triển, công nghệ AR sẽ là đòn bẩy thúc đẩy khả năng

Trang 33

khai thác thị trường này Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các website trong thực tế, em đã quyết định chọn đề tài “Tìm hiểu AR và xây dựng ứng dụng bán đồ nội thất online”

Các ưu điểm mà luận văn tốt nghiệp hướng tới đạt được:

- Phục vụ tốt hơn nhu cầu của khách hàng và quản lý của cửa hàng trong hoạt động kinh doanh

- Khách hàng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể đặt hàng được ngay

- Khách hàng có thể xem trước sản phẩm mình chọn sẽ trông ra sao trong nhà, phòng mình từ đó tăng khả năng quyết định đặt mua sản phẩm

Mục đích của đề tài là tạo ra một sản phẩm giúp thương mại hóa thị trường bán

đồ nội thất trên hệ thống internet và android, giúp thúc đẩy số hóa công việc buôn bán nội thất, đồ trang trí hay những món đồ to lớn khiến người mua đắn đo khi mua trên sàn thương mại điện tử hiện có

Trang 34

Với phần mềm thiết kế nội thất bằng AR của em sẽ giúp cho các công ty design hoặc các cửa hàng bán hàng nội thất áp dụng công nghệ để triển khai những sản phẩm của mình cho khách hàng ngay tại nhà\phòng của họ chỉ bằng các thiết bị Mobile có tích hợp công nghệ AR trong camera

Sau khi thiết kế hoàn chỉnh người dùng có thể chọn những món đồ thêm vào giỏ hàng(sau khi đã đăng nhập) và tiến hành mua đồ nội thất tại website bán hàng nội thất

1.3 Tổng quan các vấn đề chính

Bài toán: Sử dụng công nghệ AR để thiết kế một phần mềm có tính ứng dụng

trong cuộc sống hoặc cho xã hội, kết hợp với phần mềm bán hàng online để kinh doanh thương mại sản phẩm nội thất

Giới hạn/phạm vi: Những quy trình ứng dụng, nghiệp vụ của phần mềm được

tìm hiểu từ những phần mềm trên thị trường và tự suy diễn ra với tư cách là một người dùng sản phẩm

Các nội dung nghiên cứu/thực hiện: Nghiên cứu các quy trình nghiệp vụ và áp

dụng công nghệ AR và các công nghệ liên quan khác để triển khai được một phần mềm hoàn chỉnh, các nghiệp vụ, quy trình của một website bán hàng online cụ thể là cửa hàng bán đồ nội thất online

Kết quả hướng tới: Một phần mềm AR có giá trị sử dụng và một website bán

nội thất liên kết được với phần mềm AR

Trang 35

CHƯƠNG 2 CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG

2.1 ARcore Introduction

ARcore là một thư viện open source của google nhằm giúp cho các developer có thể triển khai công nghệ AR vào ứng dụng của mình mà không phải nghiên cứu khoa học và các học thuật liên quan khác Thư viên này giúp các developer có thể tìm hiểu hơn về các nguyên lý thiết kế AR và các hướng liên quan đến AR Khi sử dụng thư viện thì bắt buộc phải xài các framework như UE hoặc Unity, bạn có thể tùy biến thư viện để

sử dụng trên framework của mình nhưng sẽ phải tự tìm hiểu từ đầu những nguyên lý của

AR để triển khai trên engine hoặc framework của bản thân

2.2 ARcore

ARcore là một thư viện giúp các Developer tích hợp AR vô phần mềm của mình

Vì nó là thư viện open source nên sẽ không có các chức năng cụ thể mà chỉ có các chức năng đa dụng để có thể triển khai AR trên các nền tảng khác nhau

Các tính năng hiện tại mà ARcore cung cấp cho developer:

• Anchor: Khi ARcore update môi trường xung quanh thì những object sẽ có hiệu ứng trôi đi và anchor giúp giữ object tại chỗ trong vị trí tương đối với thế giới hiện tại Chúng ta dùng anchor để đảm bảo trải nghiệm cho người dùng và tính chân thật của phần mềm của chúng ta

• Camera Config: hỗ trợ Developer chỉnh sửa camera, cung cấp các thông tin như CPU và GPU Lớp này giúp Developer điều chỉnh khả năng nhận biết chiều sâu của camera, FPS của camera,…

• Config: cho Developer khả năng chỉnh lại các hiệu năng khác nhau của ARcore như PlaneFindingMode(phương pháp tìm kiếm mặt

phẳng),UpdateMode(chỉnh sửa hành vi của Session.Update()),…

Trang 36

• Plane:Lớp mặt phẳng do ARcore tạo ra để Developer sử dụng định nghĩa mặt phẳng ngoài đời thực qua Camera [1]

2.3 Unity

Unity là một “cross- flatform game engine” tạm hiểu là công cụ phát triển game

đa nền tảng được phát triển bởi Unity Technologies Game engine này được sử dụng để phát trển game trên PC, consoles, thiết bị di động và trên websites

Chức năng cốt lõi đa dạng bao gồm: cung cấp công cụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm thanh,

mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dò ng dữ liệu xử lý, quản lý

bộ nhớ, dựng ảnh đồ thị và kết nối mạng Nhờ có các engine mà công việc làm game trở nên ít tốn kém và đơn giản hơn

Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng hỗ trợ gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và cả Flash Nói cách khác, chỉ với một gói engine, các studio có thể làm game cho bất kỳ hệ điều hành nào và

dễ dàng convert chúng sang những hệ điều hành khác nhau Đồng thời, đây cũng là giải pháp cho các game online đa nền tảng – có thể chơi đồng thời trên nhiều hệ điều hành, phần cứng khác nhau như Web, PC, Mobile, Tablet…

Dễ sử dụng: Unity3D được built trong một môi trường phát triển tích hợp, cung cấp một Phần mềm toàn diện cho các lập trình viên, từ soạn thảo mã nguồn, xây dựng công cụ tự động hóa đến trình sửa lỗi Do được hướng đến đồng thời cả lập trình viên không chuyên và studio chuyên nghiệp, nên Unity3D khá dễ sử dụng Hơn nữa, đây là một trong những engine phổ biến nhất trên thế giới, người dùng có thể dễ dàng tìm kiếm kinh nghiệm sử dụng của “tiền bối” trên các forum công nghệ

Trang 37

Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000 USD/năm Với bản Pro, người dùng phải trả 1.500 USD/năm – một con số rất khiêm tốn so với những

gì engine này mang lại [2]

2.4 ReactJs

React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Application Trong khi những framework khác cố gắng hướng đến một mô hình MVC hoàn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện Javascript khác Nếu như AngularJS là một Framework cho phép nhúng code javasscript trong code html thông qua các attribute như ng-model, ng-repeat thì với react là một library cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ dàng lồng các đoạn HTML vào trong JS Tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn

Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau React so sánh

sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM Trươc khi đến cài đặt và cấu hình, chúng ta sẽ đi đến một số khái niệm

cơ bản [3]:

Virtual DOM: Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng Việc chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lý React JS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề này.Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM tree thật React sử dụng cơ chế one-way data binding – luồng

Trang 38

dữ liệu 1 chiều Dữ liệu được truyền từ parent đến child thông qua props Luồng dữ liệu đơn giản giúp chúng ta dễ dàng kiểm soát cũng như sửa lỗi Với các đặc điểm ở trên, React dùng để xây dựng các ứng dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian Dữ liệu thay đổi thì hầu hết kèm theo sự thay đổi về giao diện Ví dụ như Facebook: trên Newsfeed của bạn cùng lúc sẽ có các status khác nhau và mỗi status lại

có số like, share, comment liên tục thay đổi Khi đó React sẽ rất hữu ích để sử dụng

JSX: JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript Đặc điểm: Faster: Nhanh hơn JSX thực hiện tối ưu hóa trong khi biên dịch sang mã Javacsript Các mã này cho thời gian thực hiện nhanh hơn nhiều so với một mã tương đương viết trực tiếp bằng Javascript Safer: an toàn hơn Ngược với Javascript, JSX là kiểu statically-typed, nghĩa là nó được biên dịch trước khi chạy, giống như Java, C++

Vì thế các lỗi sẽ được phát hiện ngay trong quá trình biên dịch Ngoài ra, nó cũng cung cấp tính năng gỡ lỗi khi biên dịch rất tốt Easier: Dễ dàng hơn JSX kế thừa dựa trên Javascript, vì vậy rất dễ dàng để cho các lập trình viên Javascripts có thể sử dụng

Components: React được xây dựng xung quanh các component, chứ không dùng template như các framework khác Trong React, chúng ta xây dựng trang web sử dụng những thành phần (component) nhỏ Chúng ta có thể tái sử dụng một component ở nhiều nơi, với các trạng thái hoặc các thuộc tính khác nhau, trong một component lại có thể chứa thành phần khác Mỗi component trong React có một trạng thái riêng, có thể thay đổi, và React sẽ thực hiện cập nhật component dựa trên những thay đổi của trạng thái Mọi thứ React đều là component Chúng giúp bảo trì mã code khi làm việc với các dự

án lớn Một react component đơn giản chỉ cần một method render Có rất nhiều methods khả dụng khác, nhưng render là method chủ đạo

Props và State: Props: giúp các component tương tác với nhau, component nhận input gọi là props, và trả thuộc tính mô tả những gì component con sẽ render Prop là bất

Trang 39

biến State: thể hiện trạng thái của ứng dụng, khi state thay đồi thì component đồng thời render lại để cập nhật UI

Phiên bản ReactJS trong khóa luận này sẽ là phiên bản React sử dụng ngôn ngữ typescript được phát triển và publish trên github [4]

2.5 Mobx

MobX rất đơn giản, có thể mở rộng (scalable) và là một giải pháp để quản lý trạng thái (state management) Hướng dẫn sau sẽ giúp bạn hiểu khái niệm cơ bản của MobX trong mười phút MobX là một thư viện độc lập, nhưng hầu hết mọi người sử dụng nó

của mỗi ứng dụng và ở đây không có con đường nào tạo ra nhiều lỗi, không thể quản lý ứng dụng nhanh hơn việc tạo ra một trạng thái không nhất quán (inconsistent state) hoặc một state không đồng bộ với các biến cục bộ xung quanh Do đó có nhiều giải pháp quản

lý state bằng cách cố gắng hạn chế các cách mà bạn có thể sửa đổi state, ví dụ như làm state bất biến (state immutable) Nhưng các cách này lại phát sinh vấn đề mới, dữ liệu cần được chuẩn hóa, tính toàn vẹn tham chiếu có thể không còn được đảm bảo và nó không thể sử dụng các khái niệm mạnh mẽ như prototype

MobX có thể làm state management trở nên đơn giản bởi giải quyết vấn đề cốt lõi: không thể ạo ra trạng thái không nhất quán Để làm được điều này thật đơn giản: đảm bảo mọi thứ có thể được dẫn xuất từ trạng thái ứng dụng một cách tự động [5]

2.6 Java Jax-rs

Java Api cho Restful web services(JAX-RS) là một API có mục đích giúp đỡ, tạo giải pháp cho việc phát triển Restful web services trong Java Động lực tạo nên API này đến từ việc những Java Web API hiện có thường gặp các vấn đề sau:

Trang 40

• Cấp rất thấp, bắt buộc developer phải hiện thực nhiều việc dễ gây lỗi và mang tính lặp lại như URL pasting, thương lượng nội dung,…

• Cấp cao và dễ hiểu, làm cho việc xây dựng web services theo một pattern nào đó dễ dàng nhưng thiếu khả năng linh hoạt để xử lý những trường hợp thông dụng khác

JAX-RS là một trong những Java API thuộc thế hệ mới nhất sử dụng Java annotation(phụ chú) để giảm thiểu những lớp cơ bản cần thiết, hiện thực lại những interface cần thiết và những file thiết lập phức tạp Phụ chú được dùng như một công cụ

để điều hướng request từ client đến đúng lớp Java và phương thức lớp Java đó và gắn request data vào những parameter đã định nghĩa ở trong phương thức đó JAX-RS cũng cung cấp những lớp và interface truyền thống để truy cập động đến request data và để tùy biến responses [6]

2.7 Amazon Elastic cloud compute

Amazon Elastic cloud compute(EC2) là một công cụ thuộc Amazon web service cloud console(AWS cloud console) giúp cho người dùng AWS cloud console có khả năng tạo một máy ảo trên hệ thống cloud của Amazon tại vị trí cụ thể trong hệ thống cloud server của AWS

Người dùng có thể sử dụng Amazon machine images(AMI) để tạo thẳng ngay môi trường máy ảo mà mình mong muốn hoặc tự tạo kernel Linux rồi thiết lập mội trường hệ điều hành mình mong muốn trên kernel Linux đó

Người dùng có thể tạo, triển khai, dừng hoặc xóa máy ảo trên Amazon EC2 tạo

sự tiện lợi trong việc triển khai, bảo trì hoặc nâng cấp server

Ngày đăng: 05/09/2021, 20:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w