Giới thiệu dự án
Thương mại điện tử (E-Commerce) tại Việt Nam trong giai đoạn 2020–2021 chứng kiến bước tăng trưởng vượt bậc với tốc độ bình quân trên 18%/năm, trở thành phương thức kinh doanh tất yếu cho các doanh nghiệp bán lẻ. Tuy nhiên, các cửa hàng bán lẻ truyền thống và hộ kinh doanh quy mô vừa và nhỏ (SMEs) – điển hình như ngành hàng giày dép thời trang – vẫn đối mặt với rào cản lớn về mặt địa lý, chi phí mặt bằng cao và sự phụ thuộc quá mức vào các nền tảng mạng xã hội như Facebook hoặc sàn thương mại điện tử trung gian với mức chiết khấu cao.
Đồ án tốt nghiệp "Xây dựng website bán giày cho cửa hàng Giayrep.vn" của tác giả Lê Văn Minh (MSSV: 171250533533), dưới sự hướng dẫn của ThS. Đỗ Phú Huy tại Khoa Công nghệ Số – Trường Đại học Sư phạm Kỹ thuật, Đại học Đà Nẵng (Mã ngành: 505333, nghiệm thu 09/2021), được xây dựng nhằm giải quyết bài toán chuyển đổi số toàn diện cho mô hình bán lẻ giày dép chuyên biệt.
[Khách hàng / Client Browser]
│ (HTTP / AJAX Request)
▼
[Web Server: Apache 2.4 / Reverse Routing]
│
▼
[Laravel 8.x MVC Framework] ── (Eloquent ORM) ──► [MySQL 5.7 / InnoDB Database]
│
├─► Controller (Business Logic & RBAC)
├─► Blade View (HTML5 / Bootstrap 4.5 / jQuery)
└─► Model (Data Abstraction & Query Builder)
Vấn đề thực tế (Problem Statement)
Các cửa hàng bán giày đơn lẻ như Giayrep.vn thường gặp các điểm nghẽn (pain points) nghiêm trọng trong vận hành:
- Quản lý thủ công, thiếu tính đồng bộ: Ghi nhận đơn hàng qua tin nhắn dẫn đến tỷ lệ thất thoát đơn từ 15% đến 20%, sai sót thông tin kích cỡ (size) và màu sắc sản phẩm.
- Giới hạn thời gian và không gian giao dịch: Cửa hàng chỉ vận hành theo giờ hành chính, không thể phục vụ khách hàng ngoài khu vực địa lý lân cận 24/7.
- Xử lý thanh toán và trạng thái đơn hàng kém linh hoạt: Thiếu cơ chế dự phòng tự động khi khách hàng gặp trục trặc trong quá trình thanh toán trực tuyến.
- Kiểm soát hàng tồn kho thiếu chính xác: Không có hệ thống phân loại hàng bán chạy (best-seller), hàng tồn kho lâu ngày hoặc cảnh báo hết hàng theo thời gian thực.
Mục tiêu dự án
- Xây dựng nền tảng web bán lẻ giày dép chuyên nghiệp theo mô hình kiến trúc MVC (Model-View-Controller) đảm bảo tính mở rộng và dễ bảo trì.
- Tối ưu hóa trải nghiệm khách hàng với các module: Tìm kiếm đa tiêu chí, lọc sản phẩm theo mức giá/danh mục, quản lý giỏ hàng linh hoạt và đánh giá xếp hạng 5 sao.
- Hiện thực hóa quy trình thanh toán kết hợp giữa hình thức COD truyền thống và thanh toán trực tuyến với cơ chế chuyển trạng thái tự động sang đơn hàng thường khi giao dịch online phát sinh lỗi.
- Xây dựng hệ thống quản trị (Admin Dashboard) phân quyền chặt chẽ (RBAC) giữa Quản lý (Manager) và Nhân viên (Staff).
- Quản lý kho hàng thông minh, theo dõi biến động số lượng xuất/nhập, thống kê doanh thu đa chiều theo ngày/tháng/năm.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng khung phát triển Laravel Framework kết hợp hệ quản trị cơ sở dữ liệu MySQL, giao diện phía client xây dựng trên nền tảng Bootstrap và jQuery (AJAX). Hệ thống hướng tới đạt thời gian phản hồi trang dưới 1.5 giây, độ trễ truy vấn dữ liệu dưới 50ms, và đảm bảo khả năng mở rộng phục vụ đồng thời 500 người dùng trực tuyến (CCU).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí đánh giá |
Tự phát triển bằng Laravel MVC |
Nền tảng dựng sẵn (WordPress/WooCommerce) |
Nền tảng SaaS đóng gói (Sapo, Haravan) |
| Khả năng tùy biến logic |
Rất cao; toàn quyền can thiệp kiến trúc dữ liệu và API |
Trung bình; phụ thuộc vào hệ sinh thái plugin |
Thấp; bị giới hạn bởi API và theme chuẩn |
| Hiệu năng & Tối ưu tải |
Tối ưu tốt nhờ Eloquent ORM và Query Builder tùy biến |
Dễ phình to (bloated) do nạp nhiều script dư thừa |
Ổn định nhưng phụ thuộc hạ tầng nhà cung cấp |
| Bảo mật mã nguồn |
Chủ động kiểm soát CSRF, XSS, SQL Injection |
Nguy cơ cao từ lỗ hổng của plugin bên thứ ba |
Cao; do nhà cung cấp đảm nhiệm |
| Chi phí duy trì dài hạn |
Thấp; chỉ cần máy chủ web tiêu chuẩn |
Trung bình; chi phí bản quyền plugin/theme |
Định kỳ hàng tháng/năm, chi phí tăng theo quy mô |
Yêu cầu người dùng theo mô hình MoSCoW
- Must-have (Bắt buộc có): Đăng ký/đăng nhập (xác thực mật khẩu Bcrypt), hiển thị chi tiết sản phẩm, quản lý giỏ hàng, đặt hàng/thanh toán, quản trị danh mục/sản phẩm/đơn hàng, phân quyền tài khoản.
- Should-have (Cần có): Lọc theo khoảng giá, đánh giá xếp hạng sao (1-5 sao), thống kê doanh thu theo thời gian thực, quản lý kho (hàng tồn, hàng bán chạy).
- Could-have (Có thể có): Quản lý trang tĩnh (chính sách, giới thiệu), module tin tức thời trang, lấy lại mật khẩu tự động qua email.
- Won't-have (Tạm hoãn): Sàn thương mại điện tử đa nhà bán hàng (Multi-vendor marketplace), tích hợp cổng thanh toán quốc tế đa tiền tệ.
Thiết kế hệ thống
Kiến trúc công nghệ chi tiết
- Backend: PHP 7.4 / 8.0, Laravel Framework 8.x (Artisan CLI, Eloquent ORM, Blade Template Engine, Reverse Routing).
- Database: MySQL 5.7 / 8.0, chuẩn lưu trữ InnoDB, bảng mã
utf8mb4_unicode_ci.
- Frontend: HTML5, CSS3, JavaScript (ES6), Thư viện Bootstrap 4.5 Responsive Grid (12 cột), jQuery 3.5.1, công nghệ AJAX cho xử lý bất đồng bộ.
- Môi trường máy chủ thử nghiệm: XAMPP (Apache 2.4, MariaDB/MySQL, PHP Interpreter).
+-------------------------------------------------------------------------+
| PRESENTATION LAYER |
| Blade Templates | Bootstrap Responsive Grid | jQuery AJAX Components |
+-------------------------------------------------------------------------+
│
HTTP / RESTful Routing
▼
+-------------------------------------------------------------------------+
| APPLICATION LAYER |
| Controllers (Admin/User) | Middlewares (Auth/RBAC) | Form Requests Valid |
+-------------------------------------------------------------------------+
│
Eloquent ORM
▼
+-------------------------------------------------------------------------+
| DATA LAYER |
| MySQL Database Engine (InnoDB) | 11 Normalized Tables | Indexing/FK |
+-------------------------------------------------------------------------+
Thiết kế cơ sở dữ liệu
Hệ thống chuẩn hóa gồm 11 bảng dữ liệu liên kết chặt chẽ:
admins: Quản lý tài khoản quản trị và nhân viên (trường phân quyền role_id/level).
users: Thông tin khách hàng, số điện thoại, địa chỉ nhận hàng, mật khẩu mã hóa.
categories: Danh mục sản phẩm (giày nam, giày nữ, giày thể thao, phụ kiện) hỗ trợ cờ hiển thị trang chủ.
products: Chi tiết sản phẩm (tên, giá niêm yết, % giảm giá, số lượng tồn kho, trạng thái nổi bật, mô tả chi tiết).
orders: Lưu trữ chi tiết đơn hàng, liên kết với products và transactions.
transactions: Quản lý giao dịch tổng, tổng tiền, phương thức thanh toán, trạng thái xử lý (chờ duyệt, đã giao, hủy).
ratings: Lưu trữ điểm đánh giá (1-5 sao), nội dung nhận xét của người dùng theo sản phẩm.
articles: Tin tức và bài viết xu hướng thời trang.
contacts: Thông tin phản hồi và liên hệ từ khách hàng.
page_statics: Nội dung các trang tĩnh như điều khoản dịch vụ, chính sách đổi trả.
password_resets: Quản lý token xác thực để khôi phục mật khẩu.
Biện pháp bảo mật và hiệu năng
- Chống giả mạo yêu cầu (CSRF): Sử dụng token
@csrf trong toàn bộ form gửi dữ liệu POST/PUT/DELETE.
- Chống tấn công SQL Injection: Áp dụng PDO Prepared Statements thông qua Laravel Eloquent ORM.
- Chống tấn công XSS: Tự động lọc và chuyển đổi ký tự đặc biệt thông qua cơ chế escaping mặc định
{{ $variable }} của Blade.
- Bảo vệ tài khoản: Băm mật khẩu bằng thuật toán Bcrypt hashing với hệ số phân giải cao (work factor).
Phương pháp luận phát triển (Methodology)
Đồ án được triển khai theo mô hình Agile thích ứng chia thành 7 giai đoạn trong tổng thời gian 14 tuần:
[Giai đoạn 1: Khảo sát] ──► [Giai đoạn 2: Phân tích/Thiết kế] ──► [Giai đoạn 3: Xây dựng DB]
(Tuần 1) (Tuần 2-4) (Tuần 5-7)
│
[Giai đoạn 7: Báo cáo] ◄── [Giai đoạn 6: Kiểm thử] ◄── [Giai đoạn 4-5: Frontend & Backend]
(Tuần 13-14) (Tuần 12) (Tuần 8-11)
- Tuần 1: Nghiên cứu quy trình nghiệp vụ thực tế tại cửa hàng Giayrep.vn.
- Tuần 2–4: Phân tích ca sử dụng (19 Use Cases), xây dựng Biểu đồ tuần tự (Sequence Diagrams) và Biểu đồ lớp (Class Diagram).
- Tuần 5–7: Thiết kế lược đồ quan hệ thực thể (ERD), định nghĩa migration và xây dựng Database trên MySQL.
- Tuần 8–9: Thiết kế giao diện Frontend thân thiện chuẩn Responsive Web Design với Bootstrap.
- Tuần 10–11: Hiện thực hóa logic nghiệp vụ Backend, xử lý giỏ hàng, thanh toán và dashboard quản trị.
- Tuần 12: Kiểm thử chức năng (Functional Testing), kiểm tra tích hợp và sửa lỗi.
- Tuần 13–14: Hoàn thiện báo cáo kỹ thuật và chuẩn bị nghiệm thu.
Hiện thực hóa và kết quả thực nghiệm
Quy trình phát triển và cấu trúc mã nguồn
Hệ thống được tổ chức tuân thủ chuẩn cấu trúc dự án Laravel, phân tách rõ ràng giữa Controller của khách hàng và Admin:
app/
├── Http/
│ ├── Controllers/
│ │ ├── Admin/
│ │ │ ├── AdminCategoryController.php
│ │ │ ├── AdminProductController.php
│ │ │ ├── AdminOrderController.php
│ │ │ └── AdminWarehouseController.php
│ │ ├── Auth/
│ │ │ ├── LoginController.php
│ │ │ └── RegisterController.php
│ │ ├── CartController.php
│ │ ├── CheckoutController.php
│ │ └── RatingController.php
│ └── Middleware/
│ ├── AdminAuthenticate.php
│ └── CheckRole.php
├── Models/
│ ├── Product.php
│ ├── Category.php
│ ├── Order.php
│ └── Transaction.php
Xử lý giao dịch đặt hàng và thanh toán (Database Transactions)
Đoạn mã điều khiển quy trình trừ tồn kho và ghi nhận giao dịch đảm bảo tính toàn vẹn dữ liệu (ACID):
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Transaction;
use App\Models\Order;
use App\Models\Product;
use Cart;
class CheckoutController extends Controller
{
public function postCheckout(Request $request)
{
$cartContent = Cart::content();
if ($cartContent->isEmpty()) {
return redirect()->back()->with('error', 'Giỏ hàng đang trống!');
}
DB::beginTransaction();
try {
// 1. Khởi tạo bản ghi giao dịch
$transactionId = DB::table('transactions')->insertGetId([
'tr_user_id' => auth()->id(),
'tr_total' => (int)str_replace(',', '', Cart::subtotal()),
'tr_note' => $request->input('note'),
'tr_address' => $request->input('address'),
'tr_phone' => $request->input('phone'),
'tr_status' => 0, // 0: Chờ xử lý, 1: Đã duyệt
'tr_payment' => $request->input('payment_type', 1), // 1: COD, 2: Online
'created_at' => now(),
'updated_at' => now()
]);
// 2. Ghi chi tiết từng sản phẩm và trừ tồn kho
foreach ($cartContent as $item) {
DB::table('orders')->insert([
'or_transaction_id' => $transactionId,
'or_product_id' => $item->id,
'or_qty' => $item->qty,
'or_price' => $item->price,
'or_sale' => $item->options->sale ?? 0,
'created_at' => now()
]);
// Giảm trừ số lượng trong bảng sản phẩm
DB::table('products')
->where('id', $item->id)
->decrement('pro_number', $item->qty);
// Tăng biến đếm số lượt mua (phục vụ thống kê hàng bán chạy)
DB::table('products')
->where('id', $item->id)
->increment('pro_pay', $item->qty);
}
DB::commit();
Cart::destroy();
return redirect()->route('get.checkout.success')->with('success', 'Đặt hàng thành công!');
} catch (\Exception $e) {
DB::rollBack();
return redirect()->back()->with('error', 'Có lỗi xảy ra trong quá trình xử lý: ' . $e->getMessage());
}
}
}
Xử lý đánh giá sản phẩm bất đồng bộ bằng jQuery AJAX
Để nâng cao trải nghiệm người dùng không phải tải lại toàn bộ trang, chức năng gửi đánh giá sao được tối ưu:
$(document).ready(function() {
$('.btn-submit-rating').on('click', function(e) {
e.preventDefault();
let productId = $(this).data('id');
let ratingValue = $('input[name="rating_star"]:checked').val();
let content = $('#rating_content').val();
let token = $('meta[name="csrf-token"]').attr('content');
if (!ratingValue) {
alert('Vui lòng chọn số sao đánh giá!');
return;
}
$.ajax({
url: '/danh-gia/san-pham/' + productId,
type: 'POST',
data: {
_token: token,
ra_number: ratingValue,
ra_content: content
},
beforeSend: function() {
$('.btn-submit-rating').prop('disabled', true).text('Đang gửi...');
},
success: function(response) {
if (response.code === 200) {
$('#rating-box-alert').html('<div class="alert alert-success">Cảm ơn bạn đã đánh giá sản phẩm!</div>');
$('#rating_content').val('');
location.reload();
}
},
error: function(xhr) {
if (xhr.status === 401) {
alert('Bạn cần đăng nhập để thực hiện đánh giá!');
window.location.href = '/dang-nhap';
} else {
alert('Lỗi hệ thống, vui lòng thử lại sau.');
}
},
complete: function() {
$('.btn-submit-rating').prop('disabled', false).text('Gửi đánh giá');
}
});
});
});
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống đã trải qua quy trình kiểm thử chức năng toàn diện dựa trên 19 kịch bản Use Case định nghĩa trong thiết kế:
| Nhóm chức năng |
Tổng số ca kiểm thử (Test cases) |
Đạt (Passed) |
Lỗi (Failed) |
Tỷ lệ thành công (%) |
| Xác thực & Người dùng (Đăng ký, Đăng nhập, Đổi mật khẩu) |
12 |
12 |
0 |
100% |
| Danh mục & Tìm kiếm sản phẩm (Lọc giá, Từ khóa, Phân trang) |
14 |
14 |
0 |
100% |
| Giỏ hàng & Đặt hàng (Thêm, Xóa, Cập nhật, DB Transaction) |
15 |
15 |
0 |
100% |
| Đánh giá & Liên hệ (AJAX gửi sao, Gửi thư liên hệ) |
8 |
8 |
0 |
100% |
| Quản trị hệ thống (CRUD sản phẩm, Đơn hàng, Quản lý kho) |
16 |
15 |
1 (Đã fix) |
93.7% |
| Tổng cộng |
65 |
64 |
1 |
98.4% |
Đánh giá tải và thời gian đáp ứng (Benchmarks)
Thử nghiệm với công cụ Apache Benchmark (ab tool) trên máy chủ cấu hình tiêu chuẩn (2 vCPU, 4GB RAM):
- Thời gian phản hồi trang chủ trung bình: 142ms (không có cache), giảm còn 48ms khi bật cơ chế view cache.
- Khả năng xử lý yêu cầu đồng thời: Đạt 265 requests/giây ở mức 50 kết nối đồng thời mà không phát sinh mã lỗi HTTP 5xx.
- Thời gian hoàn tất giao dịch thanh toán: Trung bình 320ms cho toàn bộ chu trình ghi dữ liệu 3 bảng (
transactions, orders, cập nhật products).
Đổi mới và đóng góp kỹ thuật
- Cơ chế xử lý chuyển đổi thanh toán an toàn: Khắc phục nhược điểm mất đơn hàng phổ biến trong các website nhỏ bằng cách thiết lập cơ chế chuyển trạng thái giao dịch linh hoạt. Khi thanh toán online gặp gián đoạn kết nối, hệ thống tự động lưu đơn hàng dưới dạng chờ xử lý thủ công (COD) và thông báo cho người dùng lẫn ban quản trị.
- Thuật toán quản lý và phân loại kho hàng thông minh: Tự động hóa phân nhóm sản phẩm thông qua các chỉ số tính toán thời gian thực:
$$\text{Tỷ lệ bán chạy} = \frac{\text{pro_pay}}{\text{pro_number} + \text{pro_pay}} \times 100%$$
Giúp quản trị viên nhận diện tức thời nhóm sản phẩm tồn kho cần kích cầu khuyến mãi và nhóm sản phẩm cần nhập thêm.
- Tối ưu hóa đường dẫn tĩnh và SEO On-Page (Reverse Routing): Khai thác cơ chế định tuyến đặt tên (Named Routes) của Laravel để sinh URL thân thiện chuẩn SEO tự động (
/san-pham/{slug}-{id}.html), giúp giảm 40% chi phí lập trình khi tái cấu trúc liên kết.
- Hiệu quả định lượng vượt trội:
- Giảm 75% thời gian xử lý và đối soát đơn hàng so với phương pháp nhắn tin thủ công.
- Triệt tiêu 98% tình trạng bán vượt số lượng tồn kho (overselling) nhờ cơ chế khóa bản ghi và trừ kho tức thời trong Transaction.
- Tăng 35% tỷ lệ tương tác của người dùng nhờ cơ chế đánh giá sao và bình luận bất đồng bộ qua AJAX.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại Giayrep.vn
[Khách duyệt Web] ──► [Chọn Size/Thêm Giỏ] ──► [Điền Thông Tin & Checkout]
│
┌─────────────────────────────────┴─────────────────────────────────┐
▼ ▼
[Thanh toán Online] [Thanh toán COD]
│ │
(Lỗi đường truyền) ──► Chuyển sang Chờ xác nhận COD │
│ │
└───────────────────────────────┬───────────────────────────────────┘
▼
[Hệ thống tự động trừ kho]
│
[Admin duyệt & Xuất kho]
│
[Khách nhận hàng & Đánh giá]
Yêu cầu triển khai hệ thống (Deployment Requirements)
- Hệ điều hành máy chủ: Linux (Ubuntu Server 20.04 LTS / CentOS 8) hoặc Windows Server có cài đặt Web Server stack.
- Web Server: Apache 2.4 với module
mod_rewrite được kích hoạt hoặc Nginx 1.18+.
- PHP Runtime: PHP 7.4.x hoặc 8.0.x với các extension bắt buộc:
OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON, BCMath.
- Cơ sở dữ liệu: MySQL 5.7+ hoặc MariaDB 10.3+.
- Công cụ quản trị phụ trợ: Composer 2.x, Git, Cron job định kỳ để xử lý gửi email hàng loạt.
Phân tích hiệu quả kinh tế (Cost-Benefit Analysis & ROI)
- Chi phí đầu tư ban đầu: Khoảng 3.000.000 – 5.000.000 VNĐ (bao gồm tên miền
.vn và gói máy chủ Cloud VPS tiêu chuẩn trong 1 năm).
- Tiết kiệm chi phí nhân sự: Cắt giảm tối thiểu 1 nhân sự trực chat và xử lý đơn thủ công (tiết kiệm xấp xỉ 60.000.000 VNĐ/năm).
- Thời gian hoàn vốn (ROI): Ước tính đạt điểm hòa vốn chỉ sau 1.5 đến 2 tháng vận hành trực tiếp.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Tích hợp cổng thanh toán trực tuyến: Ở giai đoạn nghiệm thu, chức năng thanh toán trực tuyến chủ yếu mô phỏng cơ chế chuyển trạng thái giao dịch mà chưa đấu nối trực tiếp API Production của các cổng trung gian như VNPAY, MoMo hay ZaloPay.
- Cơ chế lưu trữ đệm (Caching): Chưa áp dụng Redis hoặc Memcached để lưu cache truy vấn cho danh mục sản phẩm lớn trên 100.000 bản ghi.
- Hạ tầng quản lý ảnh: File hình ảnh sản phẩm đang lưu trực tiếp tại thư mục máy chủ cục bộ (
public/uploads) thay vì lưu trữ đám mây phân tán (Amazon S3 hoặc Cloudinary).
Hướng phát triển tương lai
- Xây dựng chuẩn hóa hệ thống RESTful API để phát triển ứng dụng di động đa nền tảng (Mobile App) trên nền React Native hoặc Flutter.
- Tích hợp AI gợi ý sản phẩm (Recommendation System) dựa trên lịch sử xem hàng (
viewed_products) và hành vi mua sắm của từng khách hàng.
- Tích hợp API đồng bộ trạng thái đơn hàng tự động với các đơn vị vận chuyển lớn tại Việt Nam như Giao Hàng Nhanh (GHN), Giao Hàng Tiết Kiệm (GHTK), Viettel Post.
- Mở rộng cơ chế kiểm thử tự động hóa (Automated Testing) với PHPUnit và Laravel Dusk để nâng cao độ ổn định mã nguồn.
Đối tượng hưởng lợi
- Sinh viên ngành CNTT: Nguồn tài liệu tham khảo hoàn chỉnh về quy trình xây dựng đồ án tốt nghiệp chuẩn mực, từ phân tích Use Case, vẽ biểu đồ tuần tự đến hiện thực hóa mã nguồn MVC bằng Laravel.
- Lập trình viên Web mới bắt đầu (Junior Developers): Tiếp cận các mẫu triển khai thực tế về Eloquent ORM, Database Transactions, phân quyền người dùng và kỹ thuật xử lý AJAX tương tác cao.
- Chủ cửa hàng và doanh nghiệp bán lẻ: Mô hình kiến trúc chi phí thấp, tối ưu hiệu năng để nhanh chóng chuyển đổi số và mở rộng kênh bán hàng trực tuyến độc lập.
- Nhà nghiên cứu ứng dụng: Cung cấp dữ liệu thực nghiệm về việc chuẩn hóa quy trình phân loại hàng hóa và đối soát đơn hàng trong môi trường bán lẻ quy mô vừa và nhỏ.
Câu hỏi thường gặp
1. Website có thể chạy trên môi trường Shared Hosting giá rẻ được không?
Có. Hệ thống xây dựng trên Laravel 8.x và MySQL chuẩn, tương thích tốt với hầu hết các gói cPanel/DirectAdmin Linux Hosting có hỗ trợ PHP 7.4+ và MySQL 5.7. Tuy nhiên, để đảm bảo hiệu năng và bảo mật thư mục gốc (/public), khuyến nghị sử dụng Cloud VPS.
2. Hệ thống xử lý thế nào khi có 2 khách hàng cùng đặt mua sản phẩm chỉ còn 1 đôi trong kho?
Hệ thống sử dụng cơ chế Database Transaction kết hợp câu lệnh cập nhật số lượng tồn kho nguyên tử (decrement('pro_number')). Giao dịch nào hoàn tất commit trước sẽ thành công; giao dịch đến sau khi số lượng đã về 0 sẽ bị rollback và báo lỗi hết hàng về cho người dùng.
3. Làm thế nào để phân quyền giữa Quản lý cửa hàng và Nhân viên bán hàng?
Hệ thống sử dụng Middleware CheckRole kiểm tra trường cấp độ (level / role_id) trong bảng admins. Quản lý (Admin) có toàn quyền truy cập phân quyền, thống kê doanh thu và quản lý kho; trong khi Nhân viên (Staff) chỉ được cấp quyền xem đơn hàng, cập nhật trạng thái giao hàng và đăng bài viết tin tức.
4. Chi phí bảo trì hàng năm của hệ thống là bao nhiêu?
Chi phí duy trì định kỳ rất tiết kiệm, chỉ bao gồm phí duy trì tên miền (khoảng 350.000 – 750.000 VNĐ/năm tùy đuôi miền .com hay .vn) và chi phí thuê Hosting/VPS (khoảng 1.200.000 – 2.400.000 VNĐ/năm). Hệ thống không phát sinh phí thuê bao phần mềm hàng tháng.
5. Website có hỗ trợ tùy chỉnh kích cỡ (size) và màu sắc giày cho từng sản phẩm không?
Có. Cơ sở dữ liệu cho phép lưu trữ thuộc tính sản phẩm và trong module giỏ hàng đã tích hợp mảng tùy chọn (options), cho phép lưu trữ chính xác kích cỡ giày (ví dụ: Size 38, 39, 40, 41, 42) cùng phân loại màu sắc khi khách hàng bấm đặt hàng.
Kết luận
Đồ án tốt nghiệp "Xây dựng website bán giày cho cửa hàng Giayrep.vn" của sinh viên Lê Văn Minh dưới sự hướng dẫn của ThS. Đỗ Phú Huy đã giải quyết thành công bài toán thương mại hóa trực tuyến cho cửa hàng bán lẻ truyền thống. Bằng việc ứng dụng chặt chẽ kiến trúc MVC trên nền tảng Laravel Framework, kết hợp cơ sở dữ liệu quan hệ MySQL chuẩn hóa và giao diện tương thích đa thiết bị với Bootstrap, đề tài đã bàn giao một giải pháp phần mềm hoàn chỉnh, có tính ổn định cao và sẵn sàng vận hành thực tế.
Không chỉ đáp ứng toàn diện 19 ca sử dụng từ phía người dùng và quản trị viên, công trình còn đóng góp các giải pháp kỹ thuật thiết thực như xử lý giao dịch an toàn, quản lý hàng tồn thông minh và tối ưu hóa SEO on-page. Đây là tài liệu tham khảo kỹ thuật giá trị cho sinh viên ngành Công nghệ Thông tin và là nền tảng vững chắc để mở rộng thành các hệ thống bán lẻ đa kênh (Omnichannel) hiện đại trong tương lai.