Bối cảnh và vấn đề nghiên cứu
Đồ án phần mềm I với đề tài "Xây dựng Website bán nhạc cụ trực tuyến" do sinh viên Phạm Hùng Thăng (mã sinh viên: 171250533445) thực hiện dưới sự hướng dẫn của ThS. Đỗ Phú Huy. Nghiên cứu thuộc chuyên ngành Công nghệ thông tin / Kỹ thuật phần mềm, tập trung vào việc nghiên cứu công nghệ phát triển web và ứng dụng vào bài toán thương mại điện tử thực tế.
Lý do chọn đề tài và bối cảnh thực tiễn
Sự phát triển của mạng Internet và công nghệ World Wide Web đã tạo ra phương thức trao đổi thông tin trong mọi lĩnh vực đời sống, kinh tế và xã hội. Việc xây dựng website quảng bá doanh nghiệp hoặc phục vụ kinh doanh trực tuyến giúp khách hàng tiếp cận và lựa chọn sản phẩm nhanh chóng, giảm thiểu chi phí in ấn và phân phát tài liệu truyền thống.
Khảo sát thực trạng tại cửa hàng kinh doanh nhạc cụ cho thấy phương thức vận hành hiện hành còn nhiều điểm hạn chế:
- Cửa hàng đang tiếp thị thông qua cơ chế quảng cáo, hợp đồng trưng bày sản phẩm trực tiếp tại trung tâm bán hàng.
- Việc đặt hàng phụ thuộc vào việc khách đến mua trực tiếp hoặc gọi điện thoại đến nhà phân phối để cung cấp địa chỉ giao hàng.
- Khách hàng nhận hàng và thanh toán trực tiếp bằng tiền mặt tại nơi giao nhận; thông tin cá nhân và số lượng mặt hàng được ghi chép thủ công trên hóa đơn giấy.
- Nhân viên kế toán phải lập chứng từ thanh toán, nhập thủ công các dữ liệu (ngày, giờ, tên khách hàng, mã số mặt hàng, số lượng mua, hợp đồng trưng bày, tổng doanh thu) vào sổ kinh doanh, dẫn đến tốn thời gian và dễ xảy ra sai sót.
Từ thực tế đó, tác giả lựa chọn nghiên cứu ngôn ngữ lập trình PHP và hệ quản trị cơ sở dữ liệu MySQL để xây dựng một website bán nhạc cụ trực tuyến nhằm số hóa quy trình quản lý và hỗ trợ bán hàng qua mạng.
Mục tiêu và nhiệm vụ nghiên cứu
- Nhiệm vụ lý thuyết: Tìm hiểu các khái niệm cơ bản về Internet, World Wide Web, ngôn ngữ đánh dấu siêu văn bản HTML, ngôn ngữ lập trình kịch bản máy chủ PHP (cú pháp lệnh, xử lý session, cookie, kết nối cơ sở dữ liệu) và hệ quản trị cơ sở dữ liệu quan hệ MySQL (kiểu dữ liệu, câu lệnh truy vấn, hàm tích hợp).
- Nhiệm vụ phân tích và thiết kế: Phân tích nghiệp vụ bán hàng thực tế; xác định các yêu cầu chức năng và phi chức năng; xây dựng hệ thống biểu đồ phân tích thiết kế (Use Case, Biểu đồ hoạt động, Biểu đồ tuần tự, Biểu đồ cộng tác) và sơ đồ thực thể liên kết (ERD).
- Nhiệm vụ thực nghiệm: Xây dựng ứng dụng website bán nhạc cụ trực tuyến hoàn chỉnh với đầy đủ các phân hệ chức năng cho khách hàng và người quản trị; thiết kế giao diện người dùng và cơ sở dữ liệu quan hệ đáp ứng việc lưu trữ thông tin sản phẩm, đơn hàng, thành viên.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình tin học hóa hoạt động giới thiệu, đặt mua và quản lý bán nhạc cụ, phụ kiện âm nhạc; công nghệ phát triển web động bằng PHP và MySQL.
- Đối tượng sử dụng: Hệ thống phân định 3 nhóm người dùng gồm Khách vãng lai (Customer), Thành viên (Member) và Người quản trị (Administrator).
- Phạm vi không gian và công nghệ: Ứng dụng triển khai thực nghiệm trên môi trường máy chủ cục bộ (Localhost) chạy gói XAMPP.
- Phạm vi nghiệp vụ: Hệ thống tập trung vào việc hiển thị danh mục nhạc cụ, tìm kiếm, quản lý giỏ hàng, đặt hàng và chuyển trạng thái đơn hàng. Phương thức thanh toán dừng lại ở hình thức thanh toán trực tiếp bằng tiền mặt khi nhận hàng; chưa tích hợp các cổng thanh toán điện tử trực tuyến.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ nền tảng
Nghiên cứu dựa trên các cơ sở lý thuyết công nghệ web tiêu chuẩn:
- Kiến trúc Client - Server và giao thức mạng: Hệ thống hoạt động theo mô hình mạng máy tính Client - Server, sử dụng bộ giao thức TCP/IP (Transmission Control Protocol / Internet Protocol) để truyền tải thông điệp và chuẩn giao thức HTTP để giao tiếp giữa trình duyệt web (Web Browser) và máy chủ web (Web Server).
- Ngôn ngữ HTML (HyperText Markup Language): Khung cấu trúc trang theo chuẩn W3C, sử dụng các thẻ khối, thẻ định dạng bảng (
<table>, <tr>, <td>), thẻ đa phương tiện (<img>), siêu liên kết (<a>) và biểu mẫu dữ liệu (<form> với hai phương thức truyền dữ liệu GET và POST, các thẻ <input>, <textarea>, <select>).
- Ngôn ngữ kịch bản máy chủ PHP: Khởi nguồn từ "Personal Home Page" do Rasmus Lerdorf phát triển năm 1994, sau đó phát triển thành "PHP: Hypertext Preprocessor". PHP là ngôn ngữ kịch bản phía máy chủ (Server-Side), độc lập nền tảng (Cross-platform), nhúng trực tiếp trong mã HTML, thực thi trên máy chủ và xuất kết quả về trình duyệt dưới dạng mã HTML thuần.
- Cơ chế quản lý phiên làm việc: Sử dụng Session (
session_start(), mảng toàn cục $_SESSION, các hàm isset(), unset(), session_destroy()) để định danh người dùng qua UID duy nhất và lưu trữ trạng thái giỏ hàng; kết hợp Cookie (setcookie()) để lưu trữ dữ liệu tạm thời trên máy khách.
- Hệ quản trị cơ sở dữ liệu quan hệ MySQL: Hệ CSDL mã nguồn mở quản lý dữ liệu có cấu trúc thông qua ngôn ngữ SQL với các thao tác dữ liệu chuẩn (
SELECT, INSERT, UPDATE, DELETE) và hệ thống hàm xử lý dữ liệu tích hợp (hàm chuỗi, hàm thời gian, hàm toán học, hàm tổng hợp nhóm).
Phương pháp nghiên cứu
- Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu cú pháp, hàm API của PHP trong việc kết nối CSDL (
mysql_connect, mysql_select_db, mysql_query, mysql_fetch_row, mysql_fetch_array, mysql_fetch_object, mysql_close) và các tài liệu kỹ thuật về thiết kế web.
- Phương pháp khảo sát hiện trạng nghiệp vụ: Đối chiếu quy trình ghi chép thủ công tại cửa hàng nhạc cụ thực tế để xác định các yêu cầu cần số hóa cho hệ thống mới.
- Phương pháp phân tích và thiết kế hệ thống hướng đối tượng (UML): Sử dụng ngôn ngữ mô hình hóa thống nhất để xây dựng biểu đồ Use Case tổng quát, 13 biểu đồ hoạt động chi tiết cho từng tác vụ, biểu đồ cộng tác và biểu đồ tuần tự cho các chức năng cốt lõi (tìm kiếm, quản lý sản phẩm, đăng nhập, đăng ký).
- Phương pháp mô hình hóa dữ liệu: Phân tích thực thể, xác định thuộc tính và mối quan hệ để thiết kế sơ đồ thực thể liên kết (ERD), chuẩn hóa thành 7 bảng dữ liệu quan hệ.
- Phương pháp thực nghiệm phần mềm: Cài đặt mã nguồn, cấu hình môi trường máy chủ XAMPP và kiểm thử các ca sử dụng trực tiếp trên trình duyệt web.
Nguồn dữ liệu
Dữ liệu thử nghiệm được thiết kế và khởi tạo trực tiếp trên hệ CSDL MySQL, phản ánh đúng danh mục kinh doanh nhạc cụ thực tế, bao gồm: nhóm sản phẩm, loại sản phẩm, thông tin chi tiết từng mặt hàng nhạc cụ/phụ kiện, dữ liệu tài khoản thành viên, giỏ hàng, thông tin liên hệ và các bản ghi hóa đơn đặt hàng.
Thiết kế và triển khai hệ thống
Môi trường phần cứng và phần mềm triển khai
Hệ thống được thiết kế để hoạt động ổn định trên cấu hình máy trạm và nền tảng máy chủ cục bộ với các thông số kỹ thuật được xác định trong báo cáo:
| Thành phần |
Tiêu chuẩn kỹ thuật trong văn bản |
| Vi xử lý (CPU) |
Intel Pentium III trở lên |
| Bộ nhớ trong (RAM) |
Tối thiểu 128 MB |
| Dung lượng đĩa cứng |
Ổ cứng trống từ 10 GB trở lên |
| Hệ điều hành |
Microsoft Windows XP trở lên |
| Môi trường máy chủ tích hợp |
Gói XAMPP (bao gồm Apache 2 Server, PHP phiên bản 5.1, MySQL Database Server, FileZilla FTP Server) |
| Công cụ thiết kế & lập trình |
Macromedia Dreamweaver (tạo form, dàn layout HTML), Adobe Photoshop & Flash (đồ họa giao diện) |
| Xử lý phía máy khách |
JavaScript (kiểm tra và bắt lỗi dữ liệu đầu vào tại các biểu mẫu) |
Kiến trúc vận hành của ứng dụng
Hệ thống vận hành theo quy trình xử lý của trang web động:
- Trình duyệt phía Client gửi yêu cầu truy cập URL hoặc gửi dữ liệu qua phương thức POST/GET từ Form.
- Web Server Apache tiếp nhận yêu cầu, phân tích tập tin
.php, triệu gọi bộ thông dịch PHP 5.1.
- Mã kịch bản PHP mở kết nối tới MySQL Server qua hàm
mysql_connect() và mysql_select_db(), sau đó gửi câu lệnh truy vấn SQL bằng hàm mysql_query().
- Cơ sở dữ liệu MySQL thực thi truy vấn và trả tập dữ liệu về cho PHP.
- PHP tiếp nhận mẩu tin (qua
mysql_fetch_row hoặc mysql_fetch_array), lồng ghép kết quả vào khung cấu trúc HTML, tạo ra tài liệu HTML hoàn chỉnh.
- Apache trả trang HTML về cho trình duyệt Client hiển thị đến người dùng; kết nối cơ sở dữ liệu được giải phóng qua
mysql_close().
Cấu trúc cơ sở dữ liệu quan hệ
Hệ thống quản lý dữ liệu thông qua 7 bảng cơ sở dữ liệu chính được thiết lập trong MySQL:
| Tên bảng |
Chức năng lưu trữ trong hệ thống |
sanpham |
Lưu trữ danh mục nhạc cụ và phụ kiện: mã sản phẩm, tên, giá, hình ảnh, mô tả chi tiết, thông tin khuyến mại. |
nhomsanpham |
Quản lý các nhóm nhạc cụ lớn để phân loại cây danh mục trên website. |
loaisanpham |
Quản lý các loại sản phẩm chi tiết trực thuộc từng nhóm sản phẩm. |
thanhvien |
Lưu trữ hồ sơ người dùng: tên đăng nhập, mật khẩu, họ tên, email, số điện thoại, ngày sinh. |
giohang |
Lưu vết tạm thời các mặt hàng khách lựa chọn mua trong phiên làm việc. |
hoadon |
Quản lý thông tin đơn đặt hàng: mã hóa đơn, thông tin khách hàng, ngày đặt, trạng thái đơn hàng, tổng tiền. |
lienhe |
Tiếp nhận và lưu trữ thông tin phản hồi, thắc mắc từ khách hàng gửi qua form liên hệ. |
Phân quyền chức năng theo tác nhân (Actor)
Hệ thống thiết lập ma trận phân quyền rõ ràng giữa 3 nhóm đối tượng sử dụng:
| Nhóm chức năng |
Khách vãng lai (Customer) |
Thành viên (Member) |
Quản trị viên (Administrator) |
| Xem & tìm kiếm sản phẩm |
Có |
Có |
Có |
| Xem chi tiết sản phẩm |
Có |
Có |
Có |
| Đăng ký tài khoản mới |
Có |
— |
— |
| Quản lý giỏ hàng |
Có |
Có |
— |
| Đặt hàng qua mạng |
Có |
Có |
— |
| Đăng nhập / Đăng xuất hệ thống |
— |
Có |
Có (giao diện riêng) |
| Thay đổi mật khẩu cá nhân |
— |
Có |
Có |
| Xem lịch sử hóa đơn đã lập |
— |
Có |
— |
| Quản lý danh mục & sản phẩm |
— |
— |
Toàn quyền (Thêm, Sửa, Xóa, Khuyến mại) |
| Quản lý tài khoản Member & User |
— |
— |
Toàn quyền (Xem, Xóa) |
| Xử lý & chuyển trạng thái hóa đơn |
— |
— |
Toàn quyền (Duyệt, Hủy, Chuyển thanh toán) |
Nội dung chính theo từng chương
Chương 1: Internet, World Wide Web và HTML
Chương mở đầu hệ thống hóa các khái niệm mạng cơ bản và nền tảng hiển thị web:
- Khái niệm Internet: Mạng máy tính toàn cầu bắt nguồn từ mạng ARPANET của Bộ Quốc phòng Mỹ từ những năm 80. Trình bày khái niệm Host, các phương thức kết nối mạng (Dial-up tạm thời, kết nối mạng thực sự như Ethernet, Token Ring) và bộ giao thức TCP/IP.
- Phân loại máy tính trên mạng: Mô hình Client - Server và các dịch vụ Internet phổ biến (World Wide Web, Email, FTP).
- Dịch vụ World Wide Web (WWW): Nguyên lý hoạt động của dịch vụ WWW, vai trò của trình duyệt web (Internet Explorer, Mozilla Firefox, Google Chrome) trong việc gửi yêu cầu và thông dịch dữ liệu; vai trò của máy chủ web (hỗ trợ các công nghệ như IIS cho ASP/PHP, Apache cho PHP, Tomcat cho JSP).
- Phân loại trang web: So sánh giữa Web tĩnh (tài liệu định dạng văn bản, hình ảnh cố định lấy từ hệ thống file server, đáp ứng nhanh nhưng thiếu tính linh hoạt) và Web động (kết hợp kịch bản phía máy chủ tương tác với hệ CSDL để sinh nội dung theo yêu cầu).
- Ngôn ngữ HTML: Trình bày cấu trúc văn bản HTML chuẩn (
<html>, <head>, <title>, <body>) và cú pháp các thẻ hiển thị văn bản, bảng biểu, liên kết, ảnh và các thành phần biểu mẫu tương tác (<form>, <input>, <textarea>, <select>).
Chương 2: Tìm hiểu ngôn ngữ PHP
Chương 2 đi sâu vào cấu trúc cú pháp và các tính năng cốt lõi của ngôn ngữ PHP:
- Bản chất và cơ chế hoạt động: PHP là ngôn ngữ kịch bản phía máy chủ, độc lập môi trường, chạy trên các hệ điều hành Windows, Unix và các biến thể. Mã nguồn PHP nằm giữa cặp thẻ mở
<?php và thẻ đóng ?> (hoặc các biến thể dạng Short tag <? ... ?>, thẻ XML, thẻ Script, thẻ ASP).
- Hệ thống dữ liệu và biến: Quy định đặt tên biến bắt đầu bằng ký tự
$, phân biệt chữ hoa chữ thường; các kiểu dữ liệu số nguyên, số thực, chuỗi ký tự, mảng một chiều (sử dụng hàm array(), list(), các hàm sắp xếp sort(), ksort(), asort()), mảng hai chiều. Giới thiệu các mảng biến toàn cục được định nghĩa sẵn gồm $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS.
- Phạm vi biến và biểu thức: Phân biệt biến cục bộ và biến toàn cục thông qua từ khóa
global; kỹ thuật biến của biến (variable variables); định nghĩa hằng số bằng hàm define(); các hằng số hệ thống (__FILE__, __LINE__, __PHP_VERSION__, TRUE, FALSE, các mức báo lỗi E_ERROR, E_PARSE, E_NOTICE).
- Cấu trúc điều khiển và vòng lặp: Các lệnh điều kiện rẽ nhánh (
if, if-else, elseif, switch-case); các toán tử số học, so sánh, logic và toán tử điều khiển lỗi @; các cấu trúc lặp while, for, do-while và lệnh thoát vòng lặp exit.
- Hàm và hướng đối tượng: Định nghĩa hàm tự tạo, cơ chế truyền tham trị, truyền tham biến bằng toán tử tham chiếu
&, tham số có giá trị mặc định, giá trị trả về của hàm; định nghĩa lớp đối tượng (class, var, function).
- Quản trị trạng thái phiên (Session & Cookie): Phân tích hạn chế của giao thức HTTP không lưu trạng thái (stateless); kỹ thuật khởi tạo phiên làm việc bằng
session_start(), lưu trữ thông tin giỏ hàng vào mảng siêu toàn cục $_SESSION['cart'], kiểm tra tồn tại biến bằng isset(), xóa biến phiên bằng unset() và hủy toàn bộ phiên làm việc bằng session_destroy(). Cú pháp thiết lập Cookie bằng hàm setcookie().
- Tương tác giữa PHP và MySQL: Quy trình kết nối và truy xuất cơ sở dữ liệu thông qua các hàm thư viện:
mysql_connect() mở kết nối; mysql_select_db() chọn cơ sở dữ liệu làm việc; mysql_query() thi hành câu lệnh SQL; các hàm bóc tách dữ liệu mẩu tin mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object(); và mysql_close() để đóng kết nối.
Chương 3: Cơ sở dữ liệu MySQL
Nội dung chương trình bày chi tiết về hệ quản trị cơ sở dữ liệu quan hệ MySQL:
- Vai trò và mục đích: Đáp ứng 4 chức năng cốt lõi: lưu trữ (Storage), truy cập (Accessibility), tổ chức (Organization) và xử lý (Manipulation) dữ liệu cho các ứng dụng phần mềm.
- Hệ thống kiểu dữ liệu MySQL:
- Kiểu số nguyên:
Tinyint (1 byte), Smallint (2 bytes), Mediumint (3 bytes), Int (4 bytes), Bigint (8 bytes).
- Kiểu số chấm động:
Float (4 bytes), Double (8 bytes), Float(M, D).
- Kiểu ngày và giờ:
Date (định dạng YYYY-MM-DD), Time (định dạng HH:MM:SS), DateTime (định dạng YYYY-MM-DD HH:MM:SS), TimeStamp.
- Kiểu chuỗi ký tự và nhị phân:
Char, Varchar (độ dài tối đa 255 ký tự); Tinytext, Tinyblob (255 bytes); Text, Blob (65.535 bytes); Mediumtext, Mediumblob (khoảng 16,77 triệu bytes); Longtext, Longblob (khoảng 4,29 tỷ bytes); kiểu tập hợp Enum và Set.
- Các câu lệnh thao tác dữ liệu: Cú pháp chi tiết của lệnh truy vấn
SELECT (kèm các mệnh đề tùy chọn FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT), câu lệnh thêm mới INSERT INTO, cập nhật dữ liệu UPDATE TABLE ... SET và xóa dữ liệu DELETE FROM.
- Thư viện hàm tích hợp trong MySQL:
- Hàm tổng hợp (kết hợp GROUP BY):
AVG(), MIN(), MAX(), COUNT(), SUM().
- Hàm xử lý chuỗi:
ASCII(), CHAR(), UPPER(), LOWER(), LEN(), LTRIM(), RTRIM(), LEFT(), RIGHT(), INSTR().
- Hàm ngày tháng:
CURDATE(), CURTIME(), PERIOD_DIFF(), DAYOFMONTH().
- Hàm toán học:
SQRT().
Chương 4: Xây dựng ứng dụng thực tế
Chương trọng tâm mô tả toàn diện quá trình phân tích, thiết kế và cài đặt website:
- Phân tích yêu cầu: Xác định mục tiêu thay thế quy trình quản lý sổ sách giấy của cửa hàng nhạc cụ bằng giải pháp web trực tuyến; tổng hợp các yêu cầu giao diện thân thiện, hiển thị danh mục, chi tiết sản phẩm, giỏ hàng, form liên hệ và bảo mật trang quản trị bằng tài khoản riêng.
- Đặc tả chức năng theo ca sử dụng (Use Case):
- Khách vãng lai: Đăng ký thành viên (nhập tên đăng nhập, mật khẩu, email, điện thoại, ngày sinh; hệ thống kiểm tra và lưu vào CSDL), tìm kiếm sản phẩm (theo Hãng, Giá, Tên, Chủng loại), xem chi tiết sản phẩm qua mã ID, quản lý giỏ hàng lưu bằng session, thực hiện đặt hàng cung cấp thông tin giao nhận.
- Thành viên: Đăng nhập hệ thống (kiểm tra username/password trong bảng
thanhvien), đăng xuất (hủy session), đổi mật khẩu cá nhân, xem lịch sử các đơn hàng đã đặt.
- Quản trị viên: Xóa tài khoản thành viên (
thanhvien), xóa người dùng (User), quản lý sản phẩm (thêm sản phẩm mới kèm kiểm tra trường dữ liệu, chỉnh sửa thông tin sản phẩm, xóa sản phẩm, gán chương trình khuyến mại), quản lý hóa đơn (xem chi tiết danh sách đơn hàng theo trạng thái: chờ xử lý, đang xử lý, đã hoàn thành, bị hủy; chuyển đơn hàng sang trạng thái đã thanh toán sau khi xác nhận qua điện thoại và giao hàng thành công).
- Mô hình hóa hệ thống:
- Trình bày Biểu đồ Use Case tổng thể hệ thống (Hình 1).
- Xây dựng 12 biểu đồ hoạt động (Activity Diagrams) mô tả luồng nghiệp vụ: Đăng nhập (Hình 2), Đăng xuất (Hình 3), Đăng ký thành viên (Hình 4), Xem thông tin sản phẩm (Hình 5), Thêm sản phẩm vào giỏ hàng (Hình 6), Đặt hàng (Hình 7), Đổi mật khẩu (Hình 8), Xóa Member (Hình 9), Thêm sản phẩm (Hình 10), Sửa thông tin sản phẩm (Hình 11), Xóa sản phẩm (Hình 12), Xóa User (Hình 13).
- Trình bày đặc tả Use-case kết hợp biểu đồ cộng tác và biểu đồ tuần tự cho các chức năng: Tìm kiếm (Hình 14, 15, 16), Quản lý sản phẩm (Hình 17, 18, 19, 20, 21), Đăng nhập (Hình 22), Đăng ký thành viên (Hình 23).
- Tổ chức dữ liệu và thiết kế giao diện: Xây dựng Sơ đồ thực thể liên kết (ERD - Hình 24) và chi tiết 7 bảng dữ liệu. Thiết kế và cài đặt hệ thống giao diện thực tế gồm: Trang chủ (Hình 25), Form đăng nhập (Hình 26), Form liên hệ (Hình 27), Giao diện giỏ hàng (Hình 28), Form đăng ký thành viên (Hình 29), Trang chi tiết sản phẩm (Hình 30) và Giao diện quản trị Admin (Hình 31).
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
- Xây dựng hoàn chỉnh mô hình web động: Ứng dụng thành công ngôn ngữ lập trình PHP 5.1 và hệ CSDL MySQL để thiết lập hệ thống website bán nhạc cụ trực tuyến hoạt động theo mô hình Client - Server.
- Thiết kế cơ sở dữ liệu quan hệ đồng bộ: Chuẩn hóa và cài đặt thành công 7 bảng dữ liệu quan hệ (
giohang, hoadon, lienhe, loaisanpham, nhomsanpham, sanpham, thanhvien) đảm bảo tính toàn vẹn dữ liệu cho các thực thể sản phẩm, tài khoản và đơn hàng.
- Hiện thực hóa đầy đủ các luồng chức năng:
- Cung cấp giao diện duyệt sản phẩm phân cấp theo nhóm và loại, công cụ tìm kiếm đa tiêu chí (theo Hãng, Giá, Tên, Chủng loại).
- Cơ chế giỏ hàng và phiên làm việc vận hành chính xác thông qua biến mảng
$_SESSION['cart'], cho phép người dùng chọn mua nhiều sản phẩm, cập nhật số lượng hoặc xóa mặt hàng trước khi gửi đơn đặt hàng.
- Phân hệ quản trị độc lập cho phép Administrator quản lý danh mục sản phẩm, duyệt và đổi trạng thái hóa đơn, quản lý tài khoản thành viên.
Đóng góp thực tiễn so với quy trình cũ
Dựa trên phân tích thực trạng hệ thống bán hàng hiện hành, đồ án đã giải quyết được các bài toán quản lý cụ thể:
| Tiêu chí so sánh |
Quy trình bán hàng truyền thống tại cửa hàng |
Quy trình số hóa trên Website đề xuất |
| Kênh tiếp cận khách hàng |
Trực tiếp tại trung tâm hoặc nhận thông tin qua điện thoại; phạm vi tiếp cận hạn chế. |
Không gian mạng Internet; khách hàng xem chi tiết thông tin, hình ảnh sản phẩm mọi lúc, mọi nơi. |
| Quản lý danh mục & sản phẩm |
Phụ thuộc vào hợp đồng trưng bày thực tế tại mặt bằng cửa hàng. |
Phân loại trực quan theo nhóm sản phẩm, loại sản phẩm; cập nhật thông tin và gán khuyến mại nhanh chóng. |
| Quy trình đặt hàng |
Khách hàng điền thông tin cá nhân và số lượng trực tiếp trên tờ hóa đơn giấy. |
Khách vãng lai hoặc thành viên chọn hàng vào giỏ và gửi đơn đặt hàng trực tuyến trên hệ thống web. |
| Xử lý chứng từ & doanh thu |
Kế toán nhập thủ công ngày, giờ, tên khách, mã hàng, số lượng vào sổ kinh doanh giấy. |
Dữ liệu đơn hàng tự động lưu trữ vào bảng hoadon; phân loại trạng thái (chờ xử lý, đang xử lý, đã hoàn tất, bị hủy). |
| Xác thực và thanh toán |
Bán và thu tiền mặt trực tiếp tại chỗ. |
Quản trị viên đối soát thông tin qua điện thoại trước khi chuyển giao hàng và thu tiền mặt tại địa chỉ nhận. |
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của hệ thống
Theo công bố của tác giả trong phần tóm tắt và nội dung báo cáo:
- Quy mô nghiên cứu: Đồ án phần mềm 1 được thực hiện trong điều kiện thời gian hạn hẹp, mục tiêu chính dừng lại ở mức tìm hiểu ngôn ngữ lập trình PHP, cơ sở dữ liệu MySQL và xây dựng ứng dụng thực nghiệm.
- Phương thức thanh toán: Hệ thống mới chỉ dừng lại ở chức năng đặt hàng qua mạng và hình thức thanh toán trực tiếp bằng tiền mặt khi nhận hàng; chưa hỗ trợ xử lý giao dịch tự động.
- Phạm vi bảo mật: Cơ chế an toàn hệ thống chủ yếu dựa trên mật khẩu đăng nhập của Administrator và quản lý trạng thái phiên làm việc cơ bản của PHP; chưa triển khai các giải pháp bảo mật nâng cao cho môi trường thương mại điện tử quy mô lớn.
Hướng phát triển trong tương lai
Văn bản xác định rõ hướng nâng cấp tiếp theo của đề tài:
- Mở rộng hệ thống theo mô hình thương mại điện tử chuyên sâu và hoàn chỉnh.
- Tích hợp các giải pháp thanh toán trực tuyến hiện đại thông qua thẻ tín dụng, tài khoản ngân hàng và các loại thẻ mua hàng trực tuyến, cho phép tự động hóa hoàn toàn quy trình thanh toán và đối soát giao dịch.
Giá trị tham khảo
Đối tượng sử dụng tài liệu
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin: Tài liệu là một mẫu báo cáo đồ án phần mềm chuẩn mực cho các học phần Đồ án phần mềm I, Đồ án phát triển ứng dụng Web hoặc Lập trình mã nguồn mở.
- Người học lập trình web căn bản: Cung cấp tài liệu tổng hợp có hệ thống về kiến thức lập trình PHP thuần (Native PHP) và thao tác với hệ CSDL MySQL không qua framework trung gian.
Các phần có giá trị tham khảo chuyên môn cao
- Hệ thống biểu đồ phân tích thiết kế hệ thống (Chương 4): Tập hợp đầy đủ biểu đồ Use Case, 12 biểu đồ hoạt động và các biểu đồ tuần tự, biểu đồ cộng tác. Đây là tài liệu tham khảo chi tiết cho sinh viên khi thực hiện giai đoạn phân tích thiết kế hướng đối tượng (OOAD) cho đề tài website thương mại điện tử.
- Quy trình đặc tả ca sử dụng (Use-case Specification): Mô hình hóa chi tiết các bước nhập liệu (Input), quy trình xử lý (Process) và dữ liệu đầu ra (Output) của các chức năng thực tế như: Đăng ký thành viên, Giỏ hàng, Đặt hàng và Đổi trạng thái hóa đơn.
- Cơ chế điều khiển Session và giỏ hàng (Chương 2 và Chương 4): Mô tả chi tiết kỹ thuật áp dụng biến mảng
$_SESSION để lưu trữ dữ liệu giỏ hàng qua các trang web động mà không làm mất thông tin trạng thái của người dùng.
Câu hỏi thường gặp
1. Đồ án phần mềm I này do ai thực hiện và nghiên cứu đề tài gì?
Đồ án do sinh viên Phạm Hùng Thăng (mã sinh viên: 171250533445) thực hiện dưới sự hướng dẫn của ThS. Đỗ Phú Huy. Đề tài nghiên cứu là "Xây dựng Website bán nhạc cụ trực tuyến", tập trung tìm hiểu ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MySQL và ứng dụng xây dựng hệ thống website thương mại thực nghiệm.
2. Môi trường công nghệ và cấu hình phần cứng tối thiểu để triển khai ứng dụng là gì?
Về phần cứng, hệ thống yêu cầu máy tính cá nhân trang bị vi xử lý Intel Pentium III trở lên, dung lượng RAM từ 128 MB và ổ cứng trống tối thiểu 10 GB. Về môi trường phần mềm, ứng dụng chạy trên hệ điều hành Windows XP trở lên, sử dụng gói công cụ XAMPP tích hợp (gồm máy chủ web Apache 2, PHP 5.1, CSDL MySQL, FileZilla FTP Server), kết hợp JavaScript để bắt lỗi dữ liệu biểu mẫu và Dreamweaver để tạo giao diện.
3. Hệ thống phân chia người dùng thành các tác nhân nào và quyền hạn cụ thể ra sao?
Hệ thống xác định 3 tác nhân chính:
- Khách vãng lai (Customer): Xem thông tin, tìm kiếm nhạc cụ theo nhiều tiêu chí, đăng ký làm thành viên, đưa sản phẩm vào giỏ hàng và đặt hàng.
- Thành viên (Member): Kế thừa toàn bộ quyền của Customer, đồng thời có thêm quyền đăng nhập, đăng xuất, đổi mật khẩu cá nhân và xem lịch sử các hóa đơn đã lập.
- Quản trị viên (Administrator): Sử dụng giao diện và mật khẩu riêng; có toàn quyền quản lý thành viên (xóa Member), quản lý người dùng (xóa User), quản lý sản phẩm (thêm, sửa, xóa, thiết lập khuyến mại) và quản lý hóa đơn đặt hàng.
4. Cơ chế lưu trữ thông tin giỏ hàng của website được hiện thực bằng kỹ thuật nào?
Website sử dụng kỹ thuật điều khiển phiên làm việc (Session) của PHP. Khi người dùng chọn mua sản phẩm, hệ thống khởi tạo phiên qua hàm session_start(), sau đó lưu thông tin mã sản phẩm (ID) và số lượng tương ứng vào biến mảng siêu toàn cục $_SESSION['cart']. Kỹ thuật này giúp duy trì trạng thái dữ liệu giỏ hàng xuyên suốt quá trình duyệt qua nhiều trang web khác nhau mà không cần ghi liên tục vào CSDL, đồng thời cho phép người dùng thay đổi số lượng hoặc xóa mặt hàng trước khi tiến hành đặt hàng.
5. Quy trình xử lý hóa đơn đặt hàng từ phía khách hàng và quản trị viên diễn ra như thế nào?
Sau khi chọn sản phẩm vào giỏ hàng, khách hàng nhấn nút đặt hàng và điền các thông tin nhận hàng cần thiết; hệ thống sẽ lưu thông tin khách hàng và chi tiết đơn hàng vào bảng hoadon trong cơ sở dữ liệu MySQL. Phía quản trị viên, Administrator truy cập danh mục hóa đơn để kiểm tra các đơn hàng đang chờ xử lý, sau đó gọi điện thoại cho khách hàng để xác nhận thông tin. Khi thông tin chính xác, đơn hàng được chuyển sang bộ phận giao hàng; sau khi giao nhận và thu tiền mặt thành công, Administrator sẽ thao tác chuyển trạng thái đơn hàng thành "đã thanh toán" trên hệ thống.
Kết luận
Báo cáo đồ án phần mềm I "Xây dựng Website bán nhạc cụ trực tuyến" của sinh viên Phạm Hùng Thăng đã hệ thống hóa đầy đủ cơ sở lý thuyết về Internet, giao thức truyền thông, ngôn ngữ HTML, lập trình kịch bản máy chủ PHP 5.1 và hệ quản trị cơ sở dữ liệu quan hệ MySQL. Công trình đã phân tích chi tiết quy trình nghiệp vụ bán hàng thực tế tại cửa hàng nhạc cụ, từ đó thiết kế hoàn chỉnh hệ thống bằng ngôn ngữ mô hình hóa UML với 13 biểu đồ hoạt động, sơ đồ ca sử dụng và cơ sở dữ liệu gồm 7 bảng quan hệ. Mặc dù phương thức thanh toán mới dừng ở mức thu tiền mặt trực tiếp khi nhận hàng, đồ án đã hoàn thành mục tiêu xây dựng một ứng dụng web thực nghiệm hoàn chỉnh, mang lại giá trị học thuật và thực hành thiết thực cho sinh viên ngành công nghệ thông tin trong việc phát triển ứng dụng web động.