4.5.1 Giao diện người dùng
- Giao diện trang chủ
+ Đây là giao diện mặc định khi mở ứng dụng. Khi chưa đăng nhập, người dùng chỉ được thực hiện các chức năng cơ bản như tìm kiếm sản phẩm, xem sản phẩm, đăng ký/ đăng nhập, …
Giao diện trang chủ
+ 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ể đăng nhập (nếu đã có tài khoản) hoặc đăng ký( bao gồm chuỗi các màn hình bước đăng ký) vào ứng dụng để có thể mua sản phẩm.
Xác thực qua mail - 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.
- 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.
- 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 giỏ hà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 - Giao diện tìm kiếm
+ 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 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.
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â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 chi tiết đơn hàng - Giao diện đá nh giá
- 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
- Màn hình Admin - Đăng nhập
- Màn hình Admin - Menu điều hướng trái
- Màn hình Admin - Trang chính
- Màn hình Admin - Bộ lọc sản phẩm
4.6 Thiết kế Server API
Nhóm
Phương thức Địa chỉ Mô tả
Xác thực người dùng
POST api/v1/auth/sign-in Đăng nhập bằng email và mật khẩu POST api/v1/auth/sign-in-with-social-account Đăng nhập bằng các tài khoản mạng xã hội POST api/v1/auth/sign-up Đăng ký tài khoản GET api/v1/auth/resent-confirm
Gửi email xác nhận (sau khi đăng ký) GET api/v1/auth/confirm Xác thực người dùng POST api/v1/auth/access-token
Tạo một token mới cho người dùng
POST api/v1/auth/seller-access-token
Tạo một token mới cho người bán
POST api/v1/auth/seller-sign-in Đăng nhập bằng email và mật khẩu cho seller
Giỏ hàng
POST api/v1/cart Khách hàng thêm sản phẩm vào giỏ hàng GET api/v1/cart Khách hàng xem sản phẩm trong giỏ hàng DELETE api/v1/{id} Khách hàng xóa sản phẩm trong giỏ hàng PUT api/v1/cart Khách hàng cập nhật sản phẩm trong giỏ hàng Khách
hàng GET api/v1/customer/{email} Tìm thông tin tài khoản (sử dụng email) Địa chỉ giao hàng
GET api/v1/delivery_address Lấy tất cả thông tin địa chỉ giao hàng
GET api/v1/delivery_address/default
Lấy tất cả thông tin địa chỉ giao hàng mặc đình POST api/v1/delivery_address Khách hàng thêm địa chỉ giao hàng DELETE api/v1/delivery_address/{id} Khách hàng xóa địa chỉ giao hàng
PUT api/v1/delivery_address Khách hàng cập nhật địa chỉ giao hàng Quận
huyện
POST api/v1/district
Lấy danh sách quận huyện dựa trên id tỉnh thành
Tỉnh
thành GET api/v1/province Lấy danh sách tỉnh thành Phường
xã
POST api/v1/ward
Lấy danh sách phường xã dựa trên id quận huyện
Ngành
hàng GET api/v1/industry/detail_category Lấy tất cả ngành hàng Loại hàng
GET api/v1/kind Lấy tất cả loại hàng
Đơn hàng GET api/v1/order Lấy tất cả đơn hàng (không bao gồm đơn hàng đã bị hủy)
POST api/v1/order Thêm đơn hàng
GET api/v1/order/all Lấy tất cả đơn hàng
PUT api/v1/order/cancel-order-customer/{id}
Khách hàng hủy đơn hàng (sử dụng id của khách hàng để định danh) PUT api/v1/order/change-order- status/{id} Admin cập nhật trạng thái đơn hàng GET api/v1/order/order-by-status
Admin lấy các đơn hàng theo trạng thái nhập vào
GET api/v1/order/on-place-order
Admin lấy các đơn chưa hoàn thành PUT
api/v1/order/cancel-order- seller/{id}
Admin hủy một đơn hàng GET api/v1/products Lấy tất cả sản phẩm (dùng kỹ thuật phân trang) GET api/v1/products/search Tìm kiếm sản phẩm (dùng kỹ thuật phân trang) GET api/v1/products/{id}
Lấy thông tin chi tiết của sản phẩm (sử dụng id của sản phẩm) GET api/v1/products/kind/{id} Lấy danh sách sản phẩm (sử dụng id của loại sản phẩm)
Sản phẩm GET api/v1/products/{id}/images Lấy tất cả hình ảnh của sản phẩm (sử dụng id của sản phẩm)
POST api/v1/products/image Admin thêm hình cho sản phẩm
PUT api/v1/products/image/{id} Admin cập nhật hình ảnh cho sản phẩm (sử dụng id của hình ảnh) DELETE api/v1/products/image/{id} Admin xóa hình ảnh của sản phẩm (sử dụng id của hình ảnh) GET api/v1/products/{id}/ratings Lấy tất cả đánh giá sản phẩm (sử dụng id của sản phẩm) GET api/v1/products/{id}/properties Lấy tất cả đặc điểm phân loại của sản phẩm (sử dụng id của sản phẩm)
POST api/v1/products Admin thêm sản phẩm mới PUT api/v1/products/{id} Admin cập nhật sản phẩm DELETE api/v1/products/{id} Admin xóa sản phẩm
POST api/v1/products/property Admin lấy tất cả đặc tính phân loại sản phẩm DELETE api/v1/products/property/{id} Admin xóa đặc tính phân loại sản phẩm POST api/v1/products/property/{id}/value
Admin thêm giá trị đặc tính phân loại vào sản phẩm (sử dụng id của đặc tính phân loại sản phẩm)
DELETE api/v1/products/property/value/{id}
Admin xóa giá trị đặc tính phân loại sản phẩm (sử dụng id của đặc tính phân loại sản phẩm)
Chương 5. Kết luận và hướng phát triển
5.1 Kết quả đạt được 5.1.1. Lý thuyết 5.1.1. Lý thuyết
• Hiểu được các bài toán trong tính toán phong thủy.
• Sử dụng được các công nghệ liên quan để giải quyết bài toán.
• Giải quyết được bài toán về đa dạng thuộc tính trong sản phẩm cả 2 phía người mua và người bán.
• Hiểu và triển khai được các nghiệp vụ cơ bản của một ứng dụng mua bán phong thủy trực tuyến..
5.1.2. Công nghệ
• Java Spring Boot: đồ án sử dụng Java Spring Boot để xây dựng backend, tạo các API cho ứng dụng.
• MySQL: Sử dụng hệ quản trị cơ sở dữ liệu MySQL để lưu trữ database của ứng dụng.
• JWT + Oauth2: để đăng nhập từ bên thứ 3 và xác thực người dùng.
• Kotlin, Java: xây 2 phần ứng dụng mobile cho người bán và người mua.
5.1.3. Ứng dụng
5.1.3.1. Ứng dụng bên phần khách hàng
• Có thể đăng ký để tạo tài khoản.
• Đăng nhập để vào ứng dụng
• Có thể tìm kiếm sản phẩm.
• Có thể xem thông tin chi tiết sản phẩm.
• Có thể xem các sản phẩm theo ngành hàng, loại hàng.
• Có thể chỉnh sửa địa chỉ giao hàng.
• Có thể thêm sản phẩm vào giỏ hàng, yêu thích sản phẩm, xem các sản phẩm đã xem.
• Có thể xem được độ tương hợp giữa bản thân và sản phẩm.
• Có thể xem lịch sử đơn hàng, tạo đơn hàng, hủy đơn hàng.
5.1.3.2. Quản lý
• Người bán có thể quản lý sản phẩm.
• Người bán có thể quản lý đơn hàng.
• Người bán có thể quản ngành hàng loại hàng, thuộc tính khác biệt nội sản phẩm.
• Người bán có quản lý thông tin bên bán.
• Người bán có thể quản lý đơn hàng, cập nhật trạng thái đơn hàng, hủy đơn hàng.
5.2 Hạn chế
• Chưa tích hợp được thanh toán trực tuyến.
• Chưa có thông báo hiển thị trên di động mỗi khi có sự thay đổi trạng thái đơn hàng hay từ danh sách yêu thích hoặc thông báo từ người bán.
• Không đủ thời gian, nên một số chức năng chưa hoàn thiện.
• Một số chức năng chỉ đang dừng ở bước thiết kế.
5.3 Hướng phát triển
• Tiếp tục thực hiện các chức năng còn đang thiếu.
• Tích hợp thanh toán trực tuyến qua Paypal, Momo, hay các đơn vị ngân hàng khác…
• Thêm vào việc lựa chọn đơn vị vận chuyển, liên kết ngân hàng thanh toán.
• Hoàn thiện thêm nhiều chức năng quản lý ứng dụng của Admin.
• Thực thi thêm phần tối ưu tải ảnh để gia tăng thêm hiệu suất.
• Áp dụng xem sản phẩm 3D để có thể xem sản phẩm trực quan hơn.
• Áp dụng AI vào chức năng xem độ tương hợp để giảm bớt thao tác nhập xuất lúc xem cung mệnh.
của người dùng.
• Áp dụng thêm tính toán, xem cung hoàng đạo và xem độ tương hợp bằng cung hoàng đạo.