Đặc tả Use-case “Xem danh mục sản phẩm”
Bảng 3.2.8: Bảng đặc tả Use-case “Xem danh mục sản phẩm”
Mô tả Khách hàng muốn xem danh mục sản phẩm
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 – Khách hàng thực hiện truy cập website
2 – Khách hàng truy cập trang sản phẩm
3 – Chọn vào danh mục cần xem sản phẩm
6 - Hệ thống thực hiện hiển thị danh sách sản phảm theo danh mục được chọn
Luồng thay thế Không có Điều kiện trước Thiết bị truy cập phải có kết nối mạng
Kết nối thành công với server. Điều kiện sau Không có
Đặc tả Use-case “Thêm giỏ hàng”
Bảng 3.2.9: Bảng đặc tả Use-case “Thêm giỏ hàng”
Mô tả Khách hàng muốn thêm sản phẩm vào giỏ hàng
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 - Người dùng thực hiện truy cập website
2 - Người dùng truy cập trang sản phẩm
3 – Chọn thêm sản phẩm vào giỏ hàng
4 – Truy cập vào Giỏ hàng để kiểm tra
5 – Hệ thống tiến hành thêm sản phẩm vào giỏ hàng
6 – Hệ thống trả về thông báo “Thêm sản phẩm vào giỏ hàng thành công”
Luồng thay thế Không có Điều kiện trước Thiết bị truy cập phải có kết nối mạng
Kết nối thành công với server. Điều kiện sau Không có
Đặc tả Use-case “Kiểm tra giỏ hàng”
Bảng 3.2.10: Bảng đặc tả Use-case “Kiểm tra giỏ hàng”
Mô tả Khách hàng muốn kiểm tra sản phẩm trong Giỏ hàng
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 – Khách hàng thực hiện truy cập website
2 – Khách hàng truy cập vào giỏ hàng để kiểm gia
3 – Khách hàng có thể cập nhật và xóa sản phẩm khỏi giỏ hàng
5 - Hệ thống truy cập trang giỏ hàng
Luồng thay thế Không có Điều kiện trước Thiết bị truy cập phải có kết nối mạng
Kết nối thành công với server. Điều kiện sau Không có
Đặc tả Use-case “Xóa sản phẩm khỏi giỏ hàng”
Bảng 3.2.11: Bảng đặc tả Use-case “Xóa sản phẩm”
Mô tả Khách hàng muốn xóa sản phẩm khỏi giỏ hàng
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 – Khách hàng thực hiện truy cập vào website
2 – Khách hàng truy cập vào Giỏ hàng
3 - Nhấn vào nút Xóa sản phẩm
6 – Hệ thống truy cập Giỏ hàng và hiển thị Sản phẩm đã được xóa khỏi giỏ hàng
Luồng thay thế Không có Điều kiện trước Thiết bị truy cập phải có kết nối mạng
Kết nối thành công với server. Điều kiện sau Không có
Đặc tả Use-case “Cập nhật sản phẩm trong giỏ”
Bảng 3.2.12: Bảng đặc tả Use-case “Cập nhật sản phẩm trong giỏ”
Mô tả Khách hàng muốn cập nhật sản phẩm trong giỏ hàng
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 – Khách hàng thực hiện truy cập website
2 – Khách hàng truy cập vào giỏ hàng
3 – Tiến hành cập nhật số lượng sản phẩm
4 – Hệ thống truy cập vào trang Giỏ hàng
5 – Hệ thống cập nhật số lượng sản phẩm
Luồng thay thế Không có Điều kiện trước Thiết bị truy cập phải có kết nối mạng
Kết nối thành công với server. Điều kiện sau Không
Đặc tả Use-case “Đặt hàng”
Bảng 3.2.13: Bảng đặc tả Use-case “Đặt hàng”
Mô tả Khách hàng tiến hành thanh toán sản phẩm cần mua
Luồng chính Hành vi của tác nhân Hành vi của hệ thống
1 – Khách hàng thực hiện truy cập vào website
2 – Khách hàng truy cập vào Giỏ hàng
3 – Chọn sản phẩm muốn đặt hàng
4 – Chọn nút Đặt hàng 5 – Đăng nhập và điền thông tin cần thiết để thanh toán sản phẩm
6 – Hệ thống tiến hành kiểm tra thông tin khách hàng
7 – Nếu thông tin hợp lệ, tiến thành cập nhật thông tin đặt hàng lên server và hiển thị thông báo đặt hàng thành công
8 – Nếu thông tin không hợp lệ, yêu cầu người dùng
Nếu thông tin nhập vào không hợp lệ, khách hàng cần nhập lại thông tin để tiếp tục quá trình đặt hàng Để thực hiện điều này, thiết bị truy cập phải được kết nối với mạng.
Kết nối thành công với server cho phép cập nhật thông tin đơn hàng lên cơ sở dữ liệu và thông báo cho tài khoản Admin Ngược lại, nếu kết nối thất bại, cơ sở dữ liệu sẽ không được thay đổi.
Sơ đồ dữ liệu
Bảng User
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng User
2 user_name nvarchar NotNull Tên của người dùng
3 pass_word nvarchar NotNull Mật khẩu của người dùng
4 gender int NotNull Giới tính của người dùng
5 address nvarchar NotNull Địa chỉ của người dùng
6 phone_number varchar NotNull SĐT người dùng
7 email varchar NotNull Email dùng để đăng nhập của người dùng
8 bithday datetime NotNull Ngày sinh của người dùng
Bảng Admin
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng Admin
2 name nvarchar NotNull Tên của admin
3 email varchar NotNull Email dùng để đăng nhập
4 pass_word varchar NotNull Mật khẩu để đăng nhập
5 product_id int NotNull Khóa ngoại trỏ đến bảng
Product, thể hiện thông tin sản phẩm
6 category_id int NotNull Khóa ngoại trỏ đến bảng
Category, thể hiện thông tin danh mục sản phẩm
7 discount int NotNull Khóa ngoại trỏ đến bảng
Discount, thể hiện thông tin khuyến mãi
Bảng Product
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng Product
2 product_name nvarchar NotNull Tên của sản phẩm
3 product_price varchar NotNull Giá sản phẩm
4 quantity int NotNull Số lượng sản phẩm
5 image varchar NotNull Hình ảnh sản phẩm
6 slug varchar NotNull Đường dẫn đến sản phẩm
7 detail_id int FK Khóa ngoại trỏ đến bảng
DetailProduct, thể hiện Chi tiết sản phẩm
8 category_id int FK Khóa ngoại trỏ đến bảng Category, thể hiện danh mục sản phẩm
Bảng DetailProduct
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng
2 image_list varchar NotNull Danh sách hình ảnh của sản phẩm
3 descripton nvarchar NotNull Thông tin chi tiết sản phẩm
4 status int NotNull Trạng thái của sản phẩm
Bảng Category
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng Category
2 title nvarchar NotNull Tên danh mục
3 category_slug varchar NotNull Đường dẫn đến danh mục
Bảng Discount
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Mã của bảng Discount
2 title nvarchar NotNull Tên của sự kiện giảm giá
3 image varchar NotNull Hình ảnh của sự kiện giảm giá
4 description nvarchar NotNull Mô tả về sự kiện giảm giá
5 discount_slug varchar NotNull Đường dẫn đến discount
Bảng Transaction
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1 id int PK Khóa ngoại trỏ đến bảng USER, thể hiện thông tin người thực hiện theo dõi sự kiện
2 status int NotNull Khóa ngoại trỏ đến bảng EVENT, thể hiện thông tin của sự kiện được theo dõi
3 amount int NotNull Thời gian thực hiện theo dõi
4 payment varchar NotNull Số tiền thanh toán
5 payment_infor nvarchar NotNull Phương thức thanh toán
7 product_id Int FK Khóa ngoại trỏ đến bảng Product
8 user_id int FK Khóa ngoại trỏ đến bảng User
THIẾT KẾ GIAO DIỆN
Trang Home 32 2
* Mô tả chung và xử lý các sự kiện trên màn hình:
Khi người dung truy cập vào trang web màn hình Home sẽ hiện lên Các component:
* Mô tả chung và xử lý các sự kiện trên màn hình:
Khi nhấn nút "Sản phẩm" trong phần Header, người dùng sẽ được chuyển đến màn hình hiển thị danh mục và danh sách sản phẩm.
* Mô tả chung và xử lý các sự kiện trên màn hình:
Giao diện vẫn chưa hoàn thiện
* Mô tả chung và xử lý các sự kiện trên màn hình:
Màn hình được hiển thị sau khi người dùng thêm sản phẩm vào giỏ hàng học chọn “Mua” và chọn button “Giỏ hàng”
- Button Đặt hàng, Tiếp tục mua hàng
- Button xóa sản phẩm khỏi giỏ hàng
* Mô tả chung và xử lý các sự kiện trên màn hình:
Khi người dùng click chọn “Liên hệ” website sẽ điều hướng tới trang Liên hệ
Hình 5.6.1: Trang chi tiết sản phẩm
Hình 5.6.2: Trang chi tiết sản phẩm
Hình 5.6.3: Trang chi tiết sản phẩm
* Mô tả chung và xử lý các sự kiện trên màn hình:
Màn hình được hiển thị sau khi người dùng click vào một sản phầm Các component:
- Form Chi tiết sản phẩm
- Danh sách sản phẩm đề xuất
TỔNG KẾT
Công nghệ sử dụng
- Công nghệ Reactjs dựa trên ngôn ngữ JavaScript, HTML, CSS - Công nghệ ASP.NET Web API dựa trên ngôn ngữ C#
- Sử dụng thư viện Axios gọi API từ services
- Sử dụng cơ sở dữ liệu Postgres để lưu trữ dữ liệu
Độ hoàn thiện chức năng
Bảng 6.1: Độ hoàn thiện chức năng
STT Tên chức năng Mức độ hoàn thành
1 Đăng ký, đăng nhập 50% Hoàn thành
Backend, chưa hoàn thành Frontend
2 Hiển thị danh sách sản phẩm
3 Hiển thị danh mục sản phẩm
4 Hiển thị sản phẩm theo danh mục
5 Xem chi tiết sản phẩm 100%
6 Thêm sản phẩm vào giỏ hàng
7 Xóa sản phẩm khỏi giỏ hàng
8 Xem thông tin khuyến mãi
9 Quản trị sản phẩm 50 Hoàn thành
Backend, chưa hoàn thành Frontend
3.Kết quả đạt được và hướng phát triển
Nắm vững quy trình xây dựng website là điều cần thiết để phát triển ứng dụng hiệu quả Hiểu biết về phương pháp phát triển phần mềm hướng đối tượng và quy trình phát triển phần mềm sẽ giúp bạn áp dụng kiến thức này vào thực tiễn, tối ưu hóa quá trình xây dựng ứng dụng.
- Tìm hiểu và áp dụng services vào website
- Ngoài ra, nhóm đã tìm hiểu và nắm được cách sử dụng một số framework hữu ích như Entity Framework,
- Phát triển và hoàn thiện kỹ năng sử dụng các công cụ hỗ trợ lập trình viên như: GitHub, Trello, figma…
- Học tập phát triển kỹ năng làm việc nhóm, kỹ năng phân chia điều phối công việc, kỹ năng sắp xếp thời gian
Phần mềm cung cấp đầy đủ các chức năng cơ bản cần thiết cho một website, tuy nhiên, một số tính năng bổ sung như đặt hàng và quản trị website vẫn chưa được hoàn thiện về mặt giao diện.
- Giao diện thân thiện, dễ sử dụng
Chúng tôi sẽ tiếp tục phát triển và hoàn thiện các chức năng chính của website như đặt hàng, quản trị website, tìm kiếm sản phẩm và mở rộng quy mô Bên cạnh đó, chúng tôi cũng sẽ phát triển thêm các tính năng hỗ trợ nhằm tối ưu hóa hoạt động bán hàng cho người dùng Một số tính năng mới dự kiến sẽ được triển khai trong thời gian tới.
- Phân quyền: Admin, người dùng
- Hỗ trợ tìm kiếm sản phẩm
- Tính năng đánh giá chất lượng sản phẩm
- Gợi ý sản phẩm cho người dùng
BẢNG PHÂN CÔNG CÔNG VIỆC
Bảng 7: Bảng phân công công việc
STT Nội dung công việc
1 Chọn đề tài 01/03/2022 03/03/2022 Thanh Tuấn Đông Phú
2 Phân tích yêu cầu 03/03/2022 08/03/2022 Thanh
3 Thiết lập các actor, các chức năng cơ bản
4 Vẽ sơ đồ Use case, đặc tả
5 Viết SRD 15/03/2022 10/03/2022 Thanh Tuấn Hoàn thành
6 Viết phân tích sơ đồ lớp mức phân tích
9 Thiết kế CSDL 20/03/2022 28/03/2022 Thanh Tuấn Hoàn thành
12 Xây dựng các màn hình trên
13 Xây dựng cơ sở dữ liệu, backend, gọi
15/04/2022 28/05/2022 Thanh Tuấn Chưa hoàn thành 100%