GIỚI THIỆU CHUNG
Lý do chọn đề tài
Ngày nay, sự phát triển mạnh mẽ của thương mại điện tử và sự tiến bộ của đất nước đã dẫn đến nhu cầu mua bán hàng hóa ngày càng tăng, đặc biệt là giao dịch trực tuyến Tại đây, mọi giao dịch được thực hiện một cách nhanh chóng và tiện lợi, phản ánh rõ nét xu hướng tiêu dùng hiện đại.
Ứng dụng mua bán trực tuyến sẽ giúp đưa cửa hàng lên internet và thực hiện giao dịch trực tuyến Dự án được xây dựng trên nền tảng Android, với backend sử dụng Java và framework Spring để dễ dàng xử lý và cập nhật dữ liệu Việc phân tách xử lý thông tin ở backend không chỉ nâng cao tính hiệu quả mà còn cho phép tái sử dụng để phát triển các ứng dụng trên nhiều nền tảng khác như iOS và web trong tương lai.
Phần ứng dụng trên nền tảng Android sẽ được phát triển bằng Kotlin, một ngôn ngữ lập trình mới đầy triển vọng Google đã công nhận Kotlin là ngôn ngữ ưu tiên cho phát triển ứng dụng Android nhờ vào cú pháp ngắn gọn và dễ sử dụng hơn so với Java.
Điểm mới và khác biệt về chức năng của đề tài so với một số ứng dụng
mua bán trên sàn thương mại điện tử hiện nay
1.2.1 Điểm khác biệt của đề tài Ứng dụng
APOSS Các ứng dụng thương mại điện tử khác
Hiệu suất tải dữ liệu của ứng dụng được tối ưu hóa nhờ vào việc sử dụng Paging và lazyload, giúp duy trì tốc độ tải ổn định ngay cả khi khối lượng dữ liệu tăng cao Ngược lại, các ứng dụng không áp dụng các tính năng này sẽ gặp phải tình trạng tải chậm, với thời gian tải tăng tuyến tính theo lượng dữ liệu Đồ án cũng mang đến sự đa dạng sản phẩm, cho phép mọi ngành hàng đều có thể được trình bày trên ứng dụng với những đặc trưng riêng biệt của từng sản phẩm.
Các ứng dụng buôn bán nhỏ lẻ thường tập trung vào một loại sản phẩm cụ thể và cung cấp các thuộc tính cố định, điều này gây khó khăn trong việc chuyển đổi giữa các ngành hàng khác nhau.
1.2.2 Điểm mới nổi bật của đề tài
Đa dạng hàng hóa là yếu tố nổi bật của đề tài, cho phép doanh nghiệp mở rộng lĩnh vực kinh doanh mà không cần thay đổi mã nguồn Điều này mang lại lợi thế cạnh tranh, giúp doanh nghiệp nhanh chóng nắm bắt cơ hội trên thị trường.
APOSS nổi bật với khả năng cải thiện chức năng so với các ứng dụng hiện tại, cho phép chỉ định nhiều loại thông số sản phẩm khác nhau Sự đa dạng trong hàng hóa mà APOSS cung cấp chính là một lợi thế lớn, giúp người dùng dễ dàng tìm kiếm và quản lý thông tin sản phẩm hiệu quả hơn.
Khảo sát các ứng dụng hiện nay cho thấy có nhiều hạn chế trong quản lý giỏ hàng và thanh toán, khi người dùng chỉ có thể mua tất cả sản phẩm mà không thể tùy chọn sản phẩm muốn thanh toán hoặc lưu lại các sản phẩm chưa thanh toán Điều này không chỉ hạn chế sự lựa chọn của người dùng mà còn làm tăng thao tác, khiến trải nghiệm người dùng trở nên phức tạp Để khắc phục vấn đề này, APOSS đã hỗ trợ thêm tính năng cho phép người dùng chọn lựa sản phẩm để thanh toán và lưu lại các sản phẩm chưa chọn.
Nhiều ứng dụng hiện nay vẫn sử dụng phương pháp tải toàn bộ dữ liệu trên một màn hình, dẫn đến hiệu suất sản phẩm kém và trải nghiệm người dùng không tốt Việc áp dụng kỹ thuật Paging và lazy load của APOSS sẽ giúp cân bằng thời gian tải dữ liệu, giữ chân người dùng hiệu quả hơn.
Phạm vi nghiên cứu
- Tìm hiểu và áp dụng các bài toán về xử lý đặt hàng, hay bài toán về sự đa dạng hàng hóa
- Xây dựng ứng dụng cung cấp dịch vụ mua bán trực tuyến đến mọi loại của hàng ngành hàng
APOSS bao gồm ba phần, trong đó ứng dụng dành cho người mua và người bán sẽ được phát triển bằng ngôn ngữ Kotlin và sử dụng Dagger Hilt Phần backend sẽ được xây dựng bằng Java kết hợp với Spring Framework.
Triển khai và đánh giá độ chính xác của từng phương pháp dựa trên dữ liệu thử nghiệm là bước quan trọng trong quá trình phát triển Hệ thống gợi ý sản phẩm sẽ được áp dụng vào ứng dụng FAIIKAN, giúp cung cấp những gợi ý sản phẩm phù hợp cho người dùng.
Đối tượng nguyên cứu
+ Java Spring Boot, JWT, Spring Security
- Các bài toán về xử lý đặt hàng, tăng hiệu suất, đa dạng hàng hóa sản phẩm
- Đối tượng trong phạm vi đề tài hướng đến:
+ Tất cả doanh nghiệp, cửa hàng vừa và nhỏ ở mọi loại ngành hàng mặt hàng
+ Khách hàng (Người tiêu dùng).
Phương pháp nguyên cứu
- Tìm hiểu các phương pháp hiện có
Nghiên cứu nghiệp vụ và quy trình hoạt động của các ứng dụng thương mại điện tử và nền tảng mua bán trực tuyến từ các thương hiệu nổi tiếng sẽ giúp hiểu rõ hơn về cách thức vận hành và tối ưu hóa trải nghiệm người dùng.
- Phác họa hệ thống tổng quát (thiết kế cơ sở dữ liệu, xử lý dữ liệu, …)
- Tham khảo các ứng dụng tương tự: SHEIN, Shopee, , …
- Tham khảo ý kiến của giảng viên hướng dẫn để được định hướng đúng, đạt kết quả tốt nhất
- Thiết kế giao diện, cơ sở dữ liệu
- Xây dựng backend và quản lý theo mô hình MVC bằng Java Spring Boot
- Vận dụng đưa ra giải pháp phù hợp cho các bài toán.
CÔNG NGHỆ SỬ DỤNG
Hê ̣quản trị cơ sở dữ liệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu hiệu quả và dễ sử dụng, cho phép tương tác mượt mà với các công nghệ hiện đại như C# và Java.
MySQL, được phát triển bởi công ty MySQL AB tại Thụy Điển vào năm 2004, đã trải qua nhiều lần thay đổi chủ sở hữu và cuối cùng được Oracle Corporation mua lại vào năm 2010.
2.2.2 Tại sao sử dụng MySQL
- Nó khá phổ biến với giới lập trình viên bởi:
+ MySQL là mã nguồn mở, hoàn toàn miễn phí khi sử dụng
+ MySQL sử dụng form chuẩn thuộc hệ SQL
+ MySQL dễ dàng xử lý ngay cả trên các tập dữ liệu lớn
- MySQL hỗ trợ giao dịch nhanh Giao dịch ACID (Atomic-Consistent- Isolated-Durable) hoàn thiện.
Sơ lược ngôn ngữ
Kotlin là ngôn ngữ lập trình đa nền tảng hiện đại, hoàn toàn tương thích với Android, được phát triển bởi JetBrains, công ty đứng sau IntelliJ Java IDE Ngôn ngữ này không chỉ là một lựa chọn độc lập mà còn là một phương pháp mới để phát triển mã nguồn Java Với khả năng hoạt động liền mạch cùng Java, Kotlin giúp các nhà phát triển dễ dàng tích hợp và tận dụng các thư viện hữu ích từ ngôn ngữ này.
Kotlin là ngôn ngữ lập trình tĩnh, hoạt động trên máy ảo Java (JVM) và có khả năng biên dịch sang mã nguồn Java hoặc sử dụng hạ tầng trình biên dịch LLVM.
Lý do sử dụng Kotlin
Kotlin giúp tối ưu hóa mã nguồn với cấu trúc ngắn gọn, trực quan và dễ học, giảm thiểu các đoạn mã không cần thiết Theo ước tính của Ovechkin, việc sử dụng Kotlin có thể thu nhỏ code base từ 15-25%, tiết kiệm thời gian và nâng cao hiệu quả lập trình.
Để đảm bảo an toàn và tránh lỗi NullPointerException trong lập trình, điều quan trọng là không để các biến tham chiếu đến giá trị null khi ứng dụng đang chạy Lỗi này có thể dẫn đến việc ứng dụng không hoạt động và chỉ báo lỗi Tuy nhiên, với Kotlin, các nhà phát triển có thể yên tâm rằng ngôn ngữ này giúp ngăn chặn vấn đề này hiệu quả.
Khả năng tương tác cao, tương thích 100% và đẩy mạnh sử dụng các thư viện hiện có trong JVM, bao gồm cả SAM support
Tool làm việc thân thiện, có thể lựa chọn các Java IDE để làm việc hoặc làm việc với command line.
Môi trường phát triển tích hợp (IDE) Android Studio
2.3.1 Giới thiệu sơ lượt android studio
Android Studio là phần mềm tích hợp nhiều công cụ cần thiết để phát triển ứng dụng cho thiết bị sử dụng hệ điều hành Android, bao gồm smartphone và tablet.
Android Studio là một môi trường phát triển tích hợp (IDE) mạnh mẽ, bao gồm trình chỉnh sửa mã, gỡ lỗi, công cụ hiệu suất và hệ thống xây dựng/triển khai Nó cung cấp trình giả lập để mô phỏng môi trường thiết bị di động, giúp lập trình viên phát triển ứng dụng một cách nhanh chóng, từ những dự án đơn giản đến phức tạp.
Android Studio is the official IDE from Google for developing native Android applications, supporting operating systems such as Windows, Mac OS X, and Linux It replaces the previous Android Development Tools (ADT) based on Eclipse.
2.3.2 Một số điểm mạnh của android studio so với các IDE khác
+ Một hệ thống xây dựng Gradle linh hoạt
+ Trình mô phỏng nhanh và tính năng phong phú
+ Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android
+ Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới
+ Tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mã mẫu
+ Các công cụ và khuôn khổ thử nghiệm mở rộng
Cơ sở dữ liệu thời gian thực Firebase
2.4.1 Một số thông tin về firebase
Firebase là dịch vụ cơ sở dữ liệu thời gian thực của Google, hoạt động trên nền tảng đám mây, giúp lập trình viên phát triển ứng dụng di động nhanh chóng bằng cách đơn giản hóa việc tương tác với cơ sở dữ liệu.
Dự án ứng dụng ba dịch vụ nổi bật của Firebase, trong đó có Firebase Authentication, giúp quản lý đăng nhập và đăng ký thông tin khách hàng Dịch vụ này không chỉ nâng cao tính an toàn của hệ thống xác thực mà còn cải thiện trải nghiệm đăng nhập cho người dùng, mang lại sự thuận tiện và tin cậy.
Firebase storage : Cung cấp dịch vụ lưu trữ file dưới dạng tệp âm thanh, hình ảnh,… Dùng để lưu trữ thông tin ứng dụng
2.4.2 Ứng dụng firebase vào đồ án
Việc xây dựng một server để lưu trữ hình ảnh sản phẩm là rất cần thiết, và Firebase cung cấp dịch vụ miễn phí Firebase Storage, cho phép lưu trữ và truy xuất hình ảnh nhanh chóng và dễ dàng Nhờ vào công nghệ điện toán đám mây của Google, quá trình lưu trữ và truy xuất hình ảnh hoàn toàn tự động, giúp giảm bớt khối lượng công việc xử lý liên quan đến lưu trữ hình ảnh.
Công cụ quản lý đồ án Notion
Notion is an all-in-one note-taking software that combines the functionalities of Google Docs, Google Sheets, Google Keep, Google Calendar, Google Mail, and Google Drive, allowing users to manage their tasks and information without the need to switch between multiple applications.
Notion hỗ trợ đồng bộ hóa thông tin ngay lập tức trên cả 3 nền tảng Android, Windows và iOS, giúp cải thiện việc cập nhật thông tin cho các thành viên trong nhóm.
Spring Boot
Spring Boot là một module của Spring Framework, cung cấp tính năng RAD (Rapid Application Development) – Phát triển ứng dụng nhanh
Spring Boot được dùng để tạo các ứng dụng độc lập dựa trên Spring
Spring Boot không yêu cầu cấu hình XML
Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer
2.6.2 Lý do sử dụng spring boot
Spring Framework cung cấp nhiều tính năng nổi bật, trong đó việc tích hợp Spring Data JPA là một công nghệ mạnh mẽ dựa trên nền tảng ORM và Hibernate Công nghệ này cho phép tạo ra các cơ sở dữ liệu tự động và linh hoạt, hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, giúp dễ dàng thay đổi và quản lý cơ sở dữ liệu trong tương lai.
Tạo ứng dụng độc lập, có thể chạy bằng java -jar (cho cả java web)
Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR
Cấu hình tối giản và khả năng tự động cấu hình khi cần giúp giảm thiểu thời gian viết mã, từ đó nâng cao năng suất làm việc Sử dụng các thư viện tự động như Lombok giúp loại bỏ mã boilerplate, tiết kiệm công sức cho lập trình viên.
Không yêu cầu XML config…
Chuẩn cho Microservices (Cloud support; giảm việc setup, config; các thư viện hỗ trợ…)
Kiến trúc hệ thống rõ rang, dễ dàng tiếp cận, là nền tảng cho sự phát triển sau này
Hệ sinh thái xoay quanh spring boot hỗ trợ quá tốt như:
+ AWS cho vấn đề triển khai hệ thống
+ Hirbernate cho phép đa dạng hóa cơ sở dữ liệu trong mỗi giai đoạn phát triển Google Firebase Cloud.
JSON web token (JWT)
JSON Web Token (JWT) là một tiêu chuẩn mở cho phép truyền tải thông tin an toàn giữa các ứng dụng thông qua đối tượng JSON Dữ liệu được mã hóa và xác thực, cho phép giải mã để lấy lại thông tin và đảm bảo tính tin cậy.
“chữ ký” của nó Phần chữ ký của JWT sẽ được mã hóa lại bằng HMAC hoặc RSA
The header consists of two key pieces of information: the type of token, typically a bearer token, and the encryption method used The payload contains essential data for transmission, primarily information necessary for authentication purposes.
Chữ ký (Signature) được tạo ra bằng cách sử dụng phương pháp mã hóa được chỉ định trong header, nhằm mã hóa nội dung của header, payload và chuỗi khóa bí mật Định dạng của chữ ký này là header.payload.signature.
2.7.2 Áp dụng JWT trong đồ án:
+ Hỗ trợ việc bảo mật trong hệ thống, và phân quyền cho user
+ Tăng cường bảo mật do JWT không sử dụng cookie.
XÂY DỰNG HỆ THỐNG
Xây dựng kiến trúc hệ thống
3.1.1 Kiến trúc hệ thống ứng dụng
Hình 3-1 Sơ đồ kiến trúc hệ thống
3.1.2 Xác định yêu cầu hệ thống
Quy trình đặt hàng bắt đầu khi khách hàng thêm sản phẩm vào giỏ hàng, sau đó chọn các sản phẩm cần thanh toán Tiếp theo, khách hàng thực hiện checkout để gửi đơn hàng lên cơ sở dữ liệu, đồng thời hệ thống sẽ cập nhật thông tin đơn hàng cho cả hai ứng dụng.
Phân tích yêu cầu hệ thống
3.2.1 Phần ứng dụng Mobile cho người mua (Kotlin) Đăng ký: Để có thể có được tài khoản trên ứng dụng APOSS, người dùng thực hiện mục đăng ký trong ứng dụng, điền cá thông tin cần thiết để tiến hành tạo tài khoản Đă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 các tính năng của khách hàng của ứng dụng
Khi người dùng chọn các ngành hàng và loại hàng, ứng dụng sẽ hiển thị danh sách sản phẩm tương ứng theo từng ngành và loại đó.
Khách hàng có thể dễ dàng tìm kiếm 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ẽ nhanh chóng cung cấp danh sách các sản phẩm có chứa từ khóa trong tên Nếu không có sản phẩm nào phù hợp, ứng dụng sẽ hiển thị màn hình trống.
Khách hàng có thể nhắn tin trực tiếp với người bán hàng để làm rõ thông tin về sản phẩm hoặc để báo cáo những vấn đề liên quan đến sản phẩm Tính năng này giúp tạo ra sự tương tác nhanh chóng và hiệu quả giữa khách hàng và người bán.
Quản lý danh sách yêu thích cho phép người dùng lưu lại những sản phẩm ưa thích trong quá trình tìm kiếm và xem Hệ thống sẽ tự động thông báo khi có sản phẩm nào trong danh sách yêu thích chuyển từ trạng thái hết hàng sang có hàng, giúp người dùng không bỏ lỡ cơ hội mua sắm.
Khi khách hàng chọn một danh mục sản phẩm, hệ thống sẽ hiển thị danh sách các sản phẩm tương ứng để khách hàng có thể chọn và xem thông tin chi tiết như tên, hình ảnh, giá bán, thông số kỹ thuật và đánh giá từ người dùng khác Khách hàng có thể đánh giá sản phẩm từ 0 đến 5 sao, kèm theo nhận xét bằng chữ, hình ảnh hoặc video, nhưng chỉ những người đã mua sản phẩm mới có quyền đánh giá Để đặt hàng, khách hàng chọn sản phẩm và gửi đơn hàng lên hệ thống, kèm theo địa chỉ giao hàng để thông báo cho bên bán.
Khách hàng có thể dễ dàng theo dõi đơn hàng của mình thông qua danh sách đơn hàng, nơi hệ thống hiển thị tất cả các đơn hàng đã đặt Bên cạnh đó, khách hàng cũng có thể sử dụng chức năng lọc để xem theo tình trạng của từng đơn hàng.
Phần ứng dụng Mobile (người bán)
• Xem tất cả sản phẩm: Tại đây người bán có thể xem tất cả các sản phẩm
• Thêm sản phẩm: Cho phép người bán có thể thêm sản phẩm mới
• Chỉnh sửa sản phẩm: Chức năng cho phép người bán có thể chỉnh sửa các sản phẩm
• Xóa sản phẩm: Chức năng cho phép admin xóa sản phẩm
• Người bán sẽ tiến hành cập nhật trạng thái đơn hàng cho người mua sáng xác nhận hoặc deliveried
Quản lý ngành hàng, loại hàng:
• Xem tất cả ngành hàng loại hàng: Cho phép admin xem tất cả danh mục hiện có
• Thêm ngành hàng loại hàng: Danh mục thêm mới bao gồm tên danh mục và hỉnh ảnh đại diện cho danh mục đó
• Chỉnh sửa ngành hàng loại hàng: Chức năng cho phép chỉnh sửa các thuộc tính danh mục là tên và hình đại diện của danh mục
Chức năng xóa danh mục cho phép quản trị viên loại bỏ một danh mục, nhưng cần lưu ý rằng khi thực hiện thao tác này, toàn bộ sản phẩm trong danh mục đó cũng sẽ bị xóa Việc này cần được cân nhắc kỹ lưỡng trước khi quyết định.
• Người dùng thực hiện hủy đơn hàng kèm theo lý do để cập nhật cho người mua khi phát hiện có điều bất thường.
Phân tích thiết kế hệ thống
Sơ đồ use case 3.3.1.1 Sơ đồ use case
- Use case mức tổng quát:
STT Tên Actor Mô tả ngắn/ ghi chú
1 Khách hàng Khách hàng của doanh nghiệp, cá nhân được cung cấp dịch vụ mua bán trực tuyến
2 Admin Người, doanh nghiệp được cung cấp dịch vụ mua bán trực tuyến
STT Tên của Use case Actor Mô tả ngắn/ ghi chú
1 Xem sản phẩm Khách hàng
2 Danh sách yêu thích Khách hàng
3 Trò chuyện Khách hàng Là tin nhắn của bản thân khách hàng với admin
6 Quản lý địa chỉ Khách hàng
7 Đánh giá sản phẩm Khách hàng
10 Quản lý đơn hàng Khách hàng
11 Notification Khách hàng Thông báo thay đổi tính trạng giao hàng
12 Tìm kiếm sản phẩm Khách hàng
13 Xem chi tiết sản phẩm Khách hàng
14 Xem sản phẩm theo xếp hạng lượt mua
15 Định danh khách hàng Khách hàng Chức năng tự động thực hiện ở mỗi bước
(yêu cầu khách hàng đã thực hiện đăng nhập vào hệ thống)
17 Quản lý sản phẩm/ Admin
18 Quản lý đơn đặt hàng/ Admin
19 Báo cáo bán hàng Admin
20 Nhắn tin/ Admin Gồm tín nhắn của nhiều người đến admin
21 Quản lý thông tin cửa hàng/ Admin
22 Đăng nhập hệ thống/ Admin
23 Notification/ Admin Thông báo khi có đơn hàng, đơn hủy
24 Quản lý ngành hàng/ Admin
25 Quản lý món hàng/ Admin
26 Cập nhật trạng thái giao hàng/ Admin
28 Báo cáo doanh thu Admin
29 Báo cáo số lượng bán ra Admin
Tên Use Case Xem Sản phẩm
Chức năng này cho phép khách hàng dễ dàng lướt xem chi tiết, tìm kiếm và lọc sản phẩm theo lượt mua, từ đó cung cấp thêm thông tin cần thiết giúp nâng cao trải nghiệm mua sắm Việc này không chỉ hỗ trợ khách hàng mà còn ảnh hưởng tích cực đến doanh thu của người bán.
Người thực hiện Khách hàng Điều kiện trước xử lí
1 Khách hàng tại bước đầu tiên sau khi đăng nhập đã có thể bắt đầu lướt, xem hay thực hiện các thao tác tìm kiếm
2 Để có thể thực hiện lọc theo các tiêu chí khách hàng cần chọn
“Category” sau đó chọn “Kind” để có thể tiến hành lọc các sản phẩm trong cùng một loại sản phẩm để có sự so sánh tốt hơn
Tên Use Case Danh sách yêu thích
Chức năng này cho phép khách hàng dễ dàng tìm lại sản phẩm đã mua hoặc sản phẩm đã hết hàng nhưng giờ có sẵn Nó hỗ trợ khách hàng trong việc ra quyết định mua sắm, đặc biệt khi họ không thể thực hiện giao dịch ngay tại thời điểm đó.
Điều kiện tiên quyết để thực hiện use case này là khách hàng phải đăng nhập thành công vào hệ thống.
Sau xử lí (sau Use-case)
Cập nhật đúng theo thao tác của người dùng (xóa hay thêm vào danh sách yêu thích)
Luồng sự kiện cơ bản sẽ được mô tả bên dưới theo thứ tự thực hiện:
1 Khách hàng lướt hoặc tìm kiếm các sản phẩm mà tại thời điểm đó có niềm yêu thích, nhu cầu mua nhưng không có khả năng thực hiện thanh toán
2 Khách hàng chọn nút “Add to favorite” mà được thể hiện bằng một hình trái tim nhỏ bên góc phải trên của ô mặt hàng Khi đó sản phẩm sẽ được đưa vào “favorite list” và mặt hàng nếu đã ở trạng thái “available” sẽ được chuyển sang mục “Available list” (vẫn là thuộc favorite list nhưng hiển thị riêng biệt ở available list)
Ngoài luồng cơ bản dùng để thêm sản phẩm vào “favorite list” thì còn có lường dùng để thực hiện xóa sản phẩm ra khỏi “favorite list”
1 Khách hàng có thể lướt để tìm kiếm lại sản phẩm đã đánh dấu là “favorite” Hoặc chọn vào Nút chuyển đến “favorite list” để xem toàn bộ “favorite list” của bản thân Di chuyển giữa 2 tab
“Favorite” và “Available” để tìm kiếm sản phảm cần xóa khỏi favorite list
2 Thực hiện thao tác ấn chọn nút “add to favorite” hình trái tìm một lần nữa để có thể xóa đánh dấu là “favorite” đồng thời xóa khỏi “favorite list”
Tên Use Case Trò chuyện
Chức năng trò chuyện cho phép khách hàng giao tiếp trực tiếp với người chủ cửa hàng (admin) để thảo luận về việc mặc cả và giải quyết các vấn đề phát sinh Tính năng này hỗ trợ khách hàng hiệu quả trong việc giải đáp thắc mắc và nâng cao trải nghiệm mua sắm của họ.
Điều kiện tiên quyết để thực hiện use case này là khách hàng phải đăng nhập thành công vào hệ thống.
Cập nhật nội dung tin nhắn lên trên màn hình hiênr thị các tin nhắn giữa 2 bên
Luồng sự kiện cơ bản sẽ được mô tả bên dưới theo thứ tự thực hiện:
1 Khách hàng chọn vào Nút “Message” bên dưới thanh dịch chuyển đáy của ứng dụng
2 Khách hàng thực hiện nhập nội dung vào thanh văn bản hiện gửi thống điệp cho người chủ của hàng và thông điệp ở trong thanh văn bản sẽ biến mất
Nếu khách hàng không nhấn nút mũi tên để gửi tin nhắn và di chuyển qua các màn hình khác, tin nhắn sẽ không được gửi đi Khi trở lại màn hình Trò chuyện, thông điệp cũ trong thanh văn bản sẽ không còn hiển thị.
Tên Use Case Giỏ hàng
Chức năng thêm sản phẩm vào giỏ hàng cho phép khách hàng lưu lại các lựa chọn mua sắm của mình, giúp họ dễ dàng tiếp tục tìm kiếm và so sánh các sản phẩm khác về giá cả, chất lượng và đánh giá Đây là một tính năng quan trọng trong quá trình ra quyết định mua hàng, đồng thời hỗ trợ khách hàng thực hiện thanh toán một cách tiện lợi.
Điều kiện tiên quyết để thực hiện use case này là khách hàng phải đăng nhập thành công vào hệ thống.
Cập nhật đúng theo thao tác của người dùng (xóa hay thêm vào giỏ hàng)
Luồng sự kiện cơ bản sẽ được mô tả bên dưới theo thứ tự thực hiện:
1 Khách hàng thực hiện lựa chọn sản phẩm sẽ thêm thào “Giỏ hàng”
2 Khách hàng ấn vào sản phẩm để xem chi tiết sản phẩm
3 Khách hàng tiến hành chọn các thuộc tính nội sản phẩm (màu sắc, kích cỡ RAM, chip, …)
4 Khách hàng chọn nút “Add to cart” để tiến hành thêm sản phẩm vào giỏ hàng
Ngoài luồng sự kiện cơ bản ta còn lường thược hiện để có thể xóa các sản phẩm ra khỏi giỏi hàng:
1 Khách hàng thực hiện đi vào giỏ hàng thông qua 2 cách:
• Cách 1: Khi đang ở ngoài các màn hình chính có thanh dịch chuyển đáy, khách hàng chọn vào biểu tượng “Giỏ hàng” để thực hiện đi đến giỏ hàng
Khi khách hàng đang ở trong các màn hình như Chi tiết sản phẩm hoặc địa chỉ, họ chỉ cần nhấn vào biểu tượng “Giỏ hàng” ở góc trên bên phải để truy cập vào giỏ hàng của mình.
2 Khách hàng tìm đến sản phầm cần loại bỏ khỏi giỏ hàng
3 Khách hàng có thể kéo quá trái hoặc phải để thực hiện xóa hàng háo khỏi giỏ hàng
Khi bạn xóa tất cả sản phẩm trong giỏ hàng, màn hình sẽ hiển thị biểu tượng thông báo giỏ hàng rỗng, giúp tránh tình trạng màn hình trống Hãy đặt hàng ngay!
Tên Use Case Đặt hàng
Thiết kế giao diện
- Ứng dụng gồm 2 giao diện: Ứng dụng di động dành cho người mua và cho người bán
Giao diện ứng dụng di động dành cho người mua
Khi mở ứng dụng lần đầu, người dùng sẽ thấy giao diện mặc định Trong trạng thái chưa đăng nhập, họ chỉ có thể thực hiện một số chức năng cơ bản như tìm kiếm sản phẩm, xem thông tin sản phẩm, và thực hiện đăng ký hoặc đăng nhập.
+ Tại giao diện trang chủ, người dùng có thể xem tất cả các sản phẩm và chọn vào ngành hàng, loại hàng
- Giao diện đăng nhập / đăng ký
Người dùng có thể dễ dàng đăng nhập vào ứng dụng nếu đã có tài khoản hoặc thực hiện đăng ký thông qua chuỗi các màn hình hướng dẫn, để bắt đầu mua sắm sản phẩm.
Xác thực số điện thoại/email
- Giao diện danh sách yêu thích
+ Khi nhấn vào tab danh sách yêu thích, hệ thống sẽ hiển thị màn hình gồm các sản phảm được đánh dấu là yêu thích
Khi danh sách yêu thích rỗng
- Giao diện nhắn tin với người bán
+ Khi nhấn vào mục nhắn itn với người bán, thì màn hình nhắn tin sẽ hiển thị gồm các tin nhắn đã nhắn với bên bán
Màn hình nhắn tin với người bán
Khi chưa có tin nhắn nào.
- Giao diện đa chức năng (điều hướng hiên thị thông tin)
+ Tại giao diện này ta có thể ấn chọn các mục để đi đến điều chỉnh thông tin đơn hàng hoặc đánh giá,
Giao diện đa chức năng
+ Khi xem chi tiết sản phẩm, khi muốn mua hoặc thêm vào giỏ hàng, người dùng có thể thêm vào giỏ hàng để mua sau
Giao diện khi chưa có sản phẩm nào
+ Nếu muốn tìm kiếm sản phẩm nào đó thì người dùng ấn chọn vào thanh tìm kiếm để mở màn hình tìm kiếm sản phẩm
Giao diện tìm kiếm sản phẩm
- Giao diện checkout (đặt hàng)
+ Khi người dùng chọn các sản phẩm trong giỏ hàng sau đó nhấn vào thanh toán trong giao diện giỏ hàng, sẽ có hiển thị giao diện thanh toán
+ Tại mục địa chỉ nhận hàng, người dùng cũng có thể thay đổi địa chỉ giao hàng, hoặc sửa thông tin địa chỉ nhận hàng
- Giao diện Đia Chỉ giao hàng
Tại giao diện này người dùng có thể thực hiện thêm xóa sửa các địa chỉ giao hàng của bản thâ
Giao diện danh sách các địa chỉ giao hàng
Giao diện sửa/thêm địa chỉ thanh toán
- Giao diện quản lý đơn hàng
+ Người dùng có thể theo dõi đơn hàng đã đặt ở màn hình “Quản lý đơn hàng”
Giao diện quản lý đơn hàng
Giao diện chi tiết đơn hàng
- Giao diện đá nh giá
Giao diện thực hiện đánh giá sản phẩm
Giao diện danh sách các sản phẩm cần đánh giá
Giao diện danh sách các sản phẩm đã đánh giá
- Giao diện chi tiết sản phẩm
Giao diện chi tiết sản phẩm
- Giao diện ngành hàng loại hàng
- Giao diện thông tin người mua
Giao diện thông tin người mua
Giao diện di động bên bán
Giao diện thêm sản phẩm
Giao diện xem ngành hàng
Giao diện quản lí xem loại hàng
Giao diện danh sách đơn hàng
Giao diện hủy đơn hàng