Nó cung cấp cho doanh nghiệp một cơ hội để theo dõi hành vi của khách hàng, cung cấp thông tin về sản phẩm, và tạo một trải nghiệm mua sắm trực tuyến thuận tiện và thú vị.. Hơn nữa, ứng
Trang 1TRƯỜNG ĐẠI HỌC HẢI PHÒNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀOnline shopping cart (Giỏ hàng trực tuyến)
Sinh viên thực hiện: 1 Cao Thị Thúy Hiền
2 Lê Quang Tùng
3 Trịnh Giá khánh Lớp - Khóa : CNTT7.K22
Hải Phòng, tháng 11 năm 2023
Trang 2D Cấu trúc của đề tài
II Cơ sở lý thuyết
A Khái niệm về giỏ hàng trực tuyến
B Ngôn ngữ lập trình Python và framework sử dụng
C Lập trình hướng đối tượng (OOP) trong Python
D Cơ sở dữ liệu và quản lý dữ liệu
III Phân tích và thiết kế
A Yêu cầu chức năng và phi chức năng
B Sơ đồ use case
C Thiết kế giao diện người dùng
D Thiết kế cơ sở dữ liệu
E Thiết kế các lớp và module trong ứng dụng
IV Triển khai và thử nghiệm
A Xây dựng ứng dụng giỏ hàng trực tuyến
B Tích hợp cơ sở dữ liệu
C Kiểm tra và gỡ lỗi ứng dụng
V Tối ưu hóa và bảo mật
Trang 3B Bảo mật thông tin khách hàng
C Xử lý lỗ hổng bảo mật
VI Hướng dẫn sử dụng ứng dụng
A Cách sử dụng ứng dụng giỏ hàng
B Hướng dẫn quản trị ứng dụngVII Kết luận
A Tóm tắt
B Hạn chế và hướng phát triển tương lai
Trang 4-Sự phổ biến của mua sắm trực tuyến có nguồn gốc từ nhiều yếu tố Trước hết, mua sắm trực tuyến mang lại sự thuận tiện đáng kể cho người tiêu dùng Họ có thể mua sắm từ bất kỳ đâu, bất kỳ lúc nào, mà không cần phải di chuyển đến cửa hàng vật lý Điều này giúp họ tiết kiệm thời gian và công sức, đặc biệt là trong bối cảnh cuộc sống ngày càng bận rộn.
Đối với các doanh nghiệp, giỏ hàng trực tuyến đóng một vai trò quan trọng trong việc tối ưu hóa quy trình mua sắm và tăng tỷ lệ chuyển đổi từ lượt xem sản phẩm thành giao dịch thực tế Nó cung cấp cho doanh nghiệp một cơ hội để theo dõi hành vi của khách hàng, cung cấp thông tin về sản phẩm, và tạo một trải nghiệm mua sắm trực tuyến thuận tiện và thú vị Hơn nữa, giỏ hàng trực tuyến có thể tích hợp các phương thức thanh toán trực tuyến, mở rộng phạm vi của doanh nghiệp và giúp họ tạo ra nguồn doanh thu từ mua sắm trực tuyến
Như vậy, giỏ hàng trực tuyến không chỉ là một phần quan trọng của trải nghiệm mua sắm trực tuyến cho người tiêu dùng mà còn là một công cụ quan trọng giúp doanh nghiệp tối ưu hóa quy trình bán hàng và tạo giá trị cho khách hàng
B Mục tiêu
Mục tiêu chính của đề tài là xây dựng một ứng dụng giỏ hàng trực tuyến sử dụng Python để cải thiện trải nghiệm mua sắm trực tuyến Dự án này hướng đến mục tiêu chính sau đây:
1 Tạo trải nghiệm mua sắm trực tuyến thuận tiện cho người dùng: Bằng
việc phát triển ứng dụng giỏ hàng trực tuyến, chúng ta đặt ra mục tiêu cải thiện trải nghiệm mua sắm trực tuyến của người dùng Người dùng sẽ có khảnăng duyệt qua sản phẩm, lựa chọn và quản lý giỏ hàng của họ một cách dễ
Trang 52 Tối ưu hóa quy trình mua sắm: Mục tiêu khác của dự án là tối ưu hóa quy
trình mua sắm cho người dùng Điều này bao gồm việc tạo một giao diện người dùng thân thiện, cho phép họ thêm và xóa sản phẩm, cập nhật số lượng, và tính tổng giá trị đơn hàng dễ dàng Chúng ta cũng đặt ra mục tiêu tối ưu hóa tốc độ tải trang và hiệu suất ứng dụng để đảm bảo trải nghiệm mua sắm mượt mà
3 Tích hợp thanh toán trực tuyến: Để cung cấp một trải nghiệm mua sắm
đầy đủ, dự án sẽ tích hợp các phương thức thanh toán trực tuyến Người dùng có thể chọn và thanh toán cho đơn hàng của họ trực tuyến, giúp họ tiết kiệm thời gian và tăng tính tiện lợi
4 Cung cấp thông tin sản phẩm và quản lý dữ liệu: Dự án cũng đặt ra mục
tiêu cung cấp thông tin chi tiết về sản phẩm, bao gồm hình ảnh, mô tả, giá cả
và thông tin khuyến mãi Hơn nữa, ứng dụng giỏ hàng cũng sẽ quản lý dữ liệu về đơn hàng, khách hàng và sản phẩm trong cơ sở dữ liệu để hỗ trợ quản
lý doanh nghiệp và tối ưu hóa quy trình bán hàng
Như vậy, dự án sẽ không chỉ tạo ra một giỏ hàng trực tuyến thông thường,
mà còn đặt ra mục tiêu cải thiện trải nghiệm mua sắm trực tuyến cho người dùng và cung cấp giá trị cho doanh nghiệp thông qua việc tối ưu hóa quy trình mua sắm và tích hợp thanh toán trực tuyến
II Cơ sở lý thuyết
A Khái niệm về giỏ hàng trực tuyến
Giỏ hàng trực tuyến là một tính năng hoặc thành phần của một trang web hoặc
ứng dụng mua sắm trực tuyến, cho phép người dùng tạm thời lưu trữ và quản lý các sản phẩm hoặc dịch vụ họ muốn mua trong quá trình duyệt và lựa chọn sản phẩm Nó hoạt động tương tự như giỏ hàng thực tế trong cửa hàng truyền thống, nơi bạn đặt các sản phẩm mình chọn vào giỏ và sau đó thanh toán
Vai trò của giỏ hàng trực tuyến trong quá trình mua sắm trực tuyến rất quan trọng
Nó cung cấp một cơ hội cho người tiêu dùng tổ chức và quản lý các món hàng mà
họ muốn mua, và có những vai trò quan trọng sau:
1 Lưu trữ sản phẩm lựa chọn: Giỏ hàng trực tuyến cho phép người dùng lựa
chọn nhiều sản phẩm hoặc dịch vụ khác nhau và tạm thời lưu trữ chúng trong một nơi Điều này giúp họ tiết kiệm thời gian và không cần phải thực hiện giao dịch ngay lập tức
Trang 62 Tối ưu hóa quy trình mua sắm: Người dùng có thể thêm và xóa sản phẩm
từ giỏ hàng một cách dễ dàng Họ có thể điều chỉnh số lượng và xem tổng giá trị của đơn hàng trước khi hoàn tất giao dịch
3 Lưu trữ thông tin sản phẩm: Giỏ hàng thường chứa thông tin chi tiết về
sản phẩm, bao gồm hình ảnh, mô tả, giá cả, và thông tin khuyến mãi Điều này giúp người dùng xem lại thông tin về sản phẩm trước khi quyết định mua
4 Tích hợp thanh toán: Giỏ hàng thường tích hợp các phương thức thanh
toán trực tuyến, cho phép người dùng thực hiện thanh toán và hoàn tất giao dịch
5 Hỗ trợ quản lý đơn hàng: Sau khi giao dịch được hoàn tất, giỏ hàng cung
cấp thông tin về đơn hàng cho người dùng và doanh nghiệp, giúp quản lý đơn hàng, giao hàng, và theo dõi trạng thái giao dịch
Mô tả các tính năng cần thiết của một giỏ hàng trực tuyến hiệu quả:
1 Thêm và xóa sản phẩm: Người dùng cần có khả năng thêm sản phẩm vào
giỏ hàng và xóa chúng một cách dễ dàng
2 Tính tổng giá trị đơn hàng: Giỏ hàng cần tính tổng giá trị của tất cả các sản
phẩm có trong giỏ để người dùng có cái nhìn tổng quan về mức giá mà họ sẽphải thanh toán
3 Chỉnh sửa số lượng sản phẩm: Khả năng thay đổi số lượng sản phẩm trong
giỏ hàng một cách linh hoạt giúp người dùng kiểm soát chi tiêu
4 Lưu trữ thông tin sản phẩm: Giỏ hàng nên hiển thị hình ảnh sản phẩm, mô
tả và giá cả để giúp người dùng xác nhận sản phẩm mình đã chọn
5 Tích hợp thanh toán: Giỏ hàng cần tích hợp các phương thức thanh toán an
toàn và thuận tiện để người dùng có thể thanh toán trực tuyến
6 Lưu trữ thông tin khách hàng: Giỏ hàng cần yêu cầu thông tin cơ bản về
khách hàng (tên, địa chỉ giao hàng, số điện thoại) để dễ dàng xử lý đơn hàng
7 Hỗ trợ mã giảm giá và khuyến mãi: Giỏ hàng nên hỗ trợ việc nhập mã
giảm giá hoặc sử dụng các ưu đãi và khuyến mãi khi áp dụng
B Ngôn ngữ lập trình Python và framework sử dụng
Trang 7Python là một ngôn ngữ lập trình thông dịch, tự động quản lý bộ nhớ và có cú
pháp đơn giản, rất phù hợp cho việc phát triển ứng dụng giỏ hàng trực tuyến Dưới đây là một số lý do tại sao Python là một sự lựa chọn tốt cho dự án này:
1 Dễ học và đọc: Python có cú pháp rất dễ đọc và viết, giúp dễ dàng hợp tác
với đội ngũ phát triển
2 Số lượng lớn thư viện và framework: Python có một hệ sinh thái phong
phú với nhiều thư viện và framework mạnh mẽ, giúp giảm thiểu công sức trong việc phát triển các tính năng phức tạp như xử lý dữ liệu, quản lý cơ sở
dữ liệu, và tích hợp thanh toán trực tuyến
3 Độ bảo mật cao: Python có nhiều công cụ và thư viện mạnh mẽ để xử lý
bảo mật, đặc biệt là trong việc xây dựng ứng dụng web Điều này rất quan trọng trong dự án giỏ hàng trực tuyến, nơi dữ liệu cá nhân và thanh toán cần được bảo vệ
4 Tích hợp dễ dàng: Python có khả năng tích hợp với các hệ thống và dịch vụ
khác một cách dễ dàng, điều này quan trọng trong việc kết nối giỏ hàng với
cơ sở dữ liệu, các dịch vụ thanh toán trực tuyến và các tính năng khác
5 Cộng đồng lớn: Python có một cộng đồng phát triển rất lớn và nhiệt tình
Điều này có nghĩa là bạn có thể tìm kiếm sự hỗ trợ và tài liệu dễ dàng, giúp giải quyết các vấn đề phát triển một cách nhanh chóng
C Lập trình hướng đối tượng (OOP) trong Python
- Giới thiệu về lập trình hướng đối tượng và lý do tại sao nó được sử dụng trong đềtài này
- Trình bày cách bạn sử dụng OOP để tổ chức mã nguồn và các ưu điểm của việc này
D Cơ sở dữ liệu và quản lý dữ liệu
1 Lưu trữ thông tin về sản phẩm: Trong cơ sở dữ liệu, thông tin về sản
phẩm bao gồm tên sản phẩm, mô tả, giá cả, hình ảnh, số lượng tồn kho, và các thuộc tính khác có thể được lưu trữ Các sản phẩm được liên kết với danh mục sản phẩm tương ứng để dễ dàng lựa chọn và tìm kiếm
Trang 82 Lưu trữ thông tin về đơn hàng: Dữ liệu về đơn hàng bao gồm thông tin
của khách hàng (tên, địa chỉ, số điện thoại), sản phẩm được mua (tên, số lượng, giá cả), tổng giá trị đơn hàng, phương thức thanh toán, trạng thái đơn hàng (đang xử lý, đã giao hàng, đã thanh toán), và ngày đặt hàng Mỗi đơn hàng có một mã duy nhất để theo dõi và xác định nó
3 Lưu trữ thông tin về khách hàng: Thông tin về khách hàng bao gồm tên,
địa chỉ giao hàng, địa chỉ email, và số điện thoại Một khách hàng có thể có nhiều đơn hàng liên quan đến họ, do đó có mối quan hệ một-nhiều giữa bảngkhách hàng và bảng đơn hàng
Quản lý và tương tác với dữ liệu trong ứng dụng:
1 Thêm sản phẩm vào giỏ hàng: Khi người dùng chọn sản phẩm và thêm vào
giỏ hàng, thông tin về sản phẩm và số lượng sản phẩm sẽ được lưu tạm thời trong bộ nhớ hoặc phiên làm việc Sau khi người dùng xác nhận đặt hàng, dữliệu về sản phẩm và đơn hàng sẽ được lưu trữ trong cơ sở dữ liệu
2 Quản lý giỏ hàng: Người dùng có thể xem và chỉnh sửa giỏ hàng trước khi
hoàn tất giao dịch Họ có thể thay đổi số lượng sản phẩm, xóa sản phẩm khỏi giỏ hàng, hoặc thêm sản phẩm mới Thay đổi này sẽ được cập nhật trong cơ sở dữ liệu
3 Xử lý đơn hàng: Sau khi người dùng hoàn tất giao dịch, ứng dụng sẽ tạo
một đơn hàng mới trong cơ sở dữ liệu, liên kết với thông tin của khách hàng
và các sản phẩm đã chọn Đơn hàng sẽ được gán một trạng thái ban đầu (thường là "đang xử lý") và mã đơn hàng sẽ được tạo Dữ liệu về đơn hàng này sau đó sẽ được lưu trữ trong cơ sở dữ liệu để quản lý và theo dõi
4 Thanh toán và xử lý thanh toán: Dữ liệu liên quan đến thanh toán, bao
gồm phương thức thanh toán và thông tin thanh toán, sẽ được quản lý và lưutrữ một cách an toàn trong quá trình xử lý giao dịch Thông tin thanh toán thường không được lưu trữ trong cơ sở dữ liệu chính, mà được gửi đến dịch
vụ thanh toán và quản lý bởi họ
5 Quản lý dữ liệu sản phẩm và đơn hàng: Các tác vụ quản lý dữ liệu sản
phẩm và đơn hàng như thêm, sửa, xóa sản phẩm, cập nhật trạng thái đơn hàng, và quản lý số lượng tồn kho sẽ được thực hiện thông qua các giao diệnquản trị hoặc hệ thống quản lý cơ sở dữ liệu Điều này giúp doanh nghiệp duyệt qua và quản lý dữ liệu dễ dàng
Trang 9III Phân tích và thiết kế
Yêu cầu chức năng của ứng dụng giỏ hàng:
1 Thêm sản phẩm vào giỏ hàng: Người dùng có thể chọn sản phẩm từ danh
sách sản phẩm và thêm chúng vào giỏ hàng
2 Xóa sản phẩm khỏi giỏ hàng: Người dùng có thể xóa sản phẩm khỏi giỏ
hàng nếu họ thay đổi ý định hoặc không muốn mua sản phẩm đó nữa
3 Chỉnh sửa số lượng sản phẩm: Người dùng có khả năng điều chỉnh số
lượng sản phẩm trong giỏ hàng, thay đổi số lượng mua hoặc loại bỏ sản phẩm khỏi giỏ hàng
4 Tính tổng giá trị đơn hàng: Ứng dụng cần tính tổng giá trị của tất cả các
sản phẩm trong giỏ hàng và hiển thị tổng tiền cho người dùng
5 Xác nhận đặt hàng: Người dùng có khả năng xem lại đơn hàng, nhập thông
tin giao hàng và thanh toán, sau đó xác nhận đặt hàng
6 Quản lý đơn hàng: Hệ thống cần quản lý thông tin về đơn hàng, bao gồm
thông tin đặt hàng, trạng thái đơn hàng (đang xử lý, đã giao hàng, đã thanh toán), và mã đơn hàng để theo dõi đơn hàng
Yêu cầu phi chức năng:
1 Giao diện người dùng thân thiện: Giao diện người dùng của ứng dụng giỏ
hàng cần phải thân thiện và dễ sử dụng Các nút và tùy chọn phải được bố trímột cách logic để người dùng dễ dàng tìm và thực hiện các tác vụ mua sắm
2 Giao diện đáp ứng: Ứng dụng cần phải có một giao diện đáp ứng, tức là
giao diện cần phải hiển thị tốt trên các thiết bị khác nhau, bao gồm máy tính,điện thoại di động và máy tính bảng
3 Bảo mật dữ liệu: Dữ liệu cá nhân của khách hàng và thông tin thanh toán
cần phải được bảo mật một cách an toàn và tuân thủ các tiêu chuẩn bảo mật
4 Thông báo và xác nhận đơn hàng: Người dùng cần nhận được thông báo
và xác nhận đơn hàng sau khi hoàn tất giao dịch, kèm theo mã đơn hàng và thông tin liên hệ cho trường hợp hỗ trợ hoặc theo dõi đơn hàng
5 Tích hợp các phương thức thanh toán: Ứng dụng cần tích hợp các phương
thức thanh toán trực tuyến an toàn và đáp ứng cho việc thanh toán đơn hàng
Trang 106 Hỗ trợ mã giảm giá và khuyến mãi: Ứng dụng cần hỗ trợ việc áp dụng mã
giảm giá hoặc khuyến mãi khi người dùng muốn sử dụng chúng
7 Gửi email xác nhận: Sau khi đặt hàng thành công, ứng dụng cần gửi email
xác nhận cho khách hàng với thông tin về đơn hàng và liên hệ hỗ trợ
8 Quản lý lịch sử đơn hàng: Khách hàng cần có khả năng xem lịch sử đơn
hàng của họ trong tài khoản cá nhân
IV Triển khai và thử nghiệm
Quy trình phát triển ứng dụng giỏ hàng trực tuyến:
1 Thu thập yêu cầu:
Xác định yêu cầu chức năng và phi chức năng của ứng dụng giỏ hàng trực tuyến
Xây dựng danh sách chức năng cần thiết và thiết kế giao diện người dùng
2 Thiết kế cơ sở dữ liệu:
Thiết kế cấu trúc cơ sở dữ liệu và tạo các bảng dữ liệu cần thiết cho sản phẩm, đơn hàng, khách hàng, và chi tiết đơn hàng
Tích hợp các phương thức thanh toán trực tuyến như Stripe hoặc
PayPal SDK để cho phép người dùng thanh toán đơn hàng.
5 Thiết kế giao diện người dùng:
Thiết kế giao diện người dùng đáp ứng, thân thiện và trực quan để cung cấp trải nghiệm mua sắm tốt cho người dùng
6 Kiểm tra và gỡ lỗi:
Trang 11 Thực hiện kiểm tra và gỡ lỗi ứng dụng để đảm bảo rằng mọi chức năng hoạt động đúng và bảo mật.
Kiểm tra tích hợp thanh toán để đảm bảo rằng thanh toán diễn ra một
cách an toàn.
7 Triển khai ứng dụng:
Triển khai ứng dụng lên một máy chủ web hoặc môi trường đám mây
để có thể truy cập từ mọi nơi
8 Kiểm tra chất lượng và tối ưu hóa hiệu suất:
Kiểm tra hiệu suất ứng dụng để đảm bảo rằng nó hoạt động mượt mà
và đáng tin cậy trong điều kiện tải cao
Tối ưu hóa cơ sở dữ liệu và mã nguồn để cải thiện hiệu suất
9 Bảo mật và bảo vệ dữ liệu:
Đảm bảo rằng dữ liệu cá nhân của khách hàng và thông tin thanh toán được bảo mật và tuân thủ các tiêu chuẩn bảo mật
Đảm bảo rằng ứng dụng hoạt động một cách đáng tin cậy và mượt mà:
1 Kiểm tra gỡ lỗi:
Thực hiện kiểm tra gỡ lỗi định kỳ để tìm và sửa các lỗi trong ứng dụng
2 Kiểm tra hiệu suất:
Đảm bảo rằng ứng dụng hoạt động mượt mà dưới tải cao bằng cách kiểm tra hiệu suất và tối ưu hóa cơ sở dữ liệu và mã nguồn
3 Bảo mật dữ liệu:
Trang 12 Đảm bảo rằng dữ liệu cá nhân của khách hàng và thông tin thanh toán được bảo mật và tuân thủ các tiêu chuẩn bảo mật.
4 Duyệt ứng dụng:
Duyệt ứng dụng để đảm bảo rằng nó hoạt động một cách đáng tin cậy
và tuân thủ các tiêu chuẩn chất lượng
V Tối ưu hóa và bảo mật
A Tối ưu hóa hiệu suất ứng dụng
Tối ưu hóa hiệu suất ứng dụng giỏ hàng trực tuyến:
1 Tối ưu hóa tải trang:
Sử dụng tải trang ẩn (lazy loading) cho hình ảnh và nội dung không cần thiết ngay lập tức để giảm thời gian tải trang ban đầu
Kết hợp và nén các tệp CSS và JavaScript để giảm dung lượng và tăngtốc độ tải trang
2 Tối ưu hóa cơ sở dữ liệu:
Sử dụng chỉ mục trên các cột quan trọng trong cơ sở dữ liệu để tăng tốc độ truy vấn
Sử dụng tập hợp câu lệnh SQL hiệu quả và tránh truy vấn dữ liệu không cần thiết
Sử dụng bộ nhớ đệm (caching) dữ liệu để giảm tải cho cơ sở dữ liệu
3 Caching dữ liệu:
Sử dụng caching tại nhiều cấp độ khác nhau, từ caching trình duyệt đến caching máy chủ, để lưu trữ dữ liệu tạm thời và giảm thời gian phản hồi
Sử dụng bộ nhớ đệm ứng dụng (application caching) cho các dữ liệu thường xuyên truy cập như danh sách sản phẩm và danh mục
4 Sử dụng CDN (Content Delivery Network):
Sử dụng CDN để phân phối tài nguyên tĩnh như hình ảnh và tệp CSS, giúp giảm thời gian tải trang đối với người dùng ở xa máy chủ
5 Tối ưu hóa hình ảnh: