- Các yêu cầu đặc biệt: Không có - Trạng thái hệ thống trước khi sử dụng use case: Không có yêu cầu - Trạng thái hệ thống sau khi sử dụng use case: Nếu đăng nhập thành công: Thông báo
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
NGÔN NGỮ LẬP TRÌNH PYTHON
ĐỀ T I: XÂY DỰNG API CHO WEBSITE BÁN MỸ PHẨM SKINLELE
Sinh viên thực hiện : ĐỖ VĂN PHONG
NGUYỄN THỊ THƯƠNG Giảng viên hướng dẫn : TRẦN THỊ MINH THU
Hà Nội, tháng năm 2024
Trang 2STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
Trang 3LỜI MỞ ĐẦU 1
1.1 Lý do chọn đề tài 2
1.2 Giới thiệu về ngôn ngữ lập trình Python 3
1.2.1 Lịch sử phát triển của ngôn ngữ lập trình Python 3
1.2.2 Đặc điểm và ưu nhược điểm của ngôn ngữ lập trình Python 4
1.2.3 Giới thiệu về framework FastAPI 6
1.3 Mục tiêu nghiên cứu 6
1.4 Phạm vi nghiên cứu 7
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 9
2.1 Phân tích chức năng hệ thống 9
2.2 Biểu đồ Use Case tổng quát của hệ thống 10
2.3 Biểu đồ lớp của hệ thống 21
2.4 Thiết kế giao diện 22
CHƯƠNG 3: C I ĐẶT V TRIỂN KHAI 30
3.1 Xây dựng API cho website 30
3.1.2 Cài đặt môi trường phát triển 30
3.1.2 Xây dựng API cho các chức năng bên phía khách hàng 31
3.1.3 Xây dựng API cho các chức năng bên phía quản lý 45
3.2 Xây dựng giao diện kết hợp với API 47
KẾT LUẬN 54
Trang 4Hình 2 1 Biểu đồ use case tổng quát toàn hệ thống 12
Hình 2 2 Biểu đồ lớp của hệ thống 13
Hình 2 3 Layout trang chủ 15
Hình 2 4 Layout trang đăng nhập 15
Hình 2 5 Layout trang đăng ký 16
Hình 2 6 Layout trang chi tiết sản phẩm 18
Hình 2 7 Layout trang giỏ hàng 18
Hình 2 8 Layout trang đăng nhập Admin 19
Hình 2 9 Layout trang chủ DashBoard 20
Hình 2 10 Sơ đồ Diagram 21
Hình 3 1 Cài đặt thư viện 23
Hình 3 2 Xây dựng thư mục 24
Hình 3 3 Code xử lý API cho chức năng đăng nhập, đăng ký 25
Hình 3 4 Kết quả chạy API cho chức năng đăng nhập 26
Hình 3 5 Kết quả chạy API cho chức năng đăng ký 27
Hình 3 6 Code xử lý API chức năng lấy sản phẩm, danh mục, chi tiết sản phẩm, tìm kiếm sản phẩm 28
Hình 3 7 Kết quả chạy API lấy các sản phẩm 29
Hình 3 8 Kết quả chạy API lấy chi tiết sản phẩm 30
Hình 3 9 Kết quả chạy API cho chức năng tìm kiếm sản phẩm 31
Hình 3 10 Code xử lý API cho chức năng đặt hàng, quản lý đơn hàng 32
Hình 3 11 Kết quả chạy API cho chức năng đặt hàng 33
Hình 3 12 Kết quả chạy API lấy đơn hàng chờ xử lý 34
Hình 3 13 Kết quả chạy API cho đơn hàng đang vận chuyển 35
Hình 3 14 Kết quả chạy API cho đơn hàng đã giao 36
Hình 3 15 Code xử lý API cho chức năng đánh giá 37
Hình 3 16 Kết quả chạy API cho chức năng đánh giá 38
Trang 5Hình 3 18 Code xử lý API cho các chức năng quản lý của admin 40
Hình 3 19 Xây dựng thư mục cho Front-end 41
Hình 3 20 Giao diện đăng nhập 41
Hình 3 21 Giao diện đăng ký 42
Hình 3 22 Giao diện trang chủ 42
Hình 3 23 Giao diện danh mục sản phẩm 43
Hình 3 24 Giao diện giỏ hàng 43
Hình 3 25 Giao diện thông tin đơn hàng 44
Hình 3 26 Giao diện đăng nhập admin 44
Hình 3 27 Giao diện trang chủ admin 45
Hình 3 28 Giao diện quản lý sản phẩm 45
Hình 3 29 Giao diện quản lý người dùng 46
Hình 3 30 Giao diện quản lý đơn hàng 46
Trang 6Hiện nay trên thế giới nói chung và Việt Nam nói riêng đang diễn ra quá trình tin học hóa toàn diện trên mọi lĩnh vực hoạt động kinh tế xã hội, con người đang chuyển sang một kỉ nguyên mới- kỉ nguyên của công nghệ thông tin 4.0 Máy tính và các công cụ của nó đã trở thành nhu cầu không thể thiếu đối với các ngành khoa học và kĩ thuật, trong các ngành quản lý, thiết kế giảng dạy, các ngành công nghiệp đồ họa,…
Nhờ ứng dụng của công nghệ thông tin đã làm giảm được rất nhiều khó khăn trong việc quản lý trên các giấy tờ Nó có yếu tố không nhỏ trong việc phát triển và thành công không nhỏ của mỗi ngành nghề, mỗi xí nghiệp, mỗi quốc gia ngày nay
Nhắc đến công nghệ thông tin không thể không kể đến các ngôn ngữ lập trình đóng vài trò quyết định đến việc xây dựng các phần mềm hay các website hiện tại Trong đó ngôn ngữ lập trình Python đã và đang trở thành xu hướng hàng đầu mà người lập trình hướng đến để phát triển công nghệ Sau khi hoàn thành học phần môn “ Ngôn ngữ lập trình python ” và sự giúp đỡ của cô Trần Thị Minh Thu, chúng em đã chọn đề tài: ” Xây dựng API cho website bán mỹ phẩm Skinlele ” Với vốn kiến thức còn hạn chế vì vậy bài làm của chúng em chắc chắn
sẽ có nhiều thiếu khuyết Rất mong được sự góp ý của thầy, cô để bài làm tốt hơn.
Chúng em xin chân thành cảm ơn !
Trang 7CHƯƠNG 1: GIỚI THIỆU ĐỀ T I
1.1 Lý do chọn đề tài
Đáp ứng nhu cầu thị trường: Ngành công nghiệp mỹ phẩm đang phát triển mạnh
mẽ và có tiềm năng lớn Việc xây dựng một trang web bán mỹ phẩm sẽ giúp chúng ta tận dụng cơ hội kinh doanh trong lĩnh vực này Trang web có thể giúp chúng ta tiếp cận với nhiều khách hàng tiềm năng và mở rộng phạm vi kinh doanh.
Tính phát triển của ngành công nghiệp mỹ phẩm: Ngành công nghiệp mỹ phẩm đang có sự tăng trưởng đáng kể và đóng góp lớn vào nền kinh tế Việc xây dựng một website bán mỹ phẩm có thể tận dụng cơ hội kinh doanh trong ngành này
Tiềm năng thị trường: Nhu cầu sử dụng mỹ phẩm không ngừng tăng, và việc mua sắm mỹ phẩm trực tuyến đang trở thành xu hướng phổ biến Xây dựng một website bán mỹ phẩm có thể tiếp cận được khách hàng tiềm năng trên một quy mô rộng lớn
Tiện lợi và linh hoạt: Mua sắm mỹ phẩm trực tuyến mang lại sự tiện lợi và linh hoạt cho khách hàng Họ có thể dễ dàng tìm kiếm và so sánh các sản phẩm, đọc đánh giá từ người dùng khác và mua hàng từ bất kỳ đâu và bất kỳ lúc nào
Khả năng tạo ra thu nhập: Xây dựng một website bán mỹ phẩm có thể tạo ra nguồn Hiện tại, có rất nhiều website bán mỹ phẩm trên Internet, và điều này chứng tỏ ngành công nghiệp mỹ phẩm đang phát triển mạnh mẽ
Một số ví dụ về các website bán mỹ phẩm phổ biến hiện nay: Sephora (www.sephora.com): Sephora là một trong những website bán mỹ phẩm hàng đầu trên thế giới Họ cung cấp một loạt các sản phẩm mỹ phẩm từ các thương hiệu nổi tiếng và cũng có dịch vụ tư vấn và đánh giá sản phẩm từ cộng đồng người dùng Ulta Beauty (www.ulta.com): Ulta Beauty cung cấp một bộ sưu tập rộng lớn các sản phẩm mỹ phẩm, từ mỹ phẩm cao cấp cho đến các thương hiệu phổ biến Họ cũng có các cửa hàng truyền thống và dịch vụ chăm sóc da và tóc.
Trang 8Tích hợp dễ dàng: Python là một ngôn ngữ lập trình linh hoạt và có thể tích hợp
dễ dàng với nhiều công nghệ khác nhau Chúng ta có thể sử dụng Python để kết nối với
cơ sở dữ liệu, tích hợp các hệ thống thanh toán trực tuyến, và tạo ra các tính năng tùy chỉnh cho trang web của chúng ta.
Sử dụng các thư viện hỗ trợ: Python có một cộng đồng lớn và năng động, với rất nhiều thư viện hỗ trợ phát triển web Ví dụ, chúng ta có thể sử dụng thư viện BeautifulSoup để phân tích cú pháp HTML và trích xuất dữ liệu từ các trang web khác Ngoài ra, thư viện Pandas có thể giúp xử lý và phân tích dữ liệu liên quan đến mỹ phẩm, như danh sách sản phẩm, thông tin khách hàng và doanh thu.
Học tập và phát triển kỹ năng: Xây dựng một trang web bán mỹ phẩm bằng Python là một dự án phù hợp để rèn luyện và phát triển kỹ năng lập trình Có thể học cách tương tác với cơ sở dữ liệu, xây dựng giao diện người dùng hấp dẫn, và triển khai ứng dụng web trên môi trường thực tế.
1.2 Giới thiệu về ngôn ngữ lập trình Python
1.2.1 Lịch sử phát triển của ngôn ngữ lập trình Python
Python là một ngôn ngữ lập trình cao cấp được tạo ra bởi Guido van Rossum và được giới thiệu lần đầu vào năm 1991 Guido van Rossum thiết kế Python với mục tiêu tạo ra một ngôn ngữ lập trình dễ đọc, dễ hiểu và dễ học, nhằm nâng cao năng suất lập trình viên Tên "Python" được lấy cảm hứng từ sở thích của Guido đối với nhóm hài kịch truyền hình "Monty Python's Flying Circus"
Ban đầu, Python được phát triển như một dự án phần mềm miễn phí source) và được công khai dưới bản quyền Python Software Foundation (PSF) Python nhanh chóng thu hút sự quan tâm và sự đóng góp từ cộng đồng lập trình viên trên toàn thế giới, dẫn đến sự phát triển nhanh chóng và việc ra mắt các phiên bản mới.
(open-Một số phiên bản quan trọng của Python bao gồm:
o Python 1.0 (Tháng 1 năm 1994): Phiên bản đầu tiên được công bố công khai
Trang 9o Python 2.0 (Tháng 10 năm 2000): Phiên bản này đưa ra nhiều cải tiến, bao gồm hệ thống garbage collection tự động và hỗ trợ Unicode
o Python 3.0 (Tháng 12 năm 2008): Phiên bản này có những thay đổi lớn
và tương thích ngược với Python 2.x Nó giúp cải thiện hiệu suất, bảo mật và cung cấp cú pháp và tính năng mới.
Cộng đồng Python rất sôi động và có sự phát triển liên tục Hiện nay, Python là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, được sử dụng trong nhiều lĩnh vực như phát triển web, khoa học dữ liệu, trí tuệ nhân tạo và nhiều ứng dụng khác.
1.2.2 Đặc điểm và ưu nhược điểm của ngôn ngữ lập trình Python
Đặc điểm của Python:
o Đơn giản và dễ đọc: Python có cú pháp đơn giản và rõ ràng, giúp lập trình viên dễ dàng đọc, hiểu và viết mã Ngôn ngữ này giúp giảm độ phức tạp của mã nguồn, tạo điều kiện thuận lợi cho việc phát triển và bảo trì dự án
o Đa năng: Python hỗ trợ nhiều phong cách lập trình, bao gồm lập trình hướng đối tượng, lập trình cấu trúc và lập trình hàm Điều này cho phép lập trình viên lựa chọn phong cách lập trình phù hợp với nhu cầu của dự
án
o Thư viện phong phú: Python đi kèm với một số lượng lớn các thư viện và module chuẩn, cung cấp các chức năng và công cụ hỗ trợ mạnh mẽ cho các nhiệm vụ phổ biến Ví dụ, thư viện NumPy hỗ trợ tính toán số học và khoa học, thư viện pandas hỗ trợ xử lý dữ liệu, và thư viện Django hỗ trợ phát triển ứng dụng web
o Hỗ trợ cộng đồng mạnh mẽ: Python có một cộng đồng lập trình viên sôi nổi và hỗ trợ mạnh mẽ từ cộng đồng này Cộng đồng Python đóng góp
Trang 10vào việc phát triển ngôn ngữ, cung cấp tài liệu, tham khảo và giải đáp câu hỏi, giúp nâng cao khả năng và hiệu suất của lập trình viên Python.
Ưu điểm của Python:
Dễ học và sử dụng: Python có cú pháp đơn giản và dễ hiểu, giúp người mới học lập trình nhanh chóng tiếp cận và bắt đầu phát triển ứng dụng Ngoài ra, Python cung cấp nhiều tài liệu và nguồn học trực tuyến, hỗ trợ việc học tập và phát triển
kỹ năng
Tích hợp dễ dàng: Python có khả năng tích hợp với các ngôn ngữ và công nghệ khác như C/C++, Java và NET Điều này cho phép lập trình viên kết hợp các thành phần đã có sẵn và tận dụng sức mạnh của Python trong quá trình phát triển
Hệ sinh thái phong phú: Python có một hệ sinh thái mở rộng với hàng ngàn thư viện và framework phát triển được xây dựng bởi cộng đồng Điều này giúp lập trình viên tiết kiệm thời gian và công sức khi phát triển ứng dụng, bởi vì họ có thể tận dụng lại các thành phần đã có sẵn thay vì xây dựng từ đầu
Nhược điểm của Python:
o Tốc độ thực thi: Python có hiệu suất thực thichậm hơn so với một
số ngôn ngữ lập trình khác như C/C++ vì nó là một ngôn ngữ thông dịch (interpreted language) thay vì ngôn ngữ biên dịch (compiled language) Mặc dù có thể cải thiện hiệu suất bằng cách
sử dụng các thư viện bên ngoài như NumPy và Cython, nhưng Python vẫn không phải là lựa chọn tốt nhất cho các ứng dụng yêu cầu hiệu suất cao và thời gian thực
o Ghi nhớ tài nguyên: Python sử dụng quản lý bộ nhớ tự động (automatic memory management) thông qua việc thu gom rác (garbage collection), điều này đồng nghĩa với việc Python tự động quản lý việc phân phối và giải phóng bộ nhớ Tuy nhiên, quản lý
Trang 11bộ nhớ tự động này có thể gây ra một số độ trễ và tốn tài nguyên
hệ thống
o Không phù hợp cho ứng dụng di động: Mặc dù có một số khung làm việc (framework) như Kivy hỗ trợ phát triển ứng dụng di động bằng Python, nhưng Python không phải là ngôn ngữ phổ biến nhất trong lĩnh vực này Các ngôn ngữ khác như Swift (cho iOS) và Kotlin (cho Android) thường được sử dụng phổ biến hơn.
1.2.3 Giới thiệu về framework FastAPI
FastAPI là một framework web siêu nhanh và dễ sử dụng được xây dựng bằng Python Nó có thể được sử dụng để xây dựng các ứng dụng web và API hiệu suất cao trong thời gian ngắn FastAPI kết hợp các ưu điểm của Python và tốc độ xử lý gần như tiệm cận với các ngôn ngữ lập trình như Go và Node.js
FastAPI hỗ trợ cú pháp kiểu chú thích (annotation) của Python để xác định các endpoint và kiểu dữ liệu của các tham số và giá trị trả về Điều này giúp tạo ra mã nguồn rõ ràng, dễ đọc và dễ bảo trì Ngoài ra, FastAPI cũng hỗ trợ tự động tài liệu hóa API bằng cách sử dụng tiêu chuẩn OpenAPI và Swagger UI
FastAPI có hiệu năng cao nhờ sử dụng ASGI (Asynchronous Server Gateway Interface) và hỗ trợ async/await trong Python Điều này cho phép xử lý đồng thời nhiều yêu cầu từ các client khác nhau, tối ưu hóa tài nguyên và tăng cường khả năng mở rộng của ứng dụng FastAPI cũng tích hợp sẵn các tính năng bảo mật như xác thực và phân quyền, giúp bảo vệ và kiểm soát quyền truy cập vào các endpoint.
1.3 Mục tiêu nghiên cứu
Xác định yêu cầu của trang web: Đầu tiên, xác định rõ yêu cầu cụ thể của trang
web, bao gồm các chức năng, giao diện người dùng, và dữ liệu muốn hiển thị và xử lý thông qua back-end API.
Xây dựng back-end API sử dụng Python: Sử dụng một framework Fastapi Định
nghĩa các endpoint API để xử lý yêu cầu từ phía front-end và trả về dữ liệu tương ứng.
Trang 12Thiết kế cơ sở dữ liệu: Nếu trang web liên quan đến lưu trữ và truy xuất dữ liệu,
cần thiết kế cơ sở dữ liệu phù hợp Python cung cấp nhiều thư viện để làm việc với cơ
sở dữ liệu như Mysql cho Fastapi
Xây dựng phần front-end sử dụng EJS: EJS là một template engine cho
JavaScript, và sử dụng nó để tạo các trang HTML động Tạo các template EJS để hiển thị dữ liệu từ back-end API và tương tác với người dùng thông qua các sự kiện và hành động.
Giao tiếp giữa back-end và end: Để giao tiếp giữa back-end API và
front-end EJS, sử dụng AJAX hoặc Axios để gửi yêu cầu từ front-front-end và nhận phản hồi từ back-end Sử dụng JavaScript để xử lý dữ liệu trả về và cập nhật giao diện người dùng.
Triển khai trang web: Cuối cùng, triển khai trang web của mình trên môi trường
sản phẩm Sử dụng các dịch vụ đám mây như Heroku, AWS, Auze để triển khai ứng dụng web Python.
1.4 Phạm vi nghiên cứu
Thiết kế và triển khai API: Nghiên cứu có thể tập trung vào việc thiết kế và triển khai các endpoint API cho website mỹ phẫm Điều này bao gồm xác định các chức năng cần thiết cho API như đăng nhập, đăng ký, lấy thông tin sản phẩm, thêm vào giỏ hàng, thanh toán, và các tác vụ quản lý khác
Quản lý sản phẩm: Nghiên cứu có thể tập trung vào việc xây dựng API để quản
lý sản phẩm trên website bán mỹ phẩm Điều này bao gồm việc tạo, cập nhật, xóa sản phẩm, lấy danh sách sản phẩm, tìm kiếm và lọc sản phẩm theo các tiêu chí như danh mục, giá, kích cỡ, màu sắc, v.v
Quản lý đơn hàng: Nghiên cứu có thể tập trung vào việc xây dựng API để quản
lý đơn hàng của khách hàng trên website bán mỹ phẩm Điều này bao gồm việc tạo đơn hàng mới, cập nhật trạng thái đơn hàng, lấy thông tin chi tiết đơn hàng, và hỗ trợ các chức năng khác như hủy đơn hàng, đổi trả, và theo dõi vận chuyển Xác thực và phân quyền:
Trang 13Nghiên cứu có thể tập trung vào việc xây dựng API để xác thực người dùng và quản lý phân quyền truy cập Điều này bao gồm việc xác thực thông qua token, quản lý tài khoản người dùng, kiểm tra vai trò và quyền hạn của người dùng để đảm bảo rằng chỉ có người dùng có quyền được truy cập vào các tài nguyên phù hợp
Tối ưu hóa hiệu suất: Nghiên cứu có thể tìm hiểu và áp dụng các phương pháp tối ưu hóa hiệu suất cho API Điều này bao gồm sử dụng caching, thực hiện tác vụ bất đồng bộ, tối ưu hóa cơ sở dữ liệu, và các kỹ thuật khác để đảm bảo API hoạt động một cách nhanh chóng và hiệu quả.
Trang 14CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 2.1 Phân tích chức năng hệ thống
Trang 15Hình 2 1 Biểu đồ use case tổng quát toàn hệ thống
Đặc tả use case đăng nhập:
- Tác nhân: Khách hàng
- Mô tả: Use case này mô tả quá trình đăng nhập cho khách hàng Người dùng cung cấp thông tin đăng nhập hợp lệ (tên đăng nhập và mật khẩu) để xác minh danh tính và truy cập.
- Dòng sự kiện chính:
Tác nhân yêu cầu giao diện đăng nhập
Hệ thống hiện thị giao diện đăng nhập
Tác nhân nhập tên đăng nhập và mật khẩu
Hệ thống kiểm tra dữ liệu và xác nhận thông tin từ tác nhân gửi vào hệ thống.
Thông tin đúng thì hệ thống gửi thông báo và đưa tác nhân vào hệ thống.
Kết thúc use case đăng nhập.
- Dòng sự kiện phụ:
Trang 16 Sự kiện 1: Nếu tác nhân đăng nhập đúng, nhưng lại muốn thoát khỏi hệ thống.
Hệ thống thông báo thoát bằng cách đăng xuất, kết thúc use case.
Sự kiện 2: Nếu tác nhân đăng nhập sai hệ thống thông báo đăng nhập lại hoặc thoát Sau khi tác nhân chọn thoát, kết thúc use case.
- Các yêu cầu đặc biệt: Không có
- Trạng thái hệ thống trước khi sử dụng use case: Không có yêu cầu
- Trạng thái hệ thống sau khi sử dụng use case:
Nếu đăng nhập thành công: Thông báo “Bạn đã đăng nhập thành công” và hiện thị giao diện chính cho tác nhân thực hiện các chức năng khác.
Nếu đăng nhập thất bại: Hệ thống cũng sẽ gửi thông báo “Bạn đã đăng nhập thất bại” và quay lại chức năng đăng nhập.
Đặc tả use case đăng ký:
- Tác nhân: Khách hàng
- Mô tả: Use case này mô tả quá trình đăng ký tài khoản cho khách hàng Người dùng cung cấp thông tin đăng nhập hợp lệ, tạo thông tin đăng nhập để thực hiện các chức năng khác
- Dòng sự kiện chính:
Tác nhân yêu cầu giao diện đăng ký
Hệ thống hiện thị giao diện đăng ký
Tác nhân nhập các thông tin đăng ký
Hệ thống kiểm tra dữ liệu và xác nhận thông tin từ tác nhân gửi vào hệ thống.
Thông tin đúng thì hệ thống gửi thông báo và đưa tác nhân vào hệ thống.
Kết thúc use case đăng ký
- Dòng sự kiện phụ:
Sự kiện 1: Nếu tác nhân yêu cầu giao diện đăng ký, nhưng lại không muốn thực hiện đăng ký, kết thúc use case
Trang 17 Sự kiện 2: Nếu tác nhân nhập thông tin đăng ký không hợp lệ, và muốn thoát khỏi đăng ký kết thúc use case.
- Các yêu cầu đặc biệt: Không có
- Trạng thái hệ thống trước khi sử dụng use case: Không có yêu cầu
- Trạng thái hệ thống sau khi sử dụng use case:
Nếu đăng ký thành công: Thông báo “Bạn đã đăng ký thành công”
Nếu đăng ký thất bại: Hệ thống cũng sẽ gửi thông báo “Bạn đã đăng ký thất bại”
và quay lại chức năng đăng ký.
Đặc tả use case tìm kiếm sản phẩm:
- Các yêu cầu đặc biệt: Không có
- Trạng thái hệ thống trước khi sử dụng use case: Không có yêu cầu
- Trạng thái hệ thống sau khi sử dụng use case:
Nếu tìm kiếm sản phẩm thành công: Hiện thị các sản phẩm cần tìm.
Nếu tìm kiếm sản phẩm thất bại: Hiện thị không tồn tại sản phẩm cần tìm.
Đặc tả use case thao tác giỏ hàng:
- Tác nhân: Khách hàng
Trang 18- Mô tả: Use case này mô tả quá trình quản lý giỏ hàng trong hệ thống mua sắm trực tuyến Người dùng có thể thêm sản phẩm vào giỏ hàng, chỉnh sửa số lượng sản phẩm, xóa sản phẩm khỏi giỏ hàng và hoàn tất quá trình mua hàng bằng việc tiến hành đặt hàng.
- Dòng sự kiện chính:
Người dùng xem sản phẩm trên trang web và quyết định thêm sản phẩm vào giỏ hàng
Người dùng nhấn vào nút "Thêm vào giỏ hàng" bên cạnh sản phẩm muốn mua
Hệ thống thêm sản phẩm vào giỏ hàng của người dùng
Hệ thống hiển thị thông tin giỏ hàng cho người dùng, bao gồm danh sách các sản phẩm đã được thêm vào, số lượng và tổng giá trị của giỏ hàng
Người dùng có thể tiếp tục mua sắm và quay lại bước 1, hoặc có thể thực hiện các thao tác quản lý giỏ hàng như chỉnh sửa số lượng sản phẩm hoặc xóa sản phẩm khỏi giỏ hàng
Để chỉnh sửa số lượng sản phẩm trong giỏ hàng: Người dùng chỉnh sửa số lượng sản phẩm tương ứng với mỗi sản phẩm trong giỏ hàng Hệ thống cập nhật thông tin số lượng và tổng giá trị của giỏ hàng
Để xóa sản phẩm khỏi giỏ hàng: Người dùng chọn sản phẩm muốn xóa khỏi giỏ hàng Hệ thống loại bỏ sản phẩm khỏi giỏ hàng và cập nhật thông tin tổng giá trị của giỏ hàng
Khi người dùng đã hoàn tất quá trình mua sắm và muốn thanh toán: Người dùng nhấn vào nút "Đặt hàng" Hệ thống chuyển hướng người dùng đến trang thanh toán để hoàn tất quá trình mua hàng
Kết thúc use case quản lý giỏ hàng
- Dòng sự kiện phụ: Không có
- Các yêu cầu đặc biệt: Không có
- Trạng thái hệ thống trước khi sử dụng use case: Không có yêu cầu
Đặc tả use case đặt hàng:
Trang 19- Tác nhân: Khách hàng
- Mô tả: Use case này mô tả quá trình đặt hàng trong hệ thống mua sắm trực tuyến Người dùng chọn sản phẩm, cung cấp thông tin giao hàng và hoàn tất quá trình đặt hàng bằng việc xác nhận đơn hàng.
- Dòng sự kiện chính:
Người dùng xem thông tin giỏ hàng và quyết định tiến hành đặt hàng
Người dùng nhấn vào nút "Đặt hàng" hoặc "Tiến hành đặt hàng"
Hệ thống yêu cầu người dùng cung cấp thông tin giao hàng như địa chỉ, số điện thoại, và phương thức thanh toán
Người dùng điền thông tin giao hàng vào các trường tương ứng
Hệ thống kiểm tra thông tin giao hàng và xác nhận đơn hàng
Hệ thống hiển thị thông báo xác nhận đơn hàng cho người dùng, bao gồm số đơn hàng và thông tin chi tiết về đơn hàng
Người dùng nhận được thông báo xác nhận đơn hàng và có thể tiếp tục mua sắm hoặc quay lại trang chủ.
- Trạng thái hệ thống trước khi sử dụng use case:
Người dùng đã đăng nhập vào hệ thống
Sản phẩm đã được chọn và có sẵn trong giỏ hàng
Thông tin giao hàng đã được người dùng cung cấp
- Trạng thái hệ thống sau khi sử dụng use case:
+ Người dùng chưa đăng nhập:
Hệ thống yêu cầu người dùng đăng nhập hoặc tạo tài khoản trước khi tiến hành đặt hàng
Người dùng đăng nhập hoặc tạo tài khoản để tiếp tục quá trình đặt hàng
+ Thông tin giao hàng không hợp lệ:
Trang 20 Hệ thống kiểm tra thông tin giao hàng và phát hiện thông tin không hợp lệ hoặc thiếu trường bắt buộc
Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng điền lại thông tin giao hàng
Quá trình tiếp tục từ bước 4
+ Người dùng muốn tiếp tục mua sắm:
Người dùng nhấn vào nút "Tiếp tục mua sắm" hoặc quay lại trang sản phẩm để tiếp tục chọn sản phẩm
Quá trình mua sắm tiếp tục từ bước 1.
Đặc tả use case đánh giá sản phẩm:
- Tác nhân: Khách hàng
- Mô tả: Use case này mô tả quá trình đánh giá sản phẩm trong hệ thống mua sắm trực tuyến Người dùng có thể đánh giá và viết nhận xét về sản phẩm mà họ đã mua
- Dòng sự kiện chính:
Người dùng tìm kiếm sản phẩm mà họ muốn đánh giá
Người dùng truy cập vào trang chi tiết sản phẩm
Người dùng nhấp vào liên kết hoặc nút "Đánh giá" hoặc "Viết nhận xét"
Hệ thống hiển thị một biểu mẫu đánh giá cho người dùng
Người dùng điền thông tin vào biểu mẫu đánh giá, bao gồm đánh giá chung về sản phẩm và bình luận chi tiết (tuỳ chọn)
Người dùng nhấp vào nút "Gửi" hoặc "Đăng" để gửi đánh giá
Hệ thống lưu trữ đánh giá và nhận xét của người dùng vào cơ sở dữ liệu
Hệ thống hiển thị đánh giá và nhận xét mới nhất của người dùng trên trang chi tiết sản phẩm và/hoặc trang danh sách sản phẩm
Các người dùng khác có thể xem và đọc đánh giá và nhận xét của người dùng
- Trạng thái hệ thống trước khi sử dụng use case:
Người dùng đã đăng nhập vào hệ thống
Trang 21 Người dùng đã mua sản phẩm và có thông tin về sản phẩm đó.
- Trạng thái hệ thống sau khi sử dụng use case:
+ Người dùng chưa đăng nhập:
Hệ thống yêu cầu người dùng đăng nhập hoặc tạo tài khoản trước khi viết đánh giá
Người dùng đăng nhập hoặc tạo tài khoản để tiếp tục quá trình đánh giá + Người dùng không muốn viết bình luận chi tiết:
Người dùng không bắt buộc phải điền bình luận chi tiết và có thể bỏ qua trường này
Quá trình tiếp tục từ bước 6
+ Lỗi khi lưu trữ đánh giá:
Hệ thống gặp sự cố khi lưu trữ đánh giá và không thể hoàn thành quá trình
Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau Quá trình kết thúc.
Đặc tả use case đăng nhập admin:
- Tác nhân: Người quản lý
- Mô tả: Use case này mô tả quá trình đăng nhập vào hệ thống với tư cách quản trị viên (Admin) Quản trị viên có thể truy cập vào các chức năng và quản lý hệ thống.
- Dòng sự kiện chính:
Quản trị viên truy cập vào trang đăng nhập của hệ thống
Quản trị viên nhập tên người dùng (username) và mật khẩu (password) của tài khoản quản trị viên
Quản trị viên nhấn nút "Đăng nhập" để tiến hành đăng nhập
Hệ thống kiểm tra thông tin đăng nhập của quản trị viên
Trang 22 Nếu thông tin đăng nhập chính xác, hệ thống đăng nhập quản trị viên và chuyển hướng đến trang quản lý
Quản trị viên có quyền truy cập vào các chức năng quản lý, ví dụ: quản lý người dùng, quản lý sản phẩm, thống kê, v.v
Quản trị viên thực hiện các tác vụ và chức năng quản lý theo nhu cầu
Khi hoàn thành, quản trị viên có thể chọn đăng xuất hoặc tiếp tục sử dụng các chức năng quản lý khác.
- Trạng thái hệ thống trước khi sử dụng use case: Không có
- Trạng thái hệ thống sau khi sử dụng use case:
+ Thông tin đăng nhập không chính xác:
Hệ thống kiểm tra thông tin đăng nhập và phát hiện thông tin không chính xác
Hệ thống hiển thị thông báo lỗi và yêu cầu quản trị viên nhập lại thông tin đăng nhập
Quá trình tiếp tục từ bước 2
+ Quản trị viên quên mật khẩu:
Hệ thống cung cấp chức năng khôi phục mật khẩu
Quản trị viên nhấp vào liên kết hoặc nút "Quên mật khẩu" và làm theo hướng dẫn để khôi phục mật khẩu
Quá trình tiếp tục từ bước 2 sau khi mật khẩu đã được khôi phục + Quản trị viên muốn thực hiện tác vụ đăng xuất:
Quản trị viên chọn tùy chọn đăng xuất hoặc thoát khỏi trang quản lý
Hệ thống đăng xuất quản trị viên và chuyển hướng đến trang đăng nhập.
Đặc tả use case quản lý đơn hàng:
- Tác nhân: Người quản lý
Trang 23- Mô tả: Chức năng quản lý đơn hàng cho phép quản trị viên (Admin) của hệ thống mua sắm trực tuyến xem, xử lý và quản lý các đơn hàng từ khách hàng.
- Dòng sự kiện chính:
Quản trị viên truy cập vào chức năng quản lý đơn hàng trong hệ thống Hệ thống hiển thị danh sách các đơn hàng chưa được xử lý
Quản trị viên có thể sử dụng các tùy chọn và bộ lọc để tìm kiếm các đơn hàng
cụ thể hoặc áp dụng bộ lọc để lọc danh sách đơn hàng Quản trị viên chọn một đơn hàng từ danh sách để xem chi tiết
Hệ thống hiển thị thông tin chi tiết về đơn hàng, bao gồm thông tin khách hàng, danh sách sản phẩm, tổng giá trị, v.v
Quản trị viên có thể thực hiện các tác vụ xử lý đơn hàng, bao gồm: Xác nhận đơn hàng: Quản trị viên xác nhận rằng đơn hàng đã được nhận và sẵn sàng để
xử lý Gửi thông tin vận chuyển: Quản trị viên cung cấp thông tin vận chuyển (ví dụ: địa chỉ giao hàng, phương thức vận chuyển, số theo dõi vận đơn, v.v.) Hủy đơn hàng: Quản trị viên hủy bỏ đơn hàng nếu cần thiết Cập nhật trạng thái đơn hàng: Quản trị viên thay đổi trạng thái của đơn hàng (ví dụ: đang xử lý, đang giao hàng, đã hoàn thành, v.v.) Gửi thông báo cho khách hàng: Quản trị viên gửi thông báo cho khách hàng liên quan đến trạng thái và tiến trình của đơn hàng Ghi chú đơn hàng: Quản trị viên thêm ghi chú hoặc thông tin bổ sung về đơn hàng
Sau khi xử lý đơn hàng, quản trị viên có thể lưu trữ các thay đổi và cập nhật vào
Trang 24- Trạng thái hệ thống sau khi sử dụng use case:
+ Không có đơn hàng chưa được xử lý:
Hệ thống hiển thị thông báo rằng không có đơn hàng chưa được xử lý
Quá trình kết thúc
+ Quản trị viên không tìm thấy đơn hàng cụ thể:
Quản trị viên không tìm thấy đơn hàng cụ thể trong danh sách hoặc kết quả tìm kiếm
Quản trị viên có thể điều chỉnh bộ lọc hoặc tìm kiếm lại
Quá trình tiếp tục từ bước 4
+ Khách hàng đã hủy đơn hàng:
Quản trị viên nhận được đơn hàng đã bị hủytừ khách hàng
Hệ thống hiển thị trạng thái "Đã hủy" cho đơn hàng và không cho phép quản trị viên thực hiện các tác vụ xử lý khác
Quá trình tiếp tục từ bước 8
+ Quản trị viên gặp khó khăn trong việc xử lý đơn hàng:
Quản trị viên gặp vấn đề hoặc khó khăn trong việc xử lý đơn hàng (ví dụ: lỗi hệ thống, thiếu thông tin, v.v.)
Quản trị viên có thể tìm kiếm sự trợ giúp từ bộ phận hỗ trợ kỹ thuật hoặc liên hệ với khách hàng để giải quyết vấn đề
Quá trình tiếp tục từ bước 6 sau khi vấn đề được giải quyết.
Đặc tả use case quản lý sản phẩm:
- Tác nhân: Người quản lý
- Mô tả: Chức năng quản lý sản phẩm cho phép quản trị viên (Admin) của hệ thống mua sắm trực tuyến xem, thêm, sửa đổi và xóa các sản phẩm có trong cửa hàng
- Dòng sự kiện chính:
Trang 25 Quản trị viên truy cập vào chức năng quản lý sản phẩm trong hệ thống
Hệ thống hiển thị danh sách các sản phẩm đang có trong cửa hàng
Quản trị viên chọn một sản phẩm từ danh sách để xem chi tiết Hệ thống hiển thị thông tin chi tiết về sản phẩm, bao gồm tên, mô tả, giá, số lượng có sẵn, hình ảnh, v.v
Quản trị viên có thể thực hiện các tác vụ quản lý sản phẩm, bao gồm: Thêm sản phẩm mới: Quản trị viên thêm một sản phẩm mới vào cửa hàng, cung cấp các thông tin cần thiết như tên, mô tả, giá, số lượng, hình ảnh, v.v Chỉnh sửa sản phẩm: Quản trị viên cập nhật thông tin của một sản phẩm hiện có, bao gồm tên,
mô tả, giá, số lượng, hình ảnh, v.v Xóa sản phẩm
Sau khi quản lý sản phẩm, quản trị viên có thể lưu trữ các thay đổi và cập nhật vào hệ thống
Quản trị viên có thể quay lại danh sách sản phẩm để quản lý các sản phẩm khác hoặc tiếp tục tìm kiếm, lọc các sản phẩm.
- Trạng thái hệ thống trước khi sử dụng use case: Quản trị viên đã đăng nhập vào hệ thống với tư cách quản trị viên.
- Trạng thái hệ thống sau khi sử dụng use case:
+ Thực hiện thêm sửa, xoám sản phẩm thành công
+ Thực hiện thêm sửa xóa sản phẩm thất bại
Đặc tả use case người dùng:
- Tác nhân: Người quản lý
- Mô tả: Chức năng quản lý sản phẩm cho phép quản trị viên (Admin) của hệ thống cho phép sửa, xóa người dùng
- Dòng sự kiện chính:
Quản trị viên truy cập vào chức năng quản lý người dùng trong hệ thống
Hệ thống hiển thị danh sách các người dùng
Trang 26 Quản trị viên có thể thực hiện các tác vụ quản lý người dùng
Sau khi quản lý danh mục, quản trị viên có thể lưu trữ các thay đổi và cập nhật vào hệ thống
Quản trị viên có thể quay lại danh sách người dùng để quản lý các danh mục
- Trạng thái hệ thống trước khi sử dụng use case: Quản trị viên đã đăng nhập vào hệ thống với tư cách quản trị viên.
- Trạng thái hệ thống sau khi sử dụng use case:
+ Thực hiện sửa, xoá người dùng thành công
+ Thực hiện sửa, xóa người dùng thất bại
2.3 Biểu đồ lớp của hệ thống
Trang 27Hình 2 2 Biểu đồ lớp của hệ thống
2.4 Thiết kế giao diện
Thiết kế Layout trang chủ:
Trang 28Hình 2 3 Layout trang chủ
Thiết kế Layout đăng nhập:
Trang 29Hình 2 4 Layout trang đăng nhập
Thiết kế Layout đăng ký: