Khả năng sử dụng: Giao diện thân thiện, dễ sử dụng: Website cần có giao diện đơn giản, dễ hiểu để khách hàng dễ dàng tìm kiếm sản phẩm và mua sắm.. Có thể thêm chức năng mới: Web
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CƠ SỞ
ĐỀ TÀI:
XÂY DỰNG WEBSITE BÁN HÀNG QUẦN ÁO
Cán bộ hướng dẫn:
ThS Nguyễn Văn Phác
Sinh viên thực hiện:
- Lê Văn Trọng AT180046
- Bùi Đức Trung AT180447
- Phạm Minh Đức AT180401
Lớp: L02
Hà Nội, 2024
Trang 2HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CƠ SỞ
ĐỀ TÀI:
XÂY DỰNG WEBSITE BÁN HÀNG QUẦN ÁO
Nhận xét của cán bộ hướng dẫn:
Điểm chuyên cần:
Điểm báo cáo:
Xác nhận của cán bộ hướng dẫn
Trang 3MỤC LỤC BẢNG KÝ HIỆU DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ
LỜI CẢM ƠN LỜI NÓI ĐẦU
Trong thời đại bùng nổ thông tin, mạng Internet đã trở thành một phần của cuộc sống hiện đại và ngày càng đóng vai trò quan trọng đối với con người, chúng ta có thể thấy được Internet đã và đang chi phối hầu như mọi lĩnh vực của cuộc sống từ kinh tế, giải trí đến giáo dục và trong lĩnh vực y tế, v.v
Cùng với sự phát triển nhanh chóng của xã hội thì nhu cầu mua sắm trực tuyến ngày càng gia tăng, do sự tiện lợi, nhanh chóng và đa dạng về mẫu mã, giá
cả Tuy nhiên, nhiều website bán hàng quần áo hiện nay vẫn còn gặp nhiều bất cập, khiến khách hàng không hài lòng như: Khó khăn trong việc tìm kiếm sản phẩm: Việc phân loại sản phẩm chưa khoa học, chức năng tìm kiếm chưa hiệu quả khiến khách hàng tốn nhiều thời gian để tìm kiếm sản phẩm ưng ý Hình ảnh sản phẩm chưa chân thực: Hình ảnh sản phẩm không được đầu tư, thiếu chi tiết, hoặc do chụp qua camera thường nên không thể hiện đầy đủ chất lượng sản phẩm, khiến khách hàng hoang mang, lo lắng khi mua hàng Chính sách mua hàng, đổi trả phức tạp: Quy trình mua hàng, đổi trả sản phẩm rườm rà, thủ tục phức tạp khiến khách hàng nản lòng Hỗ trợ khách hàng chưa chu đáo: Nhân viên tư vấn thiếu chuyên nghiệp, trả lời tin nhắn chậm, không giải đáp được thắc mắc của khách hàng
Nhằm giải quyết những vấn đề trên, nhóm chúng em đã quyết định lựa
chọn đề tài “xây dựng website bán hàng quần áo” với mục đích: Mang đến
cho khách hàng trải nghiệm mua sắm trực tuyến tiện lợi, nhanh chóng và an toàn Cung cấp đa dạng các mẫu mã quần áo thời trang, chất lượng cao với giá
cả cạnh tranh Đảm bảo hình ảnh sản phẩm chân thực, rõ nét, kèm theo mô tả chi tiết để khách hàng dễ dàng lựa chọn Có chính sách mua hàng, đổi trả rõ ràng, minh bạch, thuận tiện cho khách hàng Hỗ trợ khách hàng 24/7, giải đáp mọi thắc mắc của khách hàng một cách nhanh chóng và hiệu quả
Ngoài phần mở đầu, kết luận và tài liệu tham khảo, báo cáo được chia làm
3 chương, với các nội dung sau:
Trang 4Chương 1: Phân tích yêu cầu hệ thống: Giới thiệu tổng quan về hệ thống
ứng dụng quản lý phòng khám nhi trên nền tảng di động Xác định các yêu cầu chức năng và phi chức năng của hệ thống Liệt kê các công nghệ được sử dụng
để xây dựng ứng dụng
Chương 2: Phân tích và thiết kế hệ thống: Trình bày các bước chính
trong quá trình phân tích và thiết kế hệ thống, bao gồm: Biểu đồ use case tổng quát Phân rã các biểu đồ use case Các biểu đồ tuần tự tương ứng Thiết kế cơ
sở dữ liệu cho hệ thống
Chương 3: Triển khai hệ thống: Giới thiệu tổng quan về các bước triển
khai hệ thống Giới thiệu một số giao diện của hệ thống
Mặc dù đã hoàn thành các mục tiêu cơ bản đề ra, nhưng do thời gian thực hiện ngắn nên không thể tránh khỏi những thiếu sót Nhóm chúng tôi rất mong nhận được sự góp ý quý báu từ thầy cô để hoàn thiện đề tài này một cách tốt nhất
NHÓM THỰC HIỆN ĐỀ TÀI
Lê Văn Trọng Bùi Đức Trung Phạm Minh Đức
CHƯƠNG 1 PHÂN TÍCH YÊU CẦU HỆ THỐNG XÂY DỰNG WEB
SITE BÁN HÀNG QUẦN ÁO 1.1 Tổng quan hệ thống website bán hàng quần áo
1.2 Yêu cầu hệ thống
1.2.1 Yêu cầu chức năng
a Hệ thống quản lý sản phẩm:
Cho phép thêm, sửa, xóa sản phẩm
Trang 5 Quản lý danh mục sản phẩm, phân loại theo loại sản phẩm, thương hiệu, kiểu dáng, giá cả
Cập nhật hình ảnh sản phẩm, mô tả chi tiết, giá cả, kích thước, chất liệu
Quản lý kho hàng, theo dõi số lượng sản phẩm còn lại
b Hệ thống quản lý đơn hàng:
Tiếp nhận đơn hàng từ khách hàng
Xử lý đơn hàng: xác nhận đơn hàng, đóng gói, giao hàng, cập nhật trạng thái đơn hàng
Quản lý thông tin khách hàng: tên, địa chỉ, số điện thoại, email
Theo dõi lịch sử mua sắm của khách hàng
c Hệ thống quản lý khách hàng:
Lưu trữ thông tin khách hàng: tên, địa chỉ, số điện thoại, email, lịch sử mua sắm
Hỗ trợ khách hàng: giải đáp thắc mắc, tư vấn sản phẩm
d Hệ thống thanh toán:
Cung cấp các phương thức thanh toán đa dạng: thanh toán trực tuyến, thanh toán khi nhận hàng (COD)
Kết nối với các cổng thanh toán uy tín
Quản lý hóa đơn, biên lai thanh toán
e Hệ thống quản lý nội dung:
Cập nhật tin tức, bài viết, hình ảnh về thương hiệu, sản phẩm, xu hướng thời trang
f Hệ thống quản lý người dùng:
Quản lý tài khoản người dùng: đăng nhập, đăng ký, đổi mật khẩu, cập nhật thông tin cá nhân
Phân quyền cho người dùng: quản trị viên, nhân viên bán hàng, khách hàng
g Hệ thống thống kê báo cáo:
Trang 6 Theo dõi doanh thu, lượt truy cập, hiệu quả hoạt động của
website
Báo cáo doanh thu theo sản phẩm, theo danh mục, theo thời gian
Báo cáo số lượng khách hàng, lượt truy cập theo kênh
h Tìm kiếm và lọc sản phẩm:
Cho phép khách hàng tìm kiếm sản phẩm theo tên, theo danh mục, theo thương hiệu, theo giá cả, theo kích thước, theo chất liệu
Lọc sản phẩm theo nhiều tiêu chí cùng lúc
Sắp xếp sản phẩm theo giá cả, theo độ mới, theo mức độ phổ biến
i Giỏ hàng:
Cho phép khách hàng thêm sản phẩm vào giỏ hàng
Cập nhật số lượng sản phẩm trong giỏ hàng
Tính toán tổng giá trị đơn hàng
Lưu trữ giỏ hàng để khách hàng có thể mua sắm sau
k Thanh toán:
Hiển thị các phương thức thanh toán available
Cho phép khách hàng nhập thông tin thanh toán
Xác nhận thanh toán và gửi thông báo cho khách hàng
l Giao hàng:
Cung cấp các dịch vụ giao hàng đa dạng: giao hàng tận nơi, giao hàng bưu điện, giao hàng tiết kiệm
Tính toán phí giao hàng
Cập nhật thông tin giao hàng cho khách hàng
m Đánh giá sản phẩm:
Cho phép khách hàng đánh giá sản phẩm sau khi mua
Hiển thị đánh giá của khách hàng trên trang sản phẩm
Trang 71.2.1 Yêu cầu phi chức năng
a Hiệu suất:
Tốc độ tải trang nhanh: Website cần tải trang nhanh chóng để
thu hút và giữ chân khách hàng
Khả năng xử lý lượng truy cập cao: Website cần có khả năng
xử lý lượng truy cập lớn, đặc biệt trong các đợt cao điểm
Khả năng mở rộng: Website cần có thể mở rộng dễ dàng khi
lượng truy cập và dữ liệu tăng lên
b Khả dụng:
Hệ thống phải sẵn sàng 24/7: Website cần sẵn sàng phục vụ
khách hàng mọi lúc mọi nơi
Thời gian chết tối thiểu: Website cần hạn chế tối đa thời gian
chết để đảm bảo trải nghiệm người dùng tốt nhất
c Bảo mật:
Bảo vệ thông tin khách hàng: Website cần bảo mật thông tin cá
nhân và thanh toán của khách hàng
Chống tấn công mạng: Website cần được bảo vệ khỏi các tấn
công mạng như SQL injection, XSS, v.v
Sử dụng các biện pháp bảo mật tiên tiến: Website cần sử dụng
các biện pháp bảo mật tiên tiến như mã hóa dữ liệu, tường lửa, v.v
d Khả năng sử dụng:
Giao diện thân thiện, dễ sử dụng: Website cần có giao diện
đơn giản, dễ hiểu để khách hàng dễ dàng tìm kiếm sản phẩm và mua sắm
Tương thích với nhiều thiết bị: Website cần tương thích với
nhiều thiết bị khác nhau như máy tính, điện thoại thông minh, máy tính bảng
Hỗ trợ nhiều ngôn ngữ: Website cần hỗ trợ nhiều ngôn ngữ để
phục vụ khách hàng quốc tế
e Khả năng mở rộng:
Trang 8 Hệ thống có thể mở rộng dễ dàng: Website cần có thể mở rộng
dễ dàng khi lượng truy cập và dữ liệu tăng lên
Có thể thêm chức năng mới: Website cần có thể thêm chức
năng mới dễ dàng để đáp ứng nhu cầu của khách hàng
Có thể di chuyển sang nền tảng mới: Website cần có thể di
chuyển sang nền tảng mới dễ dàng nếu cần thiết
f Khả năng bảo trì:
Dễ dàng bảo trì và cập nhật: Website cần dễ dàng bảo trì và
cập nhật để đảm bảo hệ thống hoạt động ổn định và an toàn
Có tài liệu hướng dẫn sử dụng đầy đủ: Website cần có tài liệu
hướng dẫn sử dụng đầy đủ để giúp người quản trị website dễ dàng sử dụng và bảo trì
1.3 Các công nghệ được sử dụng
1.3.1 Ngôn ngữ lập trình (Python, Java)
1.3.1.1 Java là gì ?
Java là ngôn ngữ lập trình đa nền tảng (cross-platform), được phát
triển bởi James Gosling tại Sun Microsystems (nay là Oracle Corporation) Ngôn ngữ lập trình này ra đời vào năm 1995 và được thiết
kế để có thể chạy trên các nền tảng khác nhau, từ máy tính cá nhân đến thiết bị di động, các máy chủ và thiết bị nhúng
Java sử dụng cấu trúc lập trình hướng đối tượng (object-oriented programming - OOP) và được xây dựng trên cơ sở của ngôn ngữ lập trình C++ Nó cung cấp một môi trường chạy ảo (virtual machine) gọi là Java Virtual Machine (JVM), giúp các chương trình Java có thể chạy trên nhiều nền tảng khác nhau mà không cần phải biên dịch lại
Hiện tại, Java là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãi trong các ứng dụng di động, phát triển web, lập trình trên các thiết bị nhúng, máy tính cá nhân, máy chủ, game
và nhiều lĩnh vực khác.
1.3.1.2 Các tính năng của Java
Dễ dàng bảo trì và cập nhật: Website cần dễ dàng bảo trì và
cập nhật để đảm bảo hệ thống hoạt động ổn định và an toàn
Trang 9 Đa nền tảng: Java được thiết kế để có thể chạy trên nhiều nền
tảng khác nhau, vì vậy nó rất phù hợp cho việc phát triển các ứng dụng đa nền tảng Java sử dụng một máy ảo (JVM - Java Virtual Machine) để chạy mã nguồn, vì vậy mã nguồn được viết một lần và có thể chạy trên nhiều hệ điều hành khác nhau mà không cần thay đổi
Quản lý bộ nhớ tự động: Java có tính năng tự động quản lý bộ
nhớ, tức là nó tự động thu dọn các vùng nhớ không sử dụng nữa
để giảm thiểu các lỗi bộ nhớ Điều này giúp cho các ứng dụng được viết bằng Java có thể chạy ổn định và tránh các lỗi liên quan đến bộ nhớ
Hỗ trợ đa luồng: Java có thể xử lý đa luồng, cho phép chương
trình thực hiện nhiều tác vụ cùng một lúc Điều này giúp cho các ứng dụng có thể chạy nhanh và hiệu quả hơn, đặc biệt là khi phải
xử lý nhiều tác vụ cùng một lúc
Tính bảo mật cao: Java có các tính năng bảo mật như kiểm tra
kiểu tĩnh và kiểm tra lỗi trên đường dẫn Java được thiết kế để giảm thiểu các lỗ hổng bảo mật và các vấn đề liên quan đến an ninh
Hỗ trợ các thư viện và công cụ phát triển mạnh mẽ: Java có
các thư viện tiêu chuẩn và các công cụ phát triển như IDE (Integrated Development Environment) để giúp các nhà phát triển tạo ra các ứng dụng dễ dàng hơn Các thư viện và công cụ này cung cấp các tính năng như: tạo giao diện người dùng, xử lý
dữ liệu, kết nối cơ sở dữ liệu và nhiều hơn nữa,
Tính di động: Java được sử dụng rộng rãi trong lĩnh vực di
động bao gồm: các thư viện hỗ trợ việc phát triển ứng dụng di động, đóng gói ứng dụng thành các file jar hoặc apk, cung cấp các tính năng như xử lý đa nhiệm, kết nối mạng và tích hợp với các thiết bị phần cứng như máy ảnh
Tính độc lập với nền tảng: Java có thể chạy trên nhiều nền tảng
khác nhau và không phụ thuộc vào bất kỳ nền tảng cụ thể nào Điều này giúp cho các ứng dụng Java có thể được triển khai trên nhiều hệ thống khác nhau mà không cần sửa đổi mã nguồn
Tính kế thừa và đa hình: Java là ngôn ngữ lập trình hướng đối
tượng (OOP), vì vậy nó có các tính năng như kế thừa, đa hình và
Trang 10đóng gói Các tính năng này giúp cho mã nguồn được tái sử dụng và giảm thiểu sự trùng lặp trong mã nguồn
Tính mở rộng: Java có tính năng mở rộng, cho phép các nhà
phát triển thêm các tính năng mới vào ngôn ngữ bằng cách tạo các thư viện và API riêng Điều này giúp cho Java có thể được
sử dụng trong nhiều lĩnh vực khác nhau và được phát triển theo các hướng khác nhau
1.3.2 Cơ sở dữ liệu (PostgreSQL)
1.3.2.1 PostgreSQL là gì ?
PostgreSQL (Postgres Structured Query Language) là một hệ
thống quản lý cơ sở dữ liệu quan hệ - đối tượng (object - relational database management system) tiên tiến và mã nguồn mở Nó đã được phát triển từ phiên bản POSTGRES 4.2 tại phòng khoa học máy tính của Đại học California, Berkeley Hiện nay, PostgreSQL đã trở thành một lựa chọn quan trọng và đáng tin cậy để quản lý dữ liệu cho các ứng dụng
từ cá nhân đến doanh nghiệp lớn
Được thiết kế để hoạt động trên các nền tảng UNIX, PostgreSQL cũng đã được điều chỉnh linh hoạt để tương thích với nhiều hệ điều hành khác như Mac OS X, Solaris và Windows Là một phần mềm mã nguồn
mở, PostgreSQL được cung cấp dưới dạng giấy phép tự do, cho phép người dùng sử dụng, sửa đổi và phân phối mã nguồn một cách tự do
Độ ổn định cao của PostgreSQL đảm bảo giảm thiểu nhu cầu bảo trì và giúp giảm chi phí sở hữu khi phát triển các ứng dụng dựa trên nền tảng này so với các hệ thống quản trị dữ liệu khác
1.3.2.2 Những điểm nổi bật của PostgreSQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu có nhiều tính năng đa dạng, hỗ trợ nhà phát triển xây dựng ứng dụng, quản trị viên bảo vệ tính toàn vẹn dữ liệu và cung cấp một môi trường chịu lỗi (fault-tolerant) để quản lý dữ liệu bất kể kích thước lớn hay nhỏ PostgreSQL không chỉ là một hệ thống mã nguồn mở miễn phí mà còn có khả năng mở rộng tuyệt vời Dưới đây là một số tính năng quan trọng của PostgreSQL:
Kiểu dữ liệu đa dạng: PostgreSQL hỗ trợ nhiều kiểu dữ liệu
như số nguyên, số thực, chuỗi, Boolean, ngày/giờ, mảng, phạm
Trang 11vi, UUID, JSON/JSONB, XML, key-value (Hstore), hình học và các kiểu dữ liệu tùy chỉnh
Tính toàn vẹn dữ liệu: PostgreSQL cung cấp các cơ chế để đảm
bảo tính toàn vẹn dữ liệu như ràng buộc UNIQUE, NOT NULL, Primary Keys, Foreign Keys và ràng buộc loại trừ Ngoài ra, nó còn hỗ trợ khóa hàm số/explicit locks và khóa khuyến nghị/advisory locks
Đồng quy và hiệu suất: PostgreSQL cung cấp các phương pháp
lập danh mục (indexing) như B-tree, multicolumn, expressions, partial và các phương pháp lập danh mục nâng cao như GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom filters Nó cũng có trình lập kế hoạch/trình tối ưu hóa truy vấn phức tạp, hỗ trợ quét chỉ trên danh mục (index-only scan) và thống kê đa cột
Giao tác và đồng thời: PostgreSQL hỗ trợ giao tác ACID
(Atomicity, Consistency, Isolation, Durability) và giao tác dạng nest thông qua lưu điểm (savepoints) Nó cũng hỗ trợ điều khiển đồng thời nhiều phiên bản (MVCC) và truy vấn đọc song song
Phân vùng bảng: PostgreSQL cho phép phân vùng bảng để tăng
hiệu suất truy vấn và quản lý dữ liệu lớn
Độ tin cậy và phục hồi: PostgreSQL sử dụng ghi nhật ký ghi
trước (Write-ahead Logging - WAL) để đảm bảo độ tin cậy và
hỗ trợ khôi phục điểmtheothời gian (Pointintime Recovery -PITR) và active standbys
Bảo mật: PostgreSQL cung cấp các phương pháp xác thực như
GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate và hệ thống kiểm soát truy cập mạnh mẽ Nó cũng hỗ trợ bảo mật cấp độ cột và hàng
Khả năng mở rộng: PostgreSQL có khả năng mở rộng thông
qua các phương pháp lưu trữ và hỗ trợ nhiều ngôn ngữ thủ tục như PL/PGSQL, Perl, Python và nhiều ngôn ngữ khác Ngoài ra,
nó hỗ trợ tích hợp với các cơ sở dữ liệu và ứng dụng khác thông qua giao diện SQL chuẩn và cung cấp nhiều tiện ích mở rộng bổ sung như PostGIS
Tìm kiếm văn bản: PostgreSQL hỗ trợ các bộ ký tự quốc tế
thông qua ICU collations và cung cấp khả năng tìm kiếm văn bản toàn diện