Đồ Án Tốt Nghiệp: Xây Dựng Website Bán Giày (ĐH Sư Phạm Kỹ Thuật TP.HCM)

Tham khảo đồ án tốt nghiệp website bán giày full chức năng. Tải miễn phí source code, báo cáo và CSDL cho sinh viên ngành Công nghệ thông tin.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2022

125
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

GIỚI THIỆU VỀ KHÓA LUẬN TỐT NGHIỆP

ĐÁNH GIÁ TRƯỚC KHI BẢO VỆ

ĐÁNH GIÁ CỦA HỘI ĐỒNG BẢO VỆ

LỜI CẢM ƠN

DANH MỤC HÌNH

DANH MỤC BẢNG

PHẦN MỞ ĐẦU

1. Tính cấp thiết của đề tài

2. Đối tượng nghiên cứu

3. Phạm vi nghiên cứu

4. Phương pháp nghiên cứu

5. Mục tiêu của đề tài

6. Ý nghĩa khoa học và thực tiễn

7. Tổng quan về MERN Stack

8. KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

8.1. Khảo sát hiện trạng

8.2. Một số Web Ecommerce

8.3. Các hình thức thương mại điện tử (Ecommerce)

8.4. Mô tả hệ thống

8.5. Xác định yêu cầu

8.5.1. Yêu cầu phi chức năng

8.5.2. Yêu cầu chức năng

8.6. Mô hình hoá yêu cầu

8.6.1. Mô tả chi tiết usecase

9. THIẾT KẾ HỆ THỐNG

9.1. Kiến trúc hệ thống

9.2. Lược đồ tuần tự

9.2.1. Lược đồ tuần tự chức năng Đăng ký

9.2.2. Lược đồ tuần tự chức năng Kích hoạt tài khoản

9.2.3. Lược đồ tuần tự chức năng Đăng nhập _ Email

9.2.4. Lược đồ tuần tự chức năng Đăng nhập _ Google

9.2.5. Lược đồ tuần tự chức năng Quên mật khẩu

9.2.6. Lược đồ tuần tự chức năng Đổi mật khẩu

9.2.7. Lược đồ tuần tự chức năng Xem thông tin cá nhân

9.2.8. Lược đồ tuần tự chức năng Sửa đổi thông tin cá nhân

9.2.9. Lược đồ tuần tự chức năng Thay đổi avatar

9.2.10. Lược đồ tuần tự chức năng Thêm/Xóa sản phẩm yêu thích

9.2.11. Lược đồ tuần tự chức năng Thanh toán

9.2.12. Lược đồ tuần tự chức năng Thêm dòng sản phẩm

9.2.13. Lược đồ tuần tự chức năng Chỉnh sửa dòng sản phẩm

9.2.14. Lược đồ tuần tự chức năng Xóa dòng sản phẩm

9.2.15. Lược đồ tuần tự chức năng Xem danh sách sản phẩm

9.2.16. Lược đồ tuần tự chức năng Thêm sản phẩm

9.2.17. Lược đồ tuần tự chức năng Chỉnh sửa sản phẩm

9.2.18. Lược đồ tuần tự chức năng Xóa sản phẩm

9.2.19. Lược đồ tuần tự chức năng Thêm danh mục

9.2.20. Lược đồ tuần tự chức năng Chỉnh sửa danh mục

9.2.21. Lược đồ tuần tự chức năng Xóa danh mục

9.2.22. Lược đồ tuần tự chức năng Thêm chất liệu

9.2.23. Lược đồ tuần tự chức năng Chỉnh sửa chất liệu

9.2.24. Lược đồ tuần tự chức năng Xóa chất liệu

9.2.25. Lược đồ tuần tự chức năng Thêm bộ sưu tập

9.2.26. Lược đồ tuần tự chức năng Chỉnh sửa bộ sưu tập

9.2.27. Lược đồ tuần tự chức năng Xóa bộ sưu tập

9.2.28. Lược đồ tuần tự chức năng Đánh giá

9.3. Thiết kế cơ sở dữ liệu

9.3.1. Lược đồ cơ sở dữ liệu

9.3.2. Mô tả bảng thuộc tính

9.4. Thiết kế giao diện

9.4.1. Giao diện dành cho khách hàng

9.4.2. Giao diện dành cho quản trị viên

10. THỰC THI HỆ THỐNG

10.1. Công cụ và môi trường phát triển

10.2. Công nghệ sử dụng

10.3. Quản lý source code

11. CÀI ĐẶT VÀ KIỂM THỬ

11.1. Công nghệ sử dụng

11.2. Công cụ hỗ trợ

11.3. Kiểm thử chức năng đăng ký (REGISTER_001)

11.4. Kiểm thử chức năng đăng ký (REGISTER_002)

11.5. Kiểm thử chức năng kích hoạt tài khoản (ACTIVATION_001)

11.6. Kiểm thử chức năng kích hoạt tài khoản (ACTIVATION_002)

11.7. Kiểm thử chức năng kích hoạt tài khoản (ACTIVATION_003)

11.8. Kiểm thử chức năng đăng nhập (LOGIN_001)

11.9. Kiểm thử chức năng đăng nhập (LOGIN_002)

11.10. Kiểm thử chức năng đăng nhập (LOGIN_003)

11.11. Kiểm thử chức năng đăng nhập (LOGIN_004)

11.12. Kiểm thử chức năng đăng nhập (LOGIN_005)

11.13. Kiểm thử chức năng đăng nhập (LOGIN_006)

11.14. Kiểm thử chức năng quên mật khẩu (FORGOT_001)

11.15. Kiểm thử chức năng quên mật khẩu (FORGOT_002)

11.16. Kiểm thử chức năng đổi mật khẩu (CHANGEPASS_001)

11.17. Kiểm thử chức năng đổi mật khẩu (CHANGEPASS_002)

11.18. Kiểm thử chức năng đổi mật khẩu (CHANGEPASS_003)

11.19. Kiểm thử chức năng sản phẩm yêu thích (WISHLIST_001)

11.20. Kiểm thử chức năng sản phẩm yêu thích (WISHLIST_002)

11.21. Kiểm thử chức năng sản phẩm yêu thích (WISHLIST_003)

11.22. Kiểm thử chức năng thanh toán (PAYMENT_001)

11.23. Kiểm thử chức năng thanh toán (PAYMENT_002)

11.24. Kiểm thử chức năng thanh toán (PAYMENT_003)

11.25. Kiểm thử chức năng thanh toán (PAYMENT_004)

11.26. Kiểm thử chức năng thanh toán (PAYMENT_005)

11.27. Kiểm thử chức năng thanh toán (PAYMENT_006)

11.28. Đánh giá kết quả đã thực hiện được

11.29. Đánh giá quá trình thực hiện và phân tích kết quả

11.30. Nhược điểm

11.31. Những khó khăn gặp phải

11.32. Cách vượt qua khó khăn

11.33. Hướng phát triển

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Hướng dẫn tổng quan về Đồ án Tốt nghiệp Website Bán Giày

Thực hiện một đồ án tốt nghiệp CNTT về chủ đề Website Bán Giày là lựa chọn phổ biến và mang tính thực tiễn cao cho sinh viên. Đề tài này không chỉ giúp củng cố kiến thức nền tảng về lập trình web, cơ sở dữ liệu, mà còn mang lại kinh nghiệm quý báu trong việc xây dựng trang web bán hàng hoàn chỉnh. Một dự án như vậy bao gồm đầy đủ các quy trình từ khảo sát, phân tích yêu cầu đến thiết kế, triển khai và kiểm thử, mô phỏng chính xác công việc của một kỹ sư phần mềm. Việc lựa chọn công nghệ phù hợp là yếuce t chốt. Trong bối cảnh hiện đại, các công nghệ như MERN Stack (MongoDB, ExpressJS, ReactJS, NodeJS) đang trở nên vượt trội nhờ tính linh hoạt, hiệu năng cao và cộng đồng hỗ trợ lớn. Đồ án này, theo tài liệu tham khảo, đã áp dụng thành công MERN Stack để thiết kế website thương mại điện tử cho mặt hàng giày dép. Mục tiêu chính là xây dựng một hệ thống cho phép người dùng thực hiện các nghiệp vụ cơ bản như xem sản phẩm, quản lý giỏ hàng, và thanh toán online. Đồng thời, hệ thống cũng cung cấp một Admin Dashboard mạnh mẽ cho quản trị viên để quản lý sản phẩm, đơn hàng và người dùng. Việc hoàn thành một luận văn tốt nghiệp ngành CNTT với đề tài này không chỉ đảm bảo điểm số tốt nghiệp mà còn là một project giá trị trong portfolio, chứng minh năng lực thực chiến trước nhà tuyển dụng.

1.1. Tầm quan trọng của đồ án website bán hàng trong ngành CNTT

Trong chương trình đào tạo ngành Công nghệ thông tin, đồ án chuyên ngành về thương mại điện tử, đặc biệt là đồ án website bán hàng, đóng vai trò cực kỳ quan trọng. Nó là cơ hội để sinh viên áp dụng toàn bộ kiến thức lý thuyết vào một sản phẩm thực tế. Quá trình này giúp sinh viên hiểu sâu sắc về vòng đời phát triển phần mềm, từ việc thu thập yêu cầu khách hàng, phân tích thiết kế hệ thống, đến lập trình, kiểm thử và triển khai. Hơn nữa, thị trường thương mại điện tử Việt Nam đang phát triển mạnh mẽ, nhu cầu nhân lực có kinh nghiệm xây dựng các hệ thống e-commerce là rất lớn. Một project website bán giày hoàn chỉnh sẽ là minh chứng rõ ràng nhất cho kỹ năng và tư duy giải quyết vấn đề của sinh viên.

1.2. Tổng quan về công nghệ làm web bán giày MERN Stack

Việc lựa chọn công nghệ làm web bán giày là một quyết định chiến lược. Tài liệu gốc đã lựa chọn MERN Stack, một bộ công nghệ hiện đại và mạnh mẽ. MERN bao gồm: MongoDB (hệ quản trị cơ sở dữ liệu NoSQL linh hoạt), ExpressJS (framework backend cho NodeJS), ReactJS (thư viện JavaScript để xây dựng giao diện người dùng (UI/UX)), và NodeJS (môi trường chạy JavaScript phía server). Ưu điểm của MERN là sử dụng JavaScript cho cả frontend và backend, giúp đồng bộ hóa quá trình phát triển. Đặc biệt, project website bán giày ReactJS mang lại trải nghiệm người dùng mượt mà nhờ cơ chế Virtual DOM, trong khi đồ án website bán giày NodeJS xử lý các yêu cầu bất đồng bộ hiệu quả, phù hợp cho các ứng dụng thời gian thực.

1.3. Mục tiêu chính khi xây dựng một trang web bán hàng

Mục tiêu cốt lõi của đề tài là xây dựng một website thương mại điện tử đầy đủ chức năng. Cụ thể, hệ thống phải đáp ứng các yêu cầu sau: Cho phép người dùng xem, tìm kiếm, lọc sản phẩm; quản lý giỏ hàng (thêm, xóa, cập nhật số lượng); thực hiện thanh toán online an toàn thông qua các cổng như VNPAY, Momo; theo dõi trạng thái đơn hàng. Đối với quản trị viên, hệ thống phải cung cấp các chức năng quản lý sản phẩm, quản lý đơn hàng, và quản lý người dùng một cách hiệu quả. Đây là những yêu cầu cơ bản nhưng cần thiết để tạo nên một báo cáo đồ án tốt nghiệp CNTT chất lượng và có tính ứng dụng cao.

II. Phân tích các thách thức khi làm đồ án tốt nghiệp CNTT

Quá trình thực hiện một đồ án tốt nghiệp CNTT về website bán giày ẩn chứa nhiều thách thức đòi hỏi sinh viên phải có sự chuẩn bị kỹ lưỡng. Thách thức đầu tiên nằm ở giai đoạn phân tích thiết kế hệ thống. Việc xác định không đầy đủ hoặc sai lệch yêu cầu chức năng và phi chức năng có thể dẫn đến việc phải cấu trúc lại toàn bộ dự án ở giai đoạn sau, gây tốn thời gian và công sức. Sinh viên cần vận dụng kiến thức về kỹ thuật phần mềm để xây dựng các sơ đồ use case chi tiết, mô tả rõ ràng tương tác của người dùng với hệ thống, và thiết kế một lược đồ cơ sở dữ liệu tối ưu. Thách thức thứ hai là việc lựa chọn và làm chủ công nghệ. Thị trường có nhiều lựa chọn như code web bán giày PHP truyền thống hay các stack hiện đại như MERN. Mỗi công nghệ có ưu nhược điểm riêng và đòi hỏi thời gian học hỏi. Như tài liệu đề cập, nhóm tác giả đã chọn MERN và phải nghiên cứu sâu về MongoDB, NodeJS, và ReactJS để xây dựng ứng dụng. Thách thức cuối cùng là việc triển khai các tính năng phức tạp của một website thương mại điện tử, chẳng hạn như tích hợp cổng thanh toán online, quản lý phiên đăng nhập an toàn bằng JWT (Json Web Token), và đảm bảo responsive design để website hoạt động tốt trên mọi thiết bị. Vượt qua những khó khăn này sẽ giúp sinh viên trưởng thành hơn về mặt kỹ năng và tư duy.

2.1. Khó khăn trong việc phân tích thiết kế hệ thống ban đầu

Giai đoạn phân tích và thiết kế là nền móng của dự án. Một trong những khó khăn lớn nhất là việc mô hình hóa chính xác các yêu cầu nghiệp vụ. Sinh viên phải tạo ra các sơ đồ use case bao quát tất cả các tác nhân (khách hàng, nhân viên, quản trị viên) và các hành động của họ. Tiếp theo, việc thiết kế cơ sở dữ liệu là một bài toán phức tạp. Mặc dù tài liệu sử dụng MongoDB, một hệ quản trị NoSQL, việc thiết kế các collection và mối quan hệ giữa chúng (thông qua reference hoặc embedding) để đảm bảo tính toàn vẹn dữ liệu và hiệu suất truy vấn vẫn là một thách thức. Một sơ đồ ERD (Entity-Relationship Diagram) dù không áp dụng trực tiếp cho NoSQL nhưng vẫn là công cụ hữu ích để hình dung các thực thể và mối quan hệ trước khi chuyển sang thiết kế schema cho MongoDB.

2.2. Lựa chọn cơ sở dữ liệu phù hợp SQL hay NoSQL

Việc lựa chọn giữa cơ sở dữ liệu quan hệ (như MySQL, Cơ sở dữ liệu SQL Server) và NoSQL (như MongoDB) là một quyết định quan trọng. Các hệ quản trị SQL có ưu điểm về tính nhất quán và toàn vẹn dữ liệu thông qua các ràng buộc chặt chẽ. Tuy nhiên, với một đồ án website bán giày có cấu trúc dữ liệu sản phẩm đa dạng (ví dụ: các thuộc tính khác nhau cho các loại giày khác nhau), MongoDB tỏ ra linh hoạt hơn nhờ kiến trúc hướng tài liệu (document-oriented). Nó cho phép lưu trữ dữ liệu dưới dạng JSON, giúp dễ dàng mở rộng schema mà không làm ảnh hưởng đến các bản ghi cũ. Quyết định sử dụng MongoDB trong tài liệu gốc cho thấy sự ưu tiên về tính linh hoạt và khả năng mở rộng của hệ thống.

2.3. Vấn đề bảo mật và tối ưu hóa hiệu năng cho website

Bảo mật là yếu tố không thể xem nhẹ trong một thiết kế website thương mại điện tử. Các vấn đề cần giải quyết bao gồm xác thực người dùng, phân quyền truy cập, chống lại các cuộc tấn công phổ biến như XSS, SQL Injection (hoặc NoSQL Injection). Việc sử dụng Json Web Token (JWT) như đề cập trong tài liệu là một giải pháp hiện đại để bảo vệ các RESTful API. Về hiệu năng, website cần có tốc độ tải trang nhanh và phản hồi mượt mà. Điều này đòi hỏi tối ưu hóa truy vấn cơ sở dữ liệu, sử dụng các kỹ thuật lazy loading cho hình ảnh, và tối ưu hóa code frontend của ReactJS để giảm thời gian render.

III. Phương pháp xây dựng Backend cho Website Bán Giày hiệu quả

Để xây dựng trang web bán hàng một cách chuyên nghiệp, việc phát triển một hệ thống backend vững chắc là điều kiện tiên quyết. Trong khuôn khổ của đồ án tốt nghiệp CNTT này, backend được xây dựng dựa trên NodeJS và ExpressJS. Cách tiếp cận này mang lại hiệu suất cao nhờ kiến trúc bất đồng bộ và hướng sự kiện của NodeJS, rất phù hợp cho các ứng dụng có nhiều yêu cầu I/O như một trang thương mại điện tử. Trọng tâm của việc xây dựng backend là thiết kế và triển khai các RESTful API. Các API này đóng vai trò là cầu nối giao tiếp giữa frontend (giao diện người dùng) và cơ sở dữ liệu MongoDB. Mỗi API sẽ chịu trách nhiệm cho một chức năng cụ thể, ví dụ: API lấy danh sách sản phẩm, API tạo đơn hàng, API xác thực người dùng. Việc tuân thủ các nguyên tắc của REST giúp hệ thống trở nên rõ ràng, dễ bảo trì và mở rộng. Cấu trúc backend được tổ chức theo mô hình MVC (Model-View-Controller) hoặc một biến thể tương tự, giúp tách biệt logic nghiệp vụ (Model), xử lý yêu cầu (Controller) và dữ liệu trả về (View, trong trường hợp này là JSON). Điều này giúp source code website bán giày trở nên sạch sẽ và dễ quản lý hơn, một yếu tố quan trọng được đánh giá cao trong các luận văn tốt nghiệp ngành CNTT.

3.1. Thiết kế và triển khai RESTful API với NodeJS ExpressJS

Nền tảng của backend là hệ thống RESTful API. Sử dụng ExpressJS, một framework tối giản của NodeJS, việc xây dựng API trở nên nhanh chóng và có cấu trúc. Các API chính cần được triển khai bao gồm: API cho người dùng (đăng ký, đăng nhập, quản lý thông tin), API cho sản phẩm (quản lý sản phẩm, tìm kiếm, lọc), API cho giỏ hàng, và API cho quản lý đơn hàng. Mỗi endpoint (ví dụ: /api/products, /api/orders) cần được định nghĩa rõ ràng về phương thức HTTP (GET, POST, PUT, DELETE) và dữ liệu đầu vào/đầu ra. Bảo mật cho các API này được đảm bảo thông qua middleware xác thực JWT, chỉ cho phép các yêu cầu hợp lệ truy cập tài nguyên.

3.2. Xây dựng Admin Dashboard để quản lý hệ thống hiệu quả

Một Admin Dashboard là công cụ không thể thiếu cho bất kỳ trang web thương mại điện tử nào. Nó cho phép quản trị viên kiểm soát toàn bộ hoạt động của cửa hàng. Các chức năng cốt lõi của trang quản trị bao gồm: Quản lý sản phẩm (thêm, sửa, xóa sản phẩm, quản lý kho hàng), quản lý danh mục, quản lý đơn hàng (xem danh sách đơn hàng, cập nhật trạng thái giao hàng), và quản lý người dùng. Giao diện của dashboard cần được thiết kế trực quan, dễ sử dụng, cung cấp các biểu đồ thống kê doanh thu, số lượng đơn hàng để hỗ trợ việc ra quyết định kinh doanh. Việc xây dựng các API riêng cho dashboard giúp phân quyền và đảm bảo chỉ những người có thẩm quyền mới có thể truy cập.

3.3. Tích hợp cổng thanh toán online phổ biến như VNPAY Momo

Để hoàn thiện trải nghiệm mua sắm, việc tích hợp thanh toán online là bắt buộc. Các cổng thanh toán phổ biến tại Việt Nam như VNPAYMomo cung cấp API để các nhà phát triển tích hợp vào website của mình. Quá trình tích hợp đòi hỏi xử lý luồng thanh toán một cách cẩn thận: tạo yêu cầu thanh toán với thông tin đơn hàng, chuyển hướng người dùng đến trang thanh toán của nhà cung cấp dịch vụ, và xử lý kết quả trả về (thanh toán thành công hay thất bại) thông qua callback hoặc IPN (Instant Payment Notification). Việc đảm bảo an toàn trong quá trình này là tối quan trọng, cần mã hóa dữ liệu và xác thực chữ ký điện tử để tránh gian lận.

IV. Bí quyết thiết kế Frontend với ReactJS cho Website Bán Giày

Giao diện người dùng là bộ mặt của website, quyết định trực tiếp đến trải nghiệm mua sắm và tỷ lệ chuyển đổi. Một project website bán giày ReactJS mang lại nhiều lợi thế vượt trội. ReactJS là một thư viện JavaScript mạnh mẽ của Facebook, cho phép xây dựng các giao diện người dùng tương tác cao dựa trên kiến trúc component. Mỗi thành phần của trang web, như thanh điều hướng, danh sách sản phẩm, hay chi tiết sản phẩm, đều có thể được xây dựng như một component độc lập và tái sử dụng. Điều này giúp mã nguồn được tổ chức tốt hơn và dễ dàng bảo trì. Điểm mạnh lớn nhất của ReactJS là Virtual DOM, giúp cập nhật giao diện một cách hiệu quả, chỉ render lại những thành phần có sự thay đổi dữ liệu, tạo ra một trải nghiệm lướt web mượt mà. Để quản lý trạng thái (state) của ứng dụng một cách hiệu quả, đặc biệt với các ứng dụng phức tạp như trang thương mại điện tử, việc sử dụng các thư viện quản lý trạng thái như Redux (hoặc Redux Toolkit như được đề cập trong tài liệu) là cần thiết. Nó giúp quản lý dữ liệu toàn cục, chẳng hạn như thông tin người dùng đăng nhập hay các sản phẩm trong giỏ hàng. Cuối cùng, việc áp dụng Responsive Design là yêu cầu bắt buộc, đảm bảo giao diện người dùng (UI/UX) hiển thị tốt trên mọi kích thước màn hình, từ máy tính để bàn đến điện thoại di động.

4.1. Áp dụng kiến trúc Component và quản lý State với Redux

Với ReactJS, việc xây dựng giao diện người dùng (UI/UX) được chia thành các component nhỏ, độc lập. Ví dụ, trang sản phẩm có thể được chia thành các component như ProductList, ProductItem, SearchBar, Filter. Cách tiếp cận này giúp mã nguồn dễ đọc và tái sử dụng. Tuy nhiên, khi ứng dụng lớn lên, việc truyền dữ liệu giữa các component trở nên phức tạp. Đây là lúc Redux phát huy tác dụng. Redux tạo ra một 'store' trung tâm để lưu trữ toàn bộ trạng thái của ứng dụng. Bất kỳ component nào cũng có thể truy cập hoặc thay đổi trạng thái này thông qua các 'actions' và 'reducers', giúp luồng dữ liệu trở nên dễ đoán và dễ gỡ lỗi, đặc biệt với các dữ liệu phức tạp như trạng thái giỏ hàng hay thông tin đăng nhập.

4.2. Kỹ thuật tối ưu hóa trải nghiệm người dùng UI UX

Trải nghiệm người dùng (UX) tốt là chìa khóa để giữ chân khách hàng. Điều này bao gồm việc thiết kế một luồng điều hướng (navigation) logic, giúp người dùng dễ dàng tìm thấy sản phẩm họ muốn. Các chức năng tìm kiếm và bộ lọc (theo giá, thương hiệu, kích cỡ) cần phải nhanh và chính xác. Giao diện người dùng (UI) cần phải sạch sẽ, hấp dẫn, với hình ảnh sản phẩm chất lượng cao và thông tin rõ ràng. Tốc độ tải trang cũng là một phần quan trọng của UX. Các kỹ thuật như code-splitting (tách mã), lazy loading (tải chậm hình ảnh), và tối ưu hóa các yêu cầu API sẽ giúp cải thiện đáng kể hiệu suất của trang web.

4.3. Đảm bảo tính tương thích đa nền tảng với Responsive Design

Ngày nay, phần lớn người dùng truy cập website qua thiết bị di động. Do đó, Responsive Design không còn là một lựa chọn mà là một yêu cầu bắt buộc. Thiết kế responsive đảm bảo rằng bố cục và nội dung của trang web tự động điều chỉnh để phù hợp với mọi kích thước màn hình. Điều này có thể được thực hiện bằng cách sử dụng CSS Media Queries, các framework CSS như Bootstrap, hoặc các thư viện CSS-in-JS. Một trang web responsive sẽ mang lại trải nghiệm nhất quán và chuyên nghiệp cho người dùng, dù họ đang sử dụng thiết bị nào, từ đó tăng khả năng họ hoàn thành việc mua hàng.

V. Chia sẻ Đồ án Tốt nghiệp và Source Code Website Bán Giày

Việc hoàn thành và trình bày một báo cáo đồ án tốt nghiệp CNTT chất lượng là bước cuối cùng và quan trọng nhất. Một bản báo cáo tốt cần trình bày rõ ràng, mạch lạc toàn bộ quá trình thực hiện dự án, từ việc nêu tính cấp thiết của đề tài, khảo sát hiện trạng, đến phân tích thiết kế hệ thống chi tiết với các sơ đồ như sơ đồ use case. Phần triển khai cần mô tả rõ các công nghệ làm web bán giày đã sử dụng, kiến trúc hệ thống, và các quyết định thiết kế quan trọng. Kết quả kiểm thử chức năng cũng cần được ghi lại cẩn thận để chứng minh hệ thống hoạt động đúng như mong đợi. Sau khi bảo vệ thành công, việc chia sẻ đồ án tốt nghiệp và mã nguồn là một hành động có giá trị cho cộng đồng. Việc chia sẻ source code website bán giày trên các nền tảng như GitHub không chỉ giúp các sinh viên khóa sau có tài liệu tham khảo mà còn thể hiện tinh thần học hỏi, cởi mở. Đây cũng là một cách để xây dựng thương hiệu cá nhân và cho các nhà tuyển dụng thấy được sản phẩm thực tế mà sinh viên đã xây dựng, là một điểm cộng lớn khi tìm kiếm việc làm sau khi ra trường. Tài liệu gốc đã thể hiện một project hoàn chỉnh, từ đó cung cấp một nền tảng tham khảo tuyệt vời.

5.1. Cấu trúc một báo cáo đồ án tốt nghiệp CNTT chuẩn mực

Một báo cáo đồ án tốt nghiệp CNTT cần có cấu trúc logic. Bắt đầu với phần Mở đầu, nêu lý do chọn đề tài và mục tiêu. Tiếp theo là chương Tổng quan, giới thiệu về các công nghệ và lý thuyết liên quan. Chương quan trọng nhất là Phân tích và Thiết kế hệ thống, nơi trình bày các sơ đồ use case, mô hình hóa yêu cầu, và thiết kế cơ sở dữ liệu. Chương Triển khai hệ thống sẽ mô tả chi tiết về việc xây dựng các chức năng. Cuối cùng là chương Kiểm thử và Đánh giá, trình bày các kịch bản test và kết quả đạt được, cùng với phần Kết luận và Hướng phát triển trong tương lai. Việc tuân thủ cấu trúc này giúp báo cáo trở nên chuyên nghiệp và dễ theo dõi.

5.2. Cách thức kiểm thử và đánh giá kết quả của dự án

Kiểm thử là giai đoạn không thể thiếu để đảm bảo chất lượng phần mềm. Đối với đồ án website bán hàng, cần thực hiện nhiều loại kiểm thử. Kiểm thử đơn vị (Unit Testing) cho từng hàm, từng component. Kiểm thử tích hợp (Integration Testing) để đảm bảo các module hoạt động tốt với nhau, ví dụ như chức năng thêm vào giỏ hàngthanh toán online. Kiểm thử hệ thống (System Testing) trên toàn bộ ứng dụng để xác nhận nó đáp ứng tất cả các yêu cầu. Cuối cùng là kiểm thử chấp nhận người dùng (User Acceptance Testing) để xem hệ thống có dễ sử dụng và đáp ứng đúng nhu cầu thực tế không. Các kết quả kiểm thử cần được ghi lại chi tiết trong báo cáo.

5.3. Lợi ích của việc chia sẻ source code website bán giày

Việc công khai source code website bán giày mang lại nhiều lợi ích. Đối với cộng đồng, nó trở thành một nguồn tài liệu học tập quý giá cho những người đang tìm hiểu về đồ án website bán giày nodejs hay project website bán giày reactjs. Đối với bản thân người thực hiện, đây là cách tốt nhất để thể hiện năng lực. Một kho mã nguồn sạch sẽ, có cấu trúc tốt, và được tài liệu hóa cẩn thận trên GitHub sẽ là một portfolio ấn tượng. Nó cho thấy sinh viên không chỉ có khả năng code mà còn có tư duy tổ chức và kỹ năng làm việc chuyên nghiệp, giúp tạo lợi thế cạnh tranh trên thị trường lao động.

VI. Kết luận và Hướng phát triển cho Đồ án Website Bán Hàng

Đề tài Website Bán Giày là một đồ án tốt nghiệp CNTT toàn diện và đầy thách thức, mang lại giá trị thực tiễn cao. Qua quá trình thực hiện, sinh viên không chỉ được áp dụng kiến thức về xây dựng trang web bán hàng mà còn rèn luyện được nhiều kỹ năng mềm quan trọng như giải quyết vấn đề, quản lý thời gian và làm việc nhóm. Dự án được phát triển bằng công nghệ làm web bán giày hiện đại như MERN Stack đã chứng minh được tính hiệu quả và khả năng mở rộng. Hệ thống đã đáp ứng được các yêu cầu cơ bản của một trang thương mại điện tử, từ giao diện người dùng (UI/UX) thân thiện đến các chức năng nghiệp vụ cốt lõi như quản lý sản phẩm, quản lý đơn hàngthanh toán online. Tuy nhiên, không có hệ thống nào là hoàn hảo. Luôn có những hướng phát triển tiềm năng để nâng cấp và hoàn thiện sản phẩm. Việc nhìn nhận những điểm còn hạn chế và đề xuất các hướng phát triển trong tương lai là một phần quan trọng của một luận văn tốt nghiệp ngành CNTT, thể hiện tầm nhìn và khả năng tư duy chiến lược của người thực hiện. Đồ án này là một nền tảng vững chắc để tiếp tục phát triển thành một sản phẩm thương mại hoàn chỉnh.

6.1. Tóm tắt kết quả đạt được và bài học kinh nghiệm rút ra

Dự án đã xây dựng thành công một hệ thống website bán giày với các chức năng chính hoạt động ổn định. Về mặt công nghệ, sinh viên đã làm chủ được MERN Stack, hiểu rõ cách xây dựng RESTful API với NodeJS, phát triển giao diện động với ReactJS và làm việc với cơ sở dữ liệu NoSQL MongoDB. Bài học kinh nghiệm lớn nhất là tầm quan trọng của giai đoạn phân tích thiết kế. Một thiết kế tốt ngay từ đầu sẽ giúp quá trình lập trình diễn ra suôn sẻ và giảm thiểu các lỗi phát sinh sau này. Ngoài ra, kỹ năng gỡ lỗi và tìm kiếm thông tin trên các diễn đàn cộng đồng cũng là một kỹ năng quan trọng được rèn luyện trong quá trình này.

6.2. Các hướng phát triển tiềm năng cho dự án trong tương lai

Dự án có thể được mở rộng với nhiều tính năng nâng cao. Thứ nhất, xây dựng hệ thống gợi ý sản phẩm (recommendation system) dựa trên lịch sử xem và mua hàng của người dùng. Thứ hai, tích hợp các công cụ marketing automation như gửi email thông báo khuyến mãi. Thứ ba, phát triển ứng dụng di động (mobile app) sử dụng React Native để tận dụng lại logic và API đã có. Thứ tư, tối ưu SEO on-page và kỹ thuật để cải thiện thứ hạng trên các công cụ tìm kiếm. Cuối cùng, có thể tích hợp thêm các tính năng xã hội như cho phép người dùng chia sẻ sản phẩm lên mạng xã hội hoặc theo dõi hoạt động của bạn bè.

6.3. Giá trị thực tiễn của luận văn tốt nghiệp ngành CNTT

Một luận văn tốt nghiệp ngành CNTT về đề tài thực tiễn như thiết kế website thương mại điện tử không chỉ là một yêu cầu để ra trường. Nó là một tài sản trí tuệ, một sản phẩm cụ thể chứng minh năng lực của sinh viên. Nó giúp sinh viên tự tin hơn khi phỏng vấn, cung cấp một dự án mẫu để thảo luận sâu về kỹ thuật với nhà tuyển dụng. Hơn nữa, những kinh nghiệm và kiến thức tích lũy được từ dự án này là hành trang vô giá để bắt đầu sự nghiệp trong lĩnh vực phát triển phần mềm, một ngành nghề luôn đòi hỏi kinh nghiệm thực chiến.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

21/09/2025
Đồ án tốt nghiệp xây dựng website bán giày

Trích đoạn nội dung tài liệu

PHẦN MỞ ĐẦU 1. Tính cấp thiết của đề tài Kinh doanh là hoạt động diễn ra sôi nổi nhất của con người, mỗi năm rất nhiều công ty kinh doanh và cửa hàng kinh doanh ra đời và đưa các sản phẩm vào thị trường nóng hổi này. Đi cùng với sự phát triển công nghệ thông tin thì các ứng dụng quản lý, mua bán là yêu cầu rất cấp thiết cho các công ty. Mô hình kinh doanh trên toàn cầu tiếp tục thay đổi đáng kể với sự ra đời của thương mại điện tử.

