Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh thương mại điện tử ngày càng phát triển mạnh mẽ, bức tranh bán lẻ toàn cầu liên tục có những bước chuyển mình sâu sắc. Đi cùng với sự gia tăng của chủ nghĩa tiêu dùng là những tác động tiêu cực đáng kể đến môi trường và xã hội. Trước thực trạng này, xu hướng tiêu dùng bền vững bắt đầu nhận được sự quan tâm rộng rãi. Việc xây dựng một nền tảng thương mại điện tử chuyên biệt dành cho các sản phẩm đã qua sử dụng (second-hand) xuất phát từ triết lý thúc đẩy nền kinh tế tuần hoàn, kéo dài vòng đời của sản phẩm và khuyến khích hành vi mua sắm có trách nhiệm trong cộng đồng.
Song song với yếu tố xã hội, công nghệ web – một nhánh quan trọng của công nghệ thông tin – đang mang lại những lợi ích thiết thực trong việc tối ưu hóa vận hành kinh doanh. Đề tài khóa luận tập trung giải quyết bài toán cung cấp giải pháp bán hàng trực tuyến hiệu quả cho doanh nghiệp kinh doanh đồ điện tử và hàng hóa second-hand, giúp doanh nghiệp vận hành liên tục 24/7, tiết kiệm chi phí nhân sự tiếp thị, quảng cáo, đồng thời nâng cao trải nghiệm mua sắm của khách hàng thông qua việc minh bạch hóa thông tin và quản lý giỏ hàng linh hoạt.
Theo văn bản báo cáo, các mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm 4 nội dung chính:
- Thiết kế và xây dựng hệ thống website chuyên kinh doanh hàng đã qua sử dụng: Phát triển một nền tảng trực tuyến thân thiện với người dùng, tích hợp các bộ lọc tìm kiếm, phân loại danh mục sản phẩm và quy trình xử lý thanh toán an toàn.
- Nghiên cứu công nghệ phát triển web trong lĩnh vực hàng second-hand: Khảo sát, phân tích các công nghệ và quy chuẩn hiện hành; đánh giá các framework, thư viện và công cụ để lựa chọn giải pháp tối ưu nhằm xây dựng nền tảng có khả năng mở rộng và độ ổn định cao.
- Giải quyết và cải tiến quy trình bán hàng cùng hệ thống quản lý bán hàng: Khắc phục các điểm chưa hiệu quả trong quy trình bán hàng truyền thống; triển khai các tính năng đăng bán, quản lý đơn hàng và quản trị quan hệ khách hàng.
- Thực hiện báo cáo và thống kê để đánh giá hiệu suất hệ thống: Xây dựng hệ thống thống kê trực quan nhằm theo dõi hiệu quả hoạt động của nền tảng, hỗ trợ quá trình ra quyết định dựa trên dữ liệu.
Đối tượng nghiên cứu của đề tài là quy trình nghiệp vụ bán hàng, quản lý đơn lẻ và hệ thống website thương mại điện tử kinh doanh hàng đã qua sử dụng. Phạm vi nghiên cứu tập trung vào việc phân tích, thiết kế, lập trình và triển khai thử nghiệm ứng dụng web full-stack trong khuôn khổ đồ án tốt nghiệp ngành Kỹ thuật Tin học và Máy tính (Informatics and Computer Engineering) tại Trường Quốc tế – Đại học Quốc gia Hà Nội năm 2024.
Cơ sở lý thuyết và công nghệ nền tảng
Khóa luận được xây dựng dựa trên nền tảng lý thuyết về thương mại điện tử cùng các công nghệ phát triển web hiện đại.
1. Khung lý thuyết thương mại điện tử
Tác giả hệ thống hóa các khái niệm căn bản về thương mại điện tử (E-commerce) – hình thức mua bán, trao đổi hàng hóa và dịch vụ thông qua mạng máy tính và Internet. Các mô hình giao dịch chính được phân tích gồm:
- B2B (Business-to-Business): Giao dịch thương mại giữa các doanh nghiệp với nhau, có chu kỳ bán hàng dài hơn nhưng giá trị đơn hàng lớn.
- B2C (Business-to-Consumer): Doanh nghiệp bán hàng trực tiếp tới người tiêu dùng cuối cùng.
- C2C (Consumer-to-Consumer): Mô hình sàn giao dịch kết nối trực tiếp người tiêu dùng với nhau để trao đổi hàng hóa, dịch vụ và thu phí giao dịch/niêm yết.
2. Công nghệ phát triển hệ thống
- Ngôn ngữ TypeScript: Là siêu tập (superset) của JavaScript do Microsoft phát triển, bổ sung cơ chế định kiểu tĩnh (static typing), định nghĩa kiểu dữ liệu tùy biến qua
interface và type. TypeScript giúp phát hiện lỗi từ giai đoạn biên dịch, tăng cường tính dễ đọc, hỗ trợ tái cấu trúc mã nguồn và nâng cao năng suất lập trình trên các dự án lớn.
- Hệ quản trị cơ sở dữ liệu PostgreSQL: Hệ quản trị cơ sở dữ liệu đối tượng - quan hệ nguồn mở với lịch sử phát triển từ dự án POSTGRES tại Đại học California ở Berkeley (năm 1986). PostgreSQL tuân thủ đầy đủ chuẩn ACID từ năm 2001, hỗ trợ mở rộng kiểu dữ liệu tùy biến, hàm người dùng và hỗ trợ 170 trên 179 tính năng bắt buộc của chuẩn SQL:2023 Core (tính đến bản phát hành 16 vào tháng 9/2023).
- Framework Next.js: Nền tảng full-stack xây dựng trên nền React, cung cấp các cơ chế kết xuất linh hoạt gồm:
- Server-Side Rendering (SSR): Kết xuất trang tại máy chủ giúp tối ưu hóa thời gian tải trang đầu tiên và hỗ trợ SEO.
- Static Site Generation (SSG): Tạo sẵn các trang HTML tĩnh tại thời điểm build.
- Incremental Static Regeneration (ISR): Tái tạo nội dung tĩnh theo chu kỳ nền mà không cần build lại toàn bộ ứng dụng.
- API Routes: Xây dựng các endpoint API trực tiếp bên trong cùng một codebase.
- File-Based Routing: Định tuyến dựa trên cấu trúc thư mục trực quan.
- Automatic Code Splitting, Hot Module Replacement (HMR), Tối ưu hóa hình ảnh và hỗ trợ TypeScript/CSS tích hợp sẵn.
Nội dung chính theo từng chương
Báo cáo khóa luận được tổ chức thành 3 chương chuyên môn chính:
Chapter 1: Project Fundamentals
Chương này cung cấp cái nhìn tổng quan về bối cảnh kinh tế - công nghệ, phân tích vai trò, cơ hội và lợi ích của thương mại điện tử đối với cả doanh nghiệp (mở rộng phạm vi tiếp cận 24/7, cắt giảm chi phí mặt bằng/vận hành, nâng cao năng lực cạnh tranh) và người tiêu dùng (tiết kiệm chi phí, tiếp cận sản phẩm đa dạng, trải nghiệm mua hàng thuận tiện). Tác giả dành phần lớn dung lượng chương để phân tích sâu các cơ sở lý thuyết và lý do lựa chọn bộ công nghệ nền tảng bao gồm TypeScript, PostgreSQL và Next.js.
Chapter 2: System Analysis and Design
Chương 2 tập trung vào việc mô hình hóa yêu cầu hệ thống thông qua phương pháp phân tích nghiệp vụ, phân định rõ hai nhóm tác nhân (User và Admin), xây dựng hệ thống biểu đồ Use Case tổng quát và chi tiết. Tác giả mô tả chi tiết luồng xử lý và biểu đồ tuần tự (Sequence Diagram) cho các chức năng cốt lõi: đăng nhập, tìm kiếm sản phẩm, giỏ hàng - thanh toán và quản trị sản phẩm. Cuối chương là lược đồ quan hệ thực thể (ERD) và bảng đặc tả chi tiết 10 thực thể trong cơ sở dữ liệu.
Chapter 3: Deployments and Results
Chương 3 trình bày quy trình triển khai ứng dụng thực tế trên nền tảng đám mây Vercel, thiết lập môi trường biến (environment variables) cho cả trang quản trị (Admin Dashboard) và trang bán hàng (Storefront). Chương này cũng công bố kết quả giao diện thực tế cùng bảng đánh giá các ca kiểm thử chức năng (thành công/thất bại) cho hệ thống xác thực Clerk, cổng thanh toán Stripe và các trang chức năng quản trị.
Thiết kế và triển khai hệ thống
1. Phân tích tác nhân và ca sử dụng (Use Cases)
Hệ thống xác định hai tác nhân (Actors) tương tác chính với các quyền hạn cụ thể:
| Tác nhân (Actor) |
Phạm vi vai trò |
Danh sách các Use Case chính |
| User (Người dùng/Khách hàng) |
Mua sắm, tra cứu thông tin sản phẩm và quản lý thông tin cá nhân |
Login, Sign up, Logout, View store, View product, Search product, Search store, Search category, Add product to cart, Remove product from cart, Sorting product, Edit username, Delete user, View cart, Choose shipping option, Make payment. |
| Admin (Quản trị viên/Chủ cửa hàng) |
Quản trị hoạt động kinh doanh, dữ liệu hàng hóa và theo dõi vận hành |
Login, Sign up, Logout, Product management, Category management, View Static (Thống kê), View order, View user, Store management. |
Chi tiết luồng xử lý của các chức năng tiêu biểu:
- Chức năng đăng nhập (Log in): Người dùng nhập email và xác thực thông qua dịch vụ Clerk. Nếu thành công, hệ thống điều hướng về trang tương ứng theo quyền hạn; nếu thất bại, hệ thống gửi thông báo lỗi.
- Chức năng tìm kiếm (Search): Cho phép nhập từ khóa tìm kiếm, hệ thống truy vấn cơ sở dữ liệu và hiển thị danh sách sản phẩm khớp với tên từ khóa.
- Chức năng giỏ hàng và thanh toán (Cart & Payment): Người dùng thêm sản phẩm vào giỏ hàng, cập nhật số lượng và thực hiện thanh toán trực tuyến qua giao diện Stripe.
- Chức năng quản trị sản phẩm (Product Management): Quản trị viên thực hiện các thao tác thêm mới, chỉnh sửa thông tin, xóa sản phẩm hoặc xóa danh mục sản phẩm từ trang điều khiển.
2. Thiết kế cơ sở dữ liệu quan hệ (ERD)
Cơ sở dữ liệu của hệ thống được thiết kế chuẩn hóa với 10 bảng dữ liệu có liên kết chặt chẽ:
| STT |
Bảng thực thể |
Khóa chính (PK) |
Khóa ngoại (FK) |
Các trường dữ liệu chính |
| 1 |
Store |
id (String) |
Không |
name, userId (Owner) |
| 2 |
Billboard |
id (String) |
storeId $\to$ Store |
label, imageUrl, createAt, updateAt |
| 3 |
Category |
id (String) |
storeId $\to$ Store, billboardId $\to$ Billboard |
name, createAt, updateAt |
| 4 |
Size |
id (String) |
storeId $\to$ Store |
name, value (ví dụ: S, M, L), createAt, updateAt |
| 5 |
Color |
id (String) |
storeId $\to$ Store |
name, value (ví dụ: #FF0000), createAt, updateAt |
| 6 |
Product |
id (String) |
storeId $\to$ Store, categoryId $\to$ Category, sizeId $\to$ Size, colorId $\to$ Color |
name, price, isFeatured, isArchived, createAt, updateAt |
| 7 |
Image |
id (String) |
productId $\to$ Product |
url |
| 8 |
Order |
id (String) |
storeId $\to$ Store, userId $\to$ User |
isPaid, phone, address, createAt, updateAt |
| 9 |
OrderItem |
id (String) |
orderId $\to$ Order, productId $\to$ Product |
id |
| 10 |
User |
id (String) |
storeId $\to$ Store |
userId (External), username, createAt, updateAt |
| 11 |
UserProduct |
id (String) |
userId $\to$ User, productId $\to$ Product |
id |
3. Triển khai và tích hợp dịch vụ
- Triển khai máy chủ: Sử dụng Vercel để triển khai tự động từ kho mã nguồn Git, cung cấp mạng lưới phân phối toàn cầu và quản lý cấu hình môi trường độc lập cho trang quản trị và cửa hàng.
- Xác thực người dùng: Tích hợp giải pháp Clerk Authentication để quản trị danh tính và phiên đăng nhập của quản trị viên và người dùng.
- Cổng thanh toán: Tích hợp nền tảng thanh toán trực tuyến Stripe xử lý quy trình thanh toán giỏ hàng an toàn.
Kết quả và đóng góp
1. Kết quả thực nghiệm chức năng
Hệ thống đã triển khai hoàn chỉnh các module quản trị trên giao diện Admin Dashboard và giao diện bán hàng, được ghi nhận qua kết quả kiểm thử các ca chức năng chính:
| Nhóm chức năng |
Hành động kiểm thử |
Kết quả kỳ vọng (Success) |
Xử lý lỗi (Failure) |
| Xác thực |
Đăng nhập tài khoản qua Clerk |
Điều hướng thành công đến trang Admin Dashboard |
Trả về thông báo lỗi, chặn truy cập |
| Tìm kiếm sản phẩm |
Nhập từ khóa tại thanh tìm kiếm |
Tự động lọc và hiển thị danh sách sản phẩm tương ứng |
Hiển thị thông báo không tìm thấy sản phẩm |
| Chuyển đổi khóa lọc |
Chọn "Switch key" trên thanh tìm kiếm |
Áp dụng từ khóa/tiêu chí tìm kiếm mới |
Không thay đổi trạng thái tìm kiếm |
| Thêm mới sản phẩm |
Nhấn "Add new" và nhập thông tin |
Tạo sản phẩm mới thành công, hiển thị thông báo |
Báo lỗi, không lưu dữ liệu |
| Thao tác nhanh (Cell Action) |
Nhấn biểu tượng tùy chọn trên danh sách |
Mở menu thả xuống chứa các tác vụ chi tiết |
Không hiển thị menu |
| Sao chép mã định danh |
Nhấn "Copy id" |
Sao chép thành công chuỗi ID sản phẩm vào clipboard |
Báo lỗi sao chép |
| Chỉnh sửa sản phẩm |
Cập nhật thông tin và nhấn "Save changes" |
Cập nhật dữ liệu thành công trong CSDL |
Báo lỗi, giữ nguyên dữ liệu cũ |
| Xóa sản phẩm |
Nhấn biểu tượng thùng rác / nút Delete |
Hiển thị cảnh báo xác nhận, xóa thành công khỏi CSDL |
Báo lỗi, không xóa dữ liệu |
| Trích xuất API |
Nhấn sao chép endpoint API của sản phẩm |
Sao chép thành công đường dẫn API phục vụ phát triển |
Báo lỗi sao chép |
Bên cạnh đó, các trang quản trị chuyên biệt đã được xây dựng hoàn thiện bao gồm:
- Quản lý Billboard (Banner/Biển quảng cáo hiển thị).
- Quản lý Categories (Danh mục sản phẩm liên kết với Billboard).
- Quản lý Sizes và Colors (Kích cỡ và mã màu sắc trực quan).
- Quản lý Orders (Theo dõi trạng thái thanh toán
isPaid, thông tin người nhận, số điện thoại, địa chỉ).
- Quản lý Users (Danh sách tài khoản khách hàng).
- Cài đặt hệ thống (Settings page).
2. Đóng góp của đề tài
- Xây dựng thành công mô hình sàn thương mại điện tử chuyên biệt cho hàng đã qua sử dụng, hỗ trợ mô hình kinh tế tuần hoàn và tiêu dùng bền vững.
- Cung cấp một giải pháp kiến trúc full-stack kết hợp giữa Next.js, TypeScript, PostgreSQL, Clerk và Stripe, giúp đồng bộ hóa dữ liệu nhanh chóng và tách biệt rõ ràng giữa hệ thống quản trị và giao diện người dùng.
Hạn chế và hướng nghiên cứu tiếp
Trong văn bản báo cáo, tác giả đã thẳng thắn chỉ ra các hạn chế tồn tại do áp lực về mặt thời gian thực hiện đồ án:
- Chưa thể khai thác và hiện thực hóa toàn bộ các ý tưởng đề ra ban đầu.
- Khả năng xử lý ngôn ngữ và hỗ trợ kỹ thuật trên hệ thống chưa đạt mức tối ưu toàn diện.
- Hệ thống cần tiếp tục nhận các đóng góp và phản hồi từ cộng đồng khoa học để hoàn thiện tính năng và cải thiện trải nghiệm người dùng trong các phiên bản tiếp theo.
Giá trị tham khảo
Đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho:
- Sinh viên các ngành Kỹ thuật Tin học, Kỹ thuật Phần mềm và Công nghệ Thông tin: Cung cấp tài liệu mẫu về quy trình phân tích, thiết kế hệ thống thông tin theo chuẩn UML (Use Case, Sequence Diagram, ERD) cho một ứng dụng thương mại điện tử hoàn chỉnh.
- Lập trình viên phát triển web full-stack: Là tài liệu tham khảo trực quan về việc tích hợp hệ sinh thái Next.js (App/Pages router) với cơ sở dữ liệu PostgreSQL, giải pháp định danh Clerk, cổng thanh toán Stripe và quy trình CI/CD trên Vercel.
Câu hỏi thường gặp
1. Đề tài khóa luận này do ai thực hiện và thuộc đơn vị đào tạo nào?
Đề tài do sinh viên Đỗ Trọng Nghĩa (Mã số sinh viên: 19071619, Lớp: ICE2019A), chuyên ngành Kỹ thuật Tin học và Máy tính (Informatics and Computer Engineering) tại Trường Quốc tế – Đại học Quốc gia Hà Nội thực hiện năm 2024, dưới sự hướng dẫn của PGS.TS. Trần Thị Ngân.
2. Bộ công nghệ (Tech Stack) cốt lõi của hệ thống gồm những gì?
Hệ thống sử dụng ngôn ngữ lập trình TypeScript, framework Next.js cho toàn bộ ứng dụng web, hệ quản trị cơ sở dữ liệu PostgreSQL, nền tảng xác thực Clerk, cổng thanh toán Stripe và hạ tầng triển khai đám mây Vercel.
3. Hệ thống phân chia những vai trò tác nhân nào và có các ca sử dụng tiêu biểu gì?
Hệ thống gồm 2 tác nhân chính:
- User: Đăng nhập, đăng ký, tìm kiếm sản phẩm/danh mục, quản lý giỏ hàng, chọn đơn vị vận chuyển và thanh toán.
- Admin: Đăng nhập, quản trị sản phẩm, danh mục, biển quảng cáo (billboard), kích thước, màu sắc, đơn hàng, người dùng và xem dữ liệu thống kê.
4. Cơ sở dữ liệu của hệ thống quản lý những thông tin đặc thù nào cho sản phẩm?
Cơ sở dữ liệu gồm 10 bảng thực thể. Riêng bảng Product được liên kết khóa ngoại với các bảng Store, Category, Size, Color và bảng Image, cùng các trường trạng thái như isFeatured (sản phẩm nổi bật) và isArchived (sản phẩm lưu trữ/ẩn).
5. Dịch vụ bên thứ ba nào được sử dụng để xử lý đăng nhập và thanh toán?
Hệ thống sử dụng giải pháp Clerk để quản trị xác thực người dùng/quản trị viên và sử dụng nền tảng Stripe để xử lý giao dịch thanh toán trực tuyến cho đơn hàng.
Kết luận
Khóa luận tốt nghiệp của sinh viên Đỗ Trọng Nghĩa đã hoàn thành việc nghiên cứu, phân tích thiết kế và xây dựng thành công nền tảng website thương mại điện tử chuyên biệt cho các sản phẩm đã qua sử dụng. Thông qua việc ứng dụng các công nghệ hiện đại như Next.js, TypeScript, PostgreSQL cùng các dịch vụ đám mây Clerk, Stripe và Vercel, đề tài đã đưa ra giải pháp toàn diện từ khâu quản lý danh mục, hàng hóa đến xử lý giao dịch và quản trị đơn hàng. Công trình là tài liệu tham khảo có giá trị ứng dụng cao cho sinh viên ngành kỹ thuật máy tính và các nhà phát triển hệ thống thương mại điện tử.