Bối cảnh và vấn đề nghiên cứu
Đồ án chuyên ngành ngành Công nghệ thông tin với đề tài "Website Kinh Doanh Điện Thoại Di Động" được thực hiện bởi sinh viên Đinh Ngọc Cường (Lớp 21CNTT2, Mã sinh viên: 3120221011), dưới sự hướng dẫn khoa học của TS. Vũ Thị Trà tại Khoa Tin học – Trường Đại học Sư phạm, Đại học Đà Nẵng (năm 2023).
Lý do chọn đề tài và bối cảnh thực tiễn
Theo lập luận của tác giả trong phần mở đầu, thương mại điện tử (TMĐT) là một lĩnh vực tương đối mới tại Việt Nam nhưng nhận được sự quan tâm, thúc đẩy mạnh mẽ từ phía Chính phủ. Trước làn sóng toàn cầu hóa, việc các doanh nghiệp và tổ chức ứng dụng TMĐT vào hoạt động kinh doanh là điều kiện tiên quyết để tồn tại, nâng cao năng lực cạnh tranh và phát triển.
Tuy nhiên, trên thực tế tại Việt Nam, số lượng doanh nghiệp triển khai TMĐT một cách thực chất và đúng nghĩa vào quy trình trao đổi, mua bán trong nước và quốc tế vẫn còn nhiều hạn chế. Các phương tiện kỹ thuật cùng công cụ lập trình ứng dụng vào TMĐT chưa được phổ biến rộng rãi trong khối doanh nghiệp. Doanh nghiệp còn thiếu hụt nền tảng kiến thức để xây dựng, vận hành website bán hàng hiệu quả, triển khai marketing trực tuyến, chọn lựa mô hình TMĐT thích hợp, xúc tiến thanh toán điện tử và áp dụng các giải pháp an toàn thông tin tối thiểu. Xuất phát từ bối cảnh đó, tác giả lựa chọn xây dựng thử nghiệm một website kinh doanh điện thoại di động ảo hoạt động theo mô hình B2C (Business-to-Consumer) nhằm củng cố kiến thức chuyên ngành và kỹ năng lập trình web TMĐT.
Mục tiêu nghiên cứu
Mục tiêu của đề tài được tác giả xác định cụ thể gồm:
- Tiếp thu và tích lũy thêm kiến thức về các ngôn ngữ lập trình web (PHP, CSS...) để xây dựng hoàn thiện một website.
- Xây dựng một hệ thống bán hàng trực tuyến vận hành thuận tiện, tạo giao diện thân thiện với khách hàng.
- Xây dựng website đáp ứng đầy đủ nhu cầu tìm kiếm, tra cứu và mua sắm sản phẩm của người dùng; hình thành môi trường mua sắm trực quan, thao tác thuận tiện cho nhiều đối tượng tiếp cận.
- Hỗ trợ đơn vị kinh doanh xử lý các nghiệp vụ bán hàng nhanh chóng, chính xác và giảm thiểu thời gian so với phương thức quản lý thủ công; đồng thời hạn chế tối đa rủi ro trong quản trị thông tin và ngăn ngừa thất thoát dữ liệu khách hàng.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu:
- Thực trạng phát triển thương mại điện tử tại thị trường Việt Nam.
- Các công cụ, ngôn ngữ lập trình và framework hỗ trợ xây dựng website bán hàng.
- Các phân hệ chức năng tiêu chuẩn của một website thương mại điện tử.
- Quy trình và kỹ thuật xây dựng hệ thống website thương mại điện tử B2C.
- Phạm vi nghiên cứu:
- Không gian ứng dụng: Mô hình cửa hàng điện thoại di động trực tuyến thử nghiệm, phục vụ người dùng Internet và bộ phận quản trị cửa hàng.
- Phạm vi kỹ thuật: Tập trung vào thiết kế cơ sở dữ liệu quan hệ, phân tích luồng xử lý thông qua biểu đồ UML và triển khai các chức năng cốt lõi (danh mục, chi tiết sản phẩm, giỏ hàng, đặt hàng, quản lý đơn hàng).
Tiêu chí chức năng và quản trị hệ thống
Văn bản xác định các tiêu chí nghiệp vụ cần đáp ứng bao gồm:
- Tiêu chí chức năng cho khách hàng: Giao diện trực quan, có tính thẩm mỹ, hiển thị thông tin sản phẩm chính xác và đầy đủ; cung cấp tính năng đăng ký, đăng nhập tài khoản an toàn, bảo mật; hỗ trợ công cụ tìm kiếm sản phẩm theo yêu cầu; cho phép xem chi tiết từng mặt hàng; cung cấp tính năng thêm sản phẩm vào giỏ hàng và xem chi tiết giỏ hàng để theo dõi, tính toán chi phí trước khi đặt hàng.
- Tiêu chí quản trị (Admin): Giao diện quản lý độc lập, rõ ràng và dễ sử dụng; cho phép quản trị viên thêm, sửa, xóa và cập nhật danh mục sản phẩm; quản lý danh sách sản phẩm hiển thị trên website; xem danh sách hóa đơn bán hàng và cập nhật trạng thái đơn hàng.
Cơ sở lý thuyết và công nghệ áp dụng
Tác giả dành toàn bộ Chương 1 để trình bày tổng quan về các công nghệ, ngôn ngữ và nền tảng cấu thành ứng dụng web thương mại điện tử:
1. Hệ quản trị cơ sở dữ liệu MySQL
- Khái niệm và đặc điểm: MySQL là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, ra đời từ năm 1995. Hệ thống tổ chức và lưu trữ dữ liệu dưới dạng các bảng (tables), hỗ trợ kiến trúc đa người dùng, cơ chế giao dịch (transactions), kiểm soát phiên làm việc, quản lý tiến trình an toàn, đồng bộ hóa và sao lưu/phục hồi dữ liệu. MySQL có khả năng kết hợp chặt chẽ với các ngôn ngữ kịch bản máy chủ như PHP, Java, Python.
- Ưu điểm: Tốc độ thực thi nhanh nhờ tuân thủ các tiêu chuẩn tối ưu; khả năng mở rộng và xử lý khối lượng bản ghi lớn; hỗ trợ phong phú các tính năng SQL tiêu chuẩn; tích hợp các cơ chế bảo mật cấp cao phù hợp cho môi trường Internet.
- Nhược điểm: Hiệu năng truy xuất có xu hướng suy giảm khi số lượng bản ghi tăng đột biến (đòi hỏi các giải pháp như bộ nhớ đệm cache hoặc phân tải cơ sở dữ liệu ra nhiều máy chủ); độ tin cậy trong các tác vụ kiểm toán hoặc giao dịch phức tạp còn hạn chế so với một số RDBMS thương mại; thiết kế tồn tại một số giới hạn chức năng chuyên sâu.
2. Ngôn ngữ lập trình PHP
- Bản chất: Viết tắt ban đầu từ Personal Home Page, sau đổi thành Hypertext Preprocessor. Đây là ngôn ngữ kịch bản chạy phía máy chủ (server-side script). Mã lệnh PHP được biên dịch và xử lý tại web server (như Apache, IIS), sau đó chuyển đổi kết quả thành mã HTML trả về cho client.
- Đặc tính kỹ thuật: Mã nguồn mở, miễn phí, tương thích đa nền tảng (Windows, Linux, macOS). Cú pháp chịu ảnh hưởng từ C và Java. Từ phiên bản PHP 5, ngôn ngữ hỗ trợ đầy đủ các đặc tính của lập trình hướng đối tượng (OOP) như tính kế thừa (Inheritance), tính trừu tượng (Abstraction), tính đóng gói (Encapsulation), tính đa hình (Polymorphism), Interface và Autoload.
- 9 thành phần chính của PHP được tác giả sơ đồ hóa: Gồm MVC Architecture, Handle Forms, System Functions, Database, PHP Parser, kết nối mạng và các thư viện hỗ trợ.
- Hạn chế: Cấu trúc cú pháp ngữ pháp chưa thực sự tinh gọn; phạm vi ứng dụng chủ yếu giới hạn trong môi trường ứng dụng web.
3. Ngôn ngữ đánh dấu siêu văn bản HTML
- Lịch sử và vai trò: Được Tim Berners-Lee sáng tạo năm 1991 tại CERN với 18 thẻ ban đầu, cập nhật chuẩn HTML5 vào năm 2014. HTML đóng vai trò định dạng và cấu trúc hóa nội dung tài liệu web thông qua các cặp thẻ mở và thẻ đóng (
<tag> và </tag>).
- Cấu trúc tài liệu chuẩn: Văn bản mô tả cấu trúc mẫu gồm
<!DOCTYPE html>, <html>, <head>, <title>, <body>.
- Hệ thống thẻ cơ bản được tổng hợp trong đồ án: Bao gồm các thẻ tiêu đề (
<h1> - <h6>), đoạn văn (<p>), xuống dòng (
), đường kẻ (<hr>), chú thích (<!-- -->), chỉ số dưới/trên (<sub>, <sup>), hình ảnh (<img>), liên kết (<a>), thanh điều hướng (<nav>), cấu trúc bảng (<table>, <caption>, <thead>, <tbody>, <tfoot>, <tr>, <th>, <td>), phân nhóm phần tử (<div>, <span>), khối nội dung (<header>, <main>, <style>).
<!DOCTYPE html>
<html>
<head>
<title>Tiêu đề trang web</title>
</head>
<body>
Nội dung trang web
</body>
</html>
4. Các công nghệ giao diện và trao đổi dữ liệu: CSS, JavaScript, JSON, Bootstrap
- CSS (Cascading Style Sheets): Chuẩn hóa bởi W3C năm 1996 nhằm tách biệt tầng trình bày khỏi tầng nội dung HTML. Bố cục phần tử CSS tuân thủ mô hình hộp gồm Padding (vùng đệm), Border (đường viền), Margin (lề). Cú pháp gồm Selector (bộ chọn), Declaration block chứa Property (thuộc tính) và Value (giá trị).
- JavaScript (JS): Ngôn ngữ kịch bản phía máy khách (client-side) hỗ trợ lập trình hướng đối tượng, cho phép website tương tác linh hoạt với người dùng mà không cần tải lại toàn bộ trang. Ưu điểm là thực thi trực tiếp trên trình duyệt không qua compiler riêng, mã nguồn nhẹ, kiểm tra dữ liệu đầu vào (input validation) ngay tại client. Nhược điểm gồm nguy cơ bảo mật, không hỗ trợ đa luồng trực tiếp, không cho phép can thiệp sâu vào hệ thống tệp của client và khả năng hiển thị có thể chênh lệch giữa các trình duyệt.
- JSON (JavaScript Object Notation): Định dạng trao đổi dữ liệu dạng văn bản dựa trên cấu trúc cặp khóa - giá trị (
key-value) và mảng đối tượng. Cấu trúc nhỏ gọn, tương thích tự nhiên với nhiều ngôn ngữ lập trình (PHP, JavaScript, Python...) và hỗ trợ giao tiếp hiệu quả qua API.
- Bootstrap Framework: Bộ khung giao diện tích hợp sẵn HTML, CSS và JavaScript; ứng dụng hệ thống lưới (grid system) theo triết lý Mobile-first giúp website tự động co giãn tương thích (responsive) trên máy tính bảng và điện thoại thông minh. Ưu điểm là rút ngắn thời gian phát triển giao diện; nhược điểm là dung lượng thư viện tương đối nặng, sinh ra nhiều đoạn mã thừa nếu chỉ khai thác một phần nhỏ tính năng.
- Công cụ phát triển phần mềm: Phần mềm soạn thảo mã nguồn Visual Studio Code (VSCode).
Thiết kế và triển khai hệ thống
Chương 2 và Chương 3 của đồ án tập trung hoàn toàn vào quy trình phân tích yêu cầu, mô hình hóa hệ thống bằng UML, thiết kế cơ sở dữ liệu quan hệ và triển khai các giao diện chức năng.
1. Phân tích yêu cầu hệ thống
Yêu cầu chức năng
- Phân hệ khách hàng: Tìm kiếm sản phẩm, xem chi tiết sản phẩm, đăng ký tài khoản, đăng nhập hệ thống, quản lý giỏ hàng (thêm, sửa số lượng, xóa), thực hiện quy trình mua hàng.
- Phân hệ quản trị (Admin): Đăng nhập quyền quản trị, quản lý sản phẩm (thêm mới, chỉnh sửa, xóa, tìm kiếm), quản lý danh mục và quản lý đơn đặt hàng.
Yêu cầu phi chức năng
Báo cáo xây dựng bảng đặc tả yêu cầu phi chức năng cụ thể như sau:
| Đặc tính |
Chi tiết yêu cầu kỹ thuật |
| Cơ sở hạ tầng |
Dữ liệu lưu trữ tập trung trong CSDL; có chính sách sao lưu định kỳ và khôi phục khi gặp sự cố. |
| Bảo mật |
Phân quyền truy cập 2 cấp độ: Quản trị viên (Admin) và Khách hàng; Dữ liệu tài khoản được lưu trữ an toàn trong CSDL; Mật khẩu người dùng được mã hóa bằng thuật toán Bcrypt. |
| Trình duyệt |
Tương thích và hoạt động ổn định trên mọi trình duyệt web phổ biến. |
| Giao diện |
Thiết kế trực quan, dễ thao tác, thân thiện người dùng; đồng nhất về màu sắc và phông chữ. |
| Ngôn ngữ |
Toàn bộ giao diện sử dụng ngôn ngữ Tiếng Việt. |
2. Mô hình hóa hệ thống bằng UML
Danh sách tác nhân hệ thống (Bảng 2-1)
- Khách vãng lai: Người dùng chưa đăng ký tài khoản; có quyền xem danh sách sản phẩm, xem chi tiết sản phẩm, thực hiện đăng ký hoặc đăng nhập.
- Khách hàng: Người dùng đã đăng ký tài khoản và đăng nhập hệ thống; được phép xem chi tiết, thêm sản phẩm vào giỏ hàng, cập nhật giỏ hàng và tạo đơn mua hàng.
- Admin: Quản trị viên hệ thống; thừa hưởng các quyền cơ bản và nắm quyền quản lý sản phẩm, đơn hàng, danh mục.
Đặc tả các Use Case chính
- UC01 - Quản lý sản phẩm: Tác nhân Admin. Cho phép thêm mới, chỉnh sửa thông tin, xóa và tìm kiếm mặt hàng. Điều kiện tiên quyết: Đã đăng nhập tài khoản quyền Admin.
- UC02 - Quản lý đơn hàng: Tác nhân Admin. Cho phép theo dõi danh sách các đơn hàng phát sinh từ khách hàng. Điều kiện tiên quyết: Đăng nhập quyền Admin.
- UC03 - Tìm kiếm sản phẩm: Tác nhân User/Admin. Tra cứu danh mục sản phẩm theo từ khóa tên điện thoại.
- UC04 - Quản lý giỏ hàng: Tác nhân Khách hàng. Thao tác xem giỏ, thêm mặt hàng, cập nhật số lượng hoặc xóa bỏ sản phẩm khỏi giỏ. Điều kiện tiên quyết: Đã đăng nhập hệ thống.
- UC05 - Mua hàng: Tác nhân Khách hàng. Lựa chọn sản phẩm, thêm vào giỏ hàng, cung cấp đầy đủ thông tin giao nhận để hoàn tất đặt hàng.
- UC10 - Quản lý thông tin tài khoản: Tác nhân Khách hàng. Cập nhật thông tin liên hệ, địa chỉ giao nhận và theo dõi trạng thái đơn hàng cá nhân.
Biểu đồ tuần tự và biểu đồ hoạt động
Tác giả xây dựng chi tiết 6 biểu đồ tuần tự (Sequence Diagram) và 7 biểu đồ hoạt động (Activity Diagram) thể hiện sự tương tác giữa các lớp tác nhân, tầng giao diện (View), tầng điều khiển (Controller) và tầng dữ liệu:
- Biểu đồ Thêm/Sửa/Xóa sản phẩm: Admin gửi thông tin biểu mẫu -> Controller kiểm tra tính hợp lệ của dữ liệu -> Nếu sai lệch, hệ thống hiển thị thông báo lỗi -> Nếu hợp lệ, hệ thống thực thi cập nhật vào CSDL MySQL và trả thông báo thành công.
- Biểu đồ Đăng ký/Đăng nhập: Người dùng nhập thông tin tài khoản -> Hệ thống kiểm tra trùng lặp tên đăng nhập hoặc kiểm tra mật khẩu đã mã hóa Bcrypt trong CSDL -> Trả về thông báo thành công hoặc báo lỗi tương ứng.
- Biểu đồ Giỏ hàng và Mua hàng: Khách hàng chọn sản phẩm -> Hệ thống ghi nhận vào session/CSDL giỏ hàng -> Khách hàng nhập thông tin giao nhận -> Hệ thống kiểm tra số lượng tồn kho -> Tạo bản ghi trong bảng đơn hàng và xuất thông báo đặt hàng thành công.
Thiết kế biểu đồ lớp (Class Diagram)
Hệ thống xác định các lớp đối tượng thực thể với cấu trúc thuộc tính và phương thức:
- Lớp
product: Thuộc tính (Id, Name, Image, Price, Content). Phương thức (Show(), Add(), Update(), Delete(), Create()).
- Lớp
user: Thuộc tính (Userid, Username, Sdt, Password, Status, Create_time). Phương thức (Show()).
- Lớp
orders: Thuộc tính (Id, Name, Phone, Note, Create_time, Last_update). Phương thức (Show()).
- Lớp
order_detail: Thuộc tính (Id, Order_id, Price, created_time, last_update). Phương thức (Show()).
3. Thiết kế cơ sở dữ liệu quan hệ
Cơ sở dữ liệu của website gồm 4 bảng dữ liệu chính được chuẩn hóa:
Bảng user (Lưu trữ người dùng và phân quyền)
| Tên trường |
Kiểu dữ liệu |
Ràng buộc |
Mô tả chức năng |
Userid |
Int(11) |
Khóa chính (PK) |
Mã định danh người dùng |
Username |
Varchar(255) |
|
Tên đăng nhập |
Sdt |
Int(11) |
|
Số điện thoại liên hệ |
Password |
Varchar(255) |
|
Mật khẩu tài khoản (mã hóa) |
Bảng product (Thông tin mặt hàng điện thoại)
| Tên trường |
Kiểu dữ liệu |
Ràng buộc |
Mô tả chức năng |
Id |
Int(11) |
Khóa chính (PK) |
Mã sản phẩm |
name |
Varchar(255) |
|
Tên dòng điện thoại |
image |
Varchar(255) |
|
Đường dẫn tệp hình ảnh sản phẩm |
price |
Float |
|
Giá bán niêm yết |
content |
Text |
|
Bài viết mô tả và thông số kỹ thuật |
Bảng order (Thông tin đơn đặt hàng tổng quát)
| Tên trường |
Kiểu dữ liệu |
Ràng buộc |
Mô tả chức năng |
Id |
Int(11) |
Khóa chính (PK) |
Mã đơn đặt hàng |
Name |
Varchar(255) |
|
Họ tên người nhận hàng |
Phone |
Int(11) |
|
Số điện thoại nhận hàng |
Address |
Varchar(255) |
|
Địa chỉ giao hàng chi tiết |
Note |
Varchar(255) |
|
Ghi chú yêu cầu giao hàng |
Total |
Varchar(255) |
|
Tổng giá trị đơn hàng |
Created_time |
Varchar(255) |
|
Thời điểm khởi tạo đơn hàng |
Last_update |
Varchar(255) |
|
Thời điểm cập nhật trạng thái đơn |
Bảng order_detail (Chi tiết các mặt hàng trong đơn hàng)
| Tên trường |
Kiểu dữ liệu |
Ràng buộc |
Mô tả chức năng |
Id |
Int(11) |
Khóa chính (PK) |
Mã định danh bản ghi chi tiết |
order_id |
Int(11) |
Khóa ngoại (FK) |
Tham chiếu đến trường Id của bảng order |
product_id |
Int(11) |
Khóa ngoại (FK) |
Tham chiếu đến trường Id của bảng product |
price |
Int(11) |
|
Đơn giá sản phẩm tại thời điểm mua |
Quantity |
Int(11) |
|
Số lượng sản phẩm đặt mua |
created_time |
Int(11) |
|
Thời gian tạo bản ghi |
last_update |
Int(11) |
|
Thời gian cập nhật bản ghi |
Mối quan hệ giữa các bảng dữ liệu
- Quan hệ giữa
product và order_detail (Quan hệ nhiều - nhiều): Một sản phẩm có thể xuất hiện trong nhiều đơn hàng khác nhau và một đơn hàng có thể chứa nhiều sản phẩm. Bảng order_detail đóng vai trò là bảng trung gian liên kết.
- Quan hệ giữa
order và order_detail (Quan hệ một - nhiều): Một đơn hàng chứa một hoặc nhiều bản ghi chi tiết sản phẩm, nhưng mỗi bản ghi chi tiết chỉ thuộc về một mã hóa đơn duy nhất. Quan hệ được thiết lập thông qua khóa ngoại order_id trỏ tới khóa chính Id của bảng order.
- Quan hệ giữa
user và order (Quan hệ một - nhiều): Một khách hàng có thể khởi tạo nhiều đơn hàng theo thời gian, trong khi mỗi đơn hàng gắn liền với một tài khoản người mua cụ thể thông qua khóa ngoại.
4. Hiện thực giao diện và chức năng phía người dùng
Chương 3 minh chứng kết quả cài đặt thực tế qua 8 giao diện chức năng chính:
- Trang chủ (
home): Hiển thị thanh menu điều hướng, các banner khuyến mãi, thanh tìm kiếm và danh sách thương hiệu điện thoại (Realme, Mobell, Mobiistar, Coolpad, HTC...).
- Trang danh mục sản phẩm: Hiển thị toàn bộ các sản phẩm hiện có trong cơ sở dữ liệu kèm tên, ảnh đại diện và mức giá.
- Trang chi tiết sản phẩm: Trình bày hình ảnh chất lượng cao từ nhiều góc độ, tên sản phẩm cụ thể (minh họa: iPhone X 256GB Silver), giá bán, thông số kỹ thuật, cam kết dịch vụ (nhận hàng trong 1 giờ), chính sách khuyến mại, nút "Thêm vào giỏ hàng" và danh sách gợi ý "Bạn có thể thích".
- Trang giới thiệu cửa hàng: Đăng tải thông tin giới thiệu hoạt động kinh doanh của đơn vị.
- Trang tìm kiếm sản phẩm: Thanh công cụ cho phép nhập từ khóa tìm kiếm theo tên và hiển thị danh sách kết quả phù hợp.
- Trang đăng nhập (
login): Biểu mẫu tiếp nhận tên đăng nhập và mật khẩu với thông điệp chào mừng người dùng.
- Trang đăng ký: Biểu mẫu tạo tài khoản yêu cầu các trường: Tên đăng nhập, Mật khẩu, Xác nhận mật khẩu (confirm password) và Số điện thoại liên hệ.
- Trang giỏ hàng: Bảng liệt kê chi tiết các mặt hàng đã chọn (minh họa các sản phẩm: iPhone Xr 128GB, iPhone 8 Plus 64GB), đơn giá, công cụ tăng/giảm số lượng (+ / -) có tích hợp thuật toán kiểm tra ràng buộc không vượt quá số lượng hàng tồn trong kho, tính toán tổng tiền và nút thanh toán.
Nội dung chính theo từng chương
Bố cục khóa luận được xây dựng theo cấu trúc 3 chương logic:
Chương 1. Cơ sở lý thuyết
Nội dung chương tập trung hệ thống hóa các kiến thức nền tảng phục vụ phát triển ứng dụng web:
- Nghiên cứu kiến trúc, cơ chế hoạt động, tính năng ưu và nhược điểm của hệ quản trị cơ sở dữ liệu quan hệ MySQL.
- Giới thiệu bản chất của ngôn ngữ lập trình kịch bản máy chủ PHP, các thành phần kiến trúc chính (mô hình MVC, xử lý biểu mẫu, phân tích cú pháp, hàm hệ thống) và khả năng hỗ trợ lập trình hướng đối tượng từ phiên bản PHP 5.
- Trình bày cú pháp chuẩn và danh mục các thẻ định dạng văn bản của HTML (chuẩn HTML5).
- Khái quát về tầng trình bày giao diện bằng CSS (mô hình hộp, bộ chọn, thuộc tính styling) và ngôn ngữ kịch bản client-side JavaScript.
- Phân tích cấu trúc định dạng dữ liệu nhẹ JSON dùng trong việc truyền tải dữ liệu giữa máy chủ và client/API.
- Đánh giá ưu điểm và hạn chế của framework giao diện Bootstrap trong việc tối ưu hóa hiển thị đáp ứng (responsive) trên các thiết bị di động.
Chương 2. Phân tích và thiết kế hệ thống
Chương 2 là phần trọng tâm kỹ thuật của đồ án, chuyển hóa các yêu cầu bài toán thương mại điện tử thành bản thiết kế công nghệ chi tiết:
- Phân tích nhu cầu dự án xuất phát từ sự phát triển của công nghệ Internet và thương mại điện tử B2C.
- Xác định hệ thống yêu cầu chức năng (cho Admin và Khách hàng) cùng yêu cầu phi chức năng (mã hóa mật khẩu Bcrypt, tương thích đa trình duyệt, giao diện tiếng Việt đồng nhất).
- Mô hình hóa tác nhân và các ca sử dụng (Use Case) thông qua sơ đồ Use Case tổng quát và 6 bảng đặc tả Use Case chi tiết.
- Thiết kế 6 biểu đồ tuần tự và 7 biểu đồ hoạt động thể hiện tường minh luồng xử lý dữ liệu của các chức năng nghiệp vụ trọng yếu.
- Xây dựng biểu đồ lớp (Class Diagram) với danh sách thuộc tính và phương thức tương ứng của các thực thể
product, user, orders, order_detail.
- Thiết kế cơ sở dữ liệu vật lý với 4 bảng dữ liệu (
user, product, order, order_detail), quy định rõ kiểu dữ liệu, khóa chính, khóa ngoại và thiết lập các mối liên kết quan hệ 1-N và N-N.
Chương 3. Cài đặt website
Chương 3 trình bày toàn bộ kết quả hiện thực hóa phần mềm thành sản phẩm trực quan:
- Cài đặt và cấu hình hệ thống giao diện người dùng bằng HTML, CSS, JavaScript, Bootstrap kết hợp mã nguồn xử lý PHP và CSDL MySQL.
- Minh chứng bằng hình ảnh và thuyết minh hoạt động của 8 phân hệ giao diện: Trang chủ, Danh mục sản phẩm, Chi tiết sản phẩm, Giới thiệu cửa hàng, Tìm kiếm sản phẩm, Đăng ký, Đăng nhập và Giỏ hàng.
- Mô tả chi tiết cơ chế cập nhật số lượng và kiểm soát ràng buộc dữ liệu tại trang giỏ hàng nhằm đảm bảo số lượng đặt mua không vượt quá số lượng hàng sẵn có trong kho dữ liệu.
Kết quả và đóng góp
Kết quả đạt được theo công bố của tác giả
Dựa trên các mục tiêu đã đề ra, tác giả tự tổng kết các kết quả đạt được cụ thể như sau:
- Về mặt kiến thức và kỹ năng: Vận dụng và kết hợp hiệu quả các kiến thức nền tảng đã học tại trường (C++, HTML, CSS) với các công nghệ tự nghiên cứu (PHP, JavaScript, Bootstrap, JSON); nâng cao năng lực phân tích, thiết kế hệ thống và mô hình hóa phần mềm bằng UML; làm chủ công cụ phát triển Visual Studio Code.
- Về mặt sản phẩm phần mềm:
- Xây dựng thành công hệ thống website thương mại điện tử B2C vận hành ổn định, cung cấp gần như đầy đủ các chức năng cơ bản của một trang bán hàng trực tuyến.
- Thiết kế giao diện thân thiện, dễ nhìn, tạo điều kiện thuận lợi cho khách hàng tìm kiếm và lựa chọn sản phẩm theo nhu cầu.
- Xây dựng hoàn chỉnh phân hệ giỏ hàng, cho phép khách hàng chủ động điều chỉnh số lượng và kiểm soát khả năng chi trả.
- Hệ thống tích hợp chức năng quản lý sản phẩm theo số lượng tồn kho, ngăn chặn thao tác đặt hàng vượt mức cho phép.
- Thực hiện xuất và lưu trữ đơn hàng thành công vào hệ thống cơ sở dữ liệu khi khách hàng hoàn tất giao dịch.
Đóng góp của đề tài
Đồ án đã đóng góp một giải pháp ứng dụng công nghệ thông tin thực tiễn cho bài toán kinh doanh điện thoại trực tuyến:
- Đề xuất quy trình phân tích và thiết kế hệ thống có tính hệ thống hóa cao, từ khâu xác định yêu cầu nghiệp vụ đến thiết kế chi tiết CSDL quan hệ cho mô hình bán lẻ điện thoại.
- Giúp đơn vị kinh doanh thử nghiệm chuyển đổi từ phương thức quản lý bán hàng thủ công sang hệ thống điện tử hóa, giúp giảm thiểu sai sót, tiết kiệm thời gian xử lý giao dịch và nâng cao khả năng quản trị an toàn thông tin khách hàng nhạy cảm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài
Bản báo cáo chỉ rõ các điểm hạn chế do tác giả tự nhận định:
- Do giới hạn về mặt thời gian thực hiện, cùng với kinh nghiệm thực tế và kiến thức chuyên sâu của bản thân còn hạn chế, sản phẩm tạo ra mới chỉ dừng lại ở quy mô một website nhỏ mang tính chất thử nghiệm và minh họa.
- Cấu trúc cơ sở dữ liệu còn đơn giản, dung lượng lưu trữ nhỏ.
- Một số chức năng xử lý nghiệp vụ trên website chưa được tối ưu hóa về mặt hiệu năng.
Hướng phát triển đề tài
Để nâng cao tính ứng dụng trong thực tế, tác giả đề xuất các hướng mở rộng tiếp theo:
- Tối ưu hóa các chức năng hiện có và hoàn thiện hệ thống để đáp ứng đầy đủ hơn các nhu cầu đa dạng của người dùng.
- Tích hợp thêm các công cụ hỗ trợ thao tác nhanh trong quá trình quản trị và nhập liệu sản phẩm.
- Phát triển thêm các phân hệ thống kê, báo cáo dữ liệu trực quan bằng các dạng biểu đồ dễ quan sát.
- Mở rộng cấu trúc các bảng trong cơ sở dữ liệu (bổ sung thêm các trường thuộc tính) để quản lý thông tin kho hàng, đơn hàng và lịch sử giao dịch của khách hàng một cách chi tiết, chuyên sâu hơn.
- Bổ sung các tính năng nâng cao còn thiếu để có thể ứng dụng triển khai website rộng rãi tại các cửa hàng kinh doanh điện thoại ngoài thực tế.
Giá trị tham khảo
Báo cáo đồ án chuyên ngành này mang lại giá trị tham khảo thiết thực cho các đối tượng sau:
- Sinh viên ngành Công nghệ thông tin: Là tài liệu tham khảo trực tiếp cho các học phần Đồ án chuyên ngành, Phát triển ứng dụng Web, hoặc Khóa luận tốt nghiệp chuyên đề xây dựng website thương mại điện tử với ngăn xếp công nghệ (tech stack) PHP - MySQL - HTML/CSS/JS.
- Người học cần tài liệu mẫu về phân tích thiết kế hệ thống (UML): Phần phân tích tại Chương 2 cung cấp hệ thống sơ đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram) và biểu đồ lớp (Class Diagram) được xây dựng đầy đủ, bám sát các nghiệp vụ bán hàng điện tử chuẩn.
- Người thực hành thiết kế cơ sở dữ liệu web bán lẻ: Cung cấp cấu trúc bảng dữ liệu mẫu cho bài toán bán hàng (quan hệ giữa người dùng, sản phẩm, đơn hàng và chi tiết đơn hàng), giải quyết tốt bài toán liên kết dữ liệu nhiều - nhiều trong giao dịch thương mại.
Câu hỏi thường gặp
1. Hệ thống áp dụng giải pháp nào để bảo mật mật khẩu người dùng?
Theo bảng đặc tả yêu cầu phi chức năng tại Chương 2, hệ thống thực hiện phân quyền tài khoản (Admin và Khách hàng), đồng thời toàn bộ mật khẩu người dùng lưu trữ trong cơ sở dữ liệu đều được mã hóa bằng thuật toán Bcrypt (trong văn bản ghi là "Becrypt") nhằm đảm bảo tính an toàn thông tin.
2. Mối quan hệ giữa bảng sản phẩm (product) và bảng chi tiết đơn hàng (order_detail) được thiết kế như thế nào?
Văn bản xác định đây là mối quan hệ nhiều - nhiều (Many-to-Many). Một sản phẩm có thể xuất hiện trong nhiều đơn hàng khác nhau và một đơn hàng có thể chứa nhiều sản phẩm. Bảng order_detail đóng vai trò là bảng trung gian, chứa khóa ngoại product_id tham chiếu đến khóa chính Id của bảng product.
3. Tác nhân "Khách vãng lai" trong hệ thống có những quyền hạn gì?
Theo Bảng 2-1 và biểu đồ Use Case tổng quát, khách vãng lai là người dùng chưa đăng ký tài khoản. Tác nhân này chỉ được phép duyệt xem danh sách sản phẩm hiển thị trên trang web, xem thông tin chi tiết của từng sản phẩm, hoặc thực hiện đăng ký tài khoản mới và đăng nhập vào hệ thống.
4. Trang giỏ hàng của website có cơ chế kiểm soát số lượng đặt mua như thế nào?
Tại Chương 3 (mục Trang giỏ hàng), tác giả nêu rõ hệ thống cho phép khách hàng tăng hoặc giảm số lượng mặt hàng trong giỏ, tuy nhiên số lượng cập nhật phải đảm bảo tính chính xác và hệ thống có ràng buộc không cho phép người dùng cập nhật số lượng vượt quá số lượng hàng tồn có trong kho.
5. Khung giao diện Bootstrap có những ưu và nhược điểm gì theo phân tích của tác giả?
Tác giả đánh giá Bootstrap có ưu điểm là phát triển giao diện rất nhanh, dễ học, tích hợp hệ thống lưới responsive tối ưu cho thiết bị di động (mobile-first), giao diện chuẩn xám bạc sang trọng và tương thích tốt với chuẩn HTML5. Tuy nhiên, nhược điểm là kích thước thư viện nặng, chứa nhiều đoạn mã thừa khi dự án chỉ khai thác dưới 10% tính năng, chưa hoàn thiện một số thư viện chuyên biệt và có thể làm giảm tính sáng tạo riêng biệt của giao diện website.
Kết luận
Đồ án chuyên ngành "Website Kinh Doanh Điện Thoại Di Động" của sinh viên Đinh Ngọc Cường đã giải quyết bài toán xây dựng một ứng dụng thương mại điện tử B2C hoàn chỉnh trên nền tảng PHP, MySQL và Bootstrap. Công trình thể hiện quy trình phát triển phần mềm chặt chẽ thông qua việc phân tích yêu cầu, mô hình hóa hệ thống bằng các biểu đồ UML và thiết kế cơ sở dữ liệu quan hệ chuẩn xác. Mặc dù còn hạn chế về quy mô thử nghiệm và độ phức tạp của CSDL, sản phẩm đã hoàn thành tốt các mục tiêu nghiên cứu cốt lõi và cung cấp tài liệu tham khảo hữu ích cho sinh viên công nghệ thông tin trong việc nghiên cứu và triển khai ứng dụng web bán hàng.