Nhiều quốc gia trên thế giới cũng đã đóng góp vào sự phát triển của thương mại điện tử. Ví dụ, nước Anh có chợ thương mại điện tử lớn nhất toàn cầu khi đo bằng chỉ số chi tiêu bình quân đầu người, con số này cao hơn cả Mỹ. Kinh tế Internet ở Anh có thể tăng 10% từ năm 2010 đến năm 2015. Điều này tạo ra động lực thay đổi cho ngành công nghiệp quảng cáo.

[1] Trong số các nền kinh tế mới nổi, sự hiện diện của thương mại điện tử ở Trung Quốc tiếp tục được mở rộng. Với 384 triệu người sử dụng Internet, doanh số bán lẻ của cửa hàng trực tuyến ở Trung Quốc đã tăng 36,6 tỉ USD năm 2009 và một trong những lý do đằng sau sự tăng trưởng kinh ngạc là cải thiện độ tin cậy của khách hàng. Các công ty bán lẻ Trung Quốc đã giúp người tiêu dùng cảm thấy thoải mái hơn khi mua hàng trực tuyến. [1] Thương mại điện tử cũng được mở rộng trên khắp Trung Đông.

Với sự ghi nhận là khu vực có tăng trưởng nhanh nhất thế giới trong việc sử dụng Internet từ năm 2000 đến năm 2009, hiện thời khu vực có hơn 60 triệu người sử dụng Internet. Bán lẻ, du lịch và chơi game là các phần trong thương mại điện tử hàng đầu ở khu vực, mặc dù có các khó khăn như thiếu khuôn khổ pháp lý toàn khu vực và các vấn đề hậu cần trong giao thông vận tải qua biên giới. [1] Thương mại điện tử đã trở thành một công cụ quan trọng cho thương mại quốc tế không chỉ bán sản phẩm mà còn quan hệ với khách hàng. Đối tượng nghiên cứu Đối với đề tài này, đối tượng nghiên cứu dựa trên nhu cầu sử dụng, chủ yếu là tham khảo sách, tài liệu của các Dev đã có kinh nghiệm.

Cụ thể như sau: • Tập trung nghiêm cứu Restful API, NodeJS, ExpressJS để xây dựng nên hệ thống các API dùng để truy vấn dữ liệu với độ chính xác cao và một tốc độ đảm bảo. • Sử dụng hệ quản trị cơ sở dữ liệu NoSQL là MongoDB để lưu trữ dữ liệu trong hệ thống. • Về phần giao diện cho người sử dụng nhóm sinh viên tiến hành nghiên cứu thư viện ReactJS, Redux (Toolkit) kèm theo một số thư viện được hỗ trợ cho ReactJS. để xây dựng và xử lý giao diện và cho người dùng sử dụng trên website.

Về phần bảo mật hệ thống, tiến hành nghiên cứu công nghệ Json Web Token làm bảo mật cho hệ thống, tất cả người dùng đăng nhập và các tính năng đều được xác thực và kiểm soát thông qua JWT. • Ngoài ra nhóm sinh viên còn nghiên cứu FPT AI – một trí tuệ nhân tạo được phát hành bởi FPT giúp người dùng có thể tạo ra các botchat bằng việc cung cấp các dữ liệu kịch bản cho nó. Phạm vi nghiên cứu Website chủ yếu tập trung vào các nghiệp vụ cơ bản, đảm bảo việc mua bán diễn ra suôn sẻ. Đồng thời thêm các tính năng đánh giá và bình luận giúp người mua dễ dàng tiếp cận với thông tin chi tiết và chất lượng của sản phẩm hơn.

Ngoài ra còn tích hợp các tính năng thống kê giúp ích cho việc tính toán và tính năng chat để người dùng dễ dàng tương tác với nhân viên cửa hàng. Phương pháp nghiên cứu Nhóm sinh viên học hỏi, tìm tòi các tài liệu trên Internet, các bài báo cáo cũ trong thư viện đại học Sư Phạm Kỹ Thuật để thực hiện báo cáo này. Vấn đề nghiệp vụ, các tác giả đã thông qua những lập trình viên có kinh nghiệm và đặc biệt là sự giúp đỡ đến từ giảng viên hướng dẫn. Về vấn đề lập trình, nhóm tác giả đã nghiên cứu qua các tài liệu của ReactJS và NodeJS, từ đó đưa ra một hướng giải quyết tối ưu.

Mục tiêu của đề tài • Xây dựng website buôn bán sản phẩm (cụ thể là mặt hàng giày dép) với những yêu cầu sau: o Cho phép người dùng xem danh sách sản phẩm, lọc và tìm kiếm sản phẩm o Cho phép người dùng xem chi tiết sản phẩm, đánh giá. o Cho phép người dùng thêm và xóa sản phẩm ở giỏ hàng. o Cho phép người dùng thanh toán (Có thể bằng ví điện tử). o Cho phép người dùng theo dõi trạng thái của đơn hàng.

o Cho phép người dùng tương tác với cửa hàng thông qua bot chat. o Cho phép người dùng xem lịch sử mua hàng. o Cho phép người dùng xem các khuyến mãi. • Mục tiêu về công nghệ: o Tìm hiểu ưu điểm, nhược điểm, cách hoạt động, cú pháp sử dụng của công nghệ MERN: MongoDB, ExpressJS, React, NodeJS o Cài đặt bộ công cụ và môi trường sử dụng được MERN o Dùng FPT AI để xây dựng bot chat.

o Tìm hiểu Vercel để deploy dự án lên môi trường thật. • Áp dụng kiến thức đã học trước đây của các môn học khác để hoàn thành việc xây dựng website. Ý nghĩa khoa học và thực tiễn Đối với doanh nghiệp: Dễ dàng quản lý các sản phẩm, khách hàng của mình, đồng thời tính toán và thống kê một cách chính xác hơn. Đối với khách hàng: Tiếp cận với sản phẩm dễ dàng với một thiết bị có thể kết nối Internet, giao dịch nhanh hơn.

Tổng quan về MERN Stack MERN Stack là một bộ kết hợp ngôn ngữ phía server và ngôn ngữ thao tác cơ sở dữ liệu. MERN Stack bao gồm các công nghệ: MongoDB, ExpressJS, ReactJS và NodeJS. Hình 2-1 Mern Stack 2. MongoDB Hình 2-2 MongoDB Là một hệ quản trị cơ sở dữ liệu dạng NoSQL viết bằng C++.

Đặc điểm chính là không ràng buộc (nonrelational) và phân tán (distributed). Đây còn là một mã nguồn mở (open source) nên rất dễ để lập trình viên tiếp cận, khả năng co giản theo chiều ngang (Horizontal scalable) có thể lưu trữ, xử lý từ một lượng rất nhỏ cho tới dữ liệu cực lớn, lên đến hàng petabytes dữ liệu trong hệ thống cần có độ chịu tải, chịu lỗi cao với những yêu cầu về tài nguyên phần cứng thấp. 14 Lợi thế của MongoDB: • Ít Schema: MongoDB là một hệ quản trị cơ sở dữ liệu gồm các Document được chứa trong cá Collection. Số trường, nội dung và kích cỡ của Document này có thể khác với Document khác.

o Cấu trúc của một đối tượng là rõ ràng. o Những tính năng như Join (SQL) sẽ được đơn giản hóa hơn. • Khả năng truy vấn sâu hơn. MongoDB hỗ trợ các truy vấn động trên các Document bởi sử dụng một ngôn ngữ truy vấn riêng với công dụng tựa như SQL.

• MongoDB có thể mở rộng cả về chiều rộng lẫn chiều sâu một cách dễ dàng. • Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn. Đặc điểm của MongoDB: • Kho lưu định hướng Document: Dữ liệu được lưu trong các tài liệu kiểu JSON dễ dàng việc xử lí dữ liệu. • Lập chỉ mục trên bất kỳ thuộc tính nào.

• Các truy vấn đa dạng, mạnh mẽ không khác gì SQL. • Cập nhật nhanh hơn, đó là điểm mạnh nhất mà người ta dùng MongoDB. • Chuỗi: đây là kiểu dữ liệu được sử dụng phổ biến nhất để lưu trữ dữ liệu. • Boolean: kiểu dữ liệu này được sử dụng để lưu trữ một trong hai giá trị True/False.

• Double: kiểu dữ liệu này được sử dụng để lưu các giá trị thực dấu chấm động (số thập phân). • Min/Max keys: Kiểu dữ liệu này được sử dụng để so sánh một giá trị với các phần tử BSON thấp nhất và cao nhất. 15 • Mảng: Kiểu dữ liệu này được sử dụng để lưu giữ các mảng hoặc danh sách hoặc nhiều giá trị vào trong một key. • Timestamp: Giúp thuận tiện cho việc ghi chép hoặc đánh dấu thời điểm một Document được sửa đổi hoặc được thêm vào, kiểu dữ liệu này sẽ được tạo tự động và lấy thời gian ngay khi một đối tượng mới được tạo ra và lưu vào cơ sở dữ liệu.

• Object: Kiểu dữ liệu này được sử dụng cho các Document được nhúng vào, có thể nói đây là kiểu dữ liệu được dùng rất phổ biến trong lập trình. • Null: Kiểu dữ liệu này được sử dụng để lưu một giá trị Null. • Symbol: Kiểu dữ liệu này được sử dụng giống như một chuỗi, tuy nhiên, nói chung nó được dành riêng cho các ngôn ngữ mà sử dụng kiểu symbol cụ thể. • Date: Kiểu dữ liệu này được sử dụng để lưu giữ ngày và giờ hiện tại trong định dạng UNIX time.

Bạn có thể xác định ngày và giờ riêng cho bạn bằng việc tạo đối tượng “Date” và truyền ngày, tháng, năm vào trong đó. • Object ID: Kiểu dữ liệu này được sử dụng để lưu giữ ID của Document, dữ liệu này sẽ “duy nhất”, tức là không trùng với những Document khác trong một Collection và thường sẽ tự được khởi tạo khi một đối tượng được thêm vào cơ sở dữ liệu. • Binary data: Kiểu dữ liệu này được sử dụng để lưu giữ dữ liệu nhị phân. • Code: Kiểu dữ liệu này được sử dụng để lưu giữ JavaScrip code vào trong Document.

ExpressJS Là một web application framework cho NodeJS, cung cấp các tính năng mạnh mẽ cho việc xây dựng một ứng dụng web đúng nghĩa hoặc lai. Là framework phổ biến và được sử dụng rộng rãi nhất của NodeJS, được xây dựng trên cấu trúc ngữ pháp của Sinatra. [2] 16 Ý tưởng đằng sau ExpressJS là đưa đến một framework nhẹ, dễ dàng tiếp cận để phát triển các ứng dụng web từ nhỏ đến lớn hay hybrid. [2] Hình 2-3 ExpressJS Express cũng có thể sử dụng để xây dựng một API mạnh mẽ và thân thiện với người dùng, vì nó cung cấp rất nhiều tiện ích HTTP và middleware cho việc kết nối.

Các Module quan trọng được cài đặt cùng với express: • Body-parser: Là một lớp trung gian NodeJS để xử lý JSON, ký tự, dữ liệu thô và mã hóa các URL. • Cookie-parser: Giúp chuyển đổi header của Cookie và phân bố đến các request. • Multer: Là một thành phần trung gian trong NodeJS để xử lý phần muitipart/form-data.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