Đồ án: Xây dựng Website Thương Mại Điện Tử ASP.NET Core và ReactJS

Đồ án tốt nghiệp: Xây dựng website thương mại điện tử chuyên nghiệp với ASP.NET Core và ReactJS. Tìm hiểu quy trình, kỹ thuật và mã nguồn chi tiết.

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

107
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

DANH SÁCH BẢNG BIỂU

DANH SÁCH HÌNH

PHẦN MỞ ĐẦU

1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI

2. MỤC ĐÍCH CỦA ĐỀ TÀI

3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

4. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Giới thiệu về ASP.NET Core

1.2. Xây dựng web api với ASP.NET Core

1.3. Giới thiệu về React JS

1.4. Cách hoạt động

1.5. ENTITY FRAMEWORK CORE

1.6. Giới thiệu Entity Framework Core

1.7. Giới thiệu Redux

2. CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

2.1. KHẢO SÁT HIỆN TRẠNG

2.2. XÁC ĐỊNH YÊU CẦU

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

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

3. CHƯƠNG 3: THIẾT KẾ PHẦN MỀM

3.1. MÔ HÌNH HÓA YÊU CẦU

3.1.1. Lược đồ use case

3.1.2. Đặc tả use case

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

3.2. THIẾT KẾ CƠ SỞ DỮ LIỆU

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

3.2.2. Chi tiết bảng dữ liệu

3.3. THIẾT KẾ GIAO DIỆN

3.3.1. Giao diện người mua

3.3.2. Giao diện người bán

3.3.3. Giao diện người quản trị

3.3.4. Giao diện shipper

4. CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ

4.1. Các công cụ sử dụng

4.2. Các công nghệ sử dụng

4.3. Các bước cài đặt

4.4. Kế hoạch kiểm thử

4.5. Kịch bản kiểm thử

4.6. Kết quả kiểm thử

PHẦN KẾT LUẬN

1. KẾT QUẢ ĐẠT ĐƯỢC

2. NHƯỢC ĐIỂM

3. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Hướng dẫn đồ án Website TMĐT ASP

Đồ án xây dựng website thương mại điện tử (TMĐT) là một lựa chọn phổ biến và thực tiễn cho sinh viên ngành Công nghệ thông tin. Việc kết hợp ASP.NET Core cho backend và ReactJS cho frontend tạo ra một hệ thống hiện đại, hiệu suất cao và dễ bảo trì, đáp ứng đầy đủ tiêu chí của một đồ án tốt nghiệp chất lượng. Bài viết này sẽ phân tích chi tiết cấu trúc, công nghệ và quy trình thực hiện một dự án lập trình web full-stack tương tự, dựa trên tài liệu nghiên cứu "Xây dựng website thương mại điện tử sử dụng ASP.NET Core và React JS" của sinh viên Đại học Sư phạm Kỹ thuật TP.HCM. Mục tiêu là cung cấp một cái nhìn tổng quan, từ việc lên ý tưởng, chọn công nghệ đến triển khai các tính năng cốt lõi. Trong bối cảnh ngành thương mại điện tử phát triển mạnh mẽ, việc nắm vững các công nghệ này không chỉ giúp hoàn thành đồ án mà còn mở ra nhiều cơ hội nghề nghiệp. Dự án tập trung vào mô hình C2C (Customer-to-Customer), một mô hình kinh doanh tiềm năng được các sàn lớn như Shopee, Tiki áp dụng. Tài liệu gốc nhấn mạnh mục đích của đề tài là "Hiểu và có khả năng ứng dụng ASP.NET Core, React JS và các công nghệ liên quan để xây dựng ứng dụng web". Do đó, nội dung sẽ đi sâu vào việc phân tích cách các công nghệ này phối hợp để giải quyết các bài toán thực tế như quản lý sản phẩm, quản lý đơn hàng, và xử lý thanh toán online. Đây là một hướng dẫn làm đồ án toàn diện, cung cấp cả cơ sở lý thuyết và các bước triển khai cụ thể, giúp sinh viên có được một sản phẩm hoàn chỉnh và một bản báo cáo đồ án công nghệ thông tin thuyết phục.

1.1. Giới thiệu tổng quan về đồ án và công nghệ sử dụng

Đồ án tập trung vào việc xây dựng website bán hàng theo mô hình C2C, nơi người dùng có thể đóng vai trò cả người mua và người bán. Nền tảng công nghệ được lựa chọn là sự kết hợp giữa ASP.NET Core Web API ở phía máy chủ và thư viện ReactJS ở phía máy khách. Lựa chọn này cho phép xây dựng một ứng dụng trang đơn (Single Page Application - SPA) với trải nghiệm người dùng mượt mà và tốc độ tải trang nhanh. Phía backend sử dụng Entity Framework Core làm ORM (Object-Relational Mapping) để tương tác với cơ sở dữ liệu SQL Server, giúp đơn giản hóa các thao tác truy vấn dữ liệu. Phía frontend, Redux Toolkit được sử dụng để quản lý trạng thái toàn cục của ứng dụng, đặc biệt hữu ích cho các tính năng phức tạp như giỏ hàng và thông tin người dùng. Quá trình phát triển tuân thủ các nguyên tắc thiết kế phần mềm hiện đại, đảm bảo tính module hóa, dễ mở rộng và bảo trì.

1.2. Mục tiêu và phạm vi nghiên cứu của đề tài công nghệ thông tin

Mục tiêu chính của đồ án, như được nêu trong tài liệu gốc, là áp dụng kiến thức đã học để tạo ra một sản phẩm thực tế. Cụ thể, đề tài hướng đến việc xây dựng ba giao diện riêng biệt: trang cho người mua, trang cho người bán và trang cho quản trị viên. Phạm vi nghiên cứu tập trung vào các tính năng cốt lõi của một trang thương mại điện tử, bao gồm: đăng ký/đăng nhập, quản lý sản phẩm, giỏ hàng, đặt hàng, xử lý đơn hàng, theo dõi và thanh toán online. Các yêu cầu phi chức năng như bảo mật và hiệu suất cũng được chú trọng. Hệ thống sử dụng JWT Authentication để xác thực và phân quyền người dùng, đảm bảo chỉ những người dùng hợp lệ mới có thể truy cập các tài nguyên được bảo vệ. Các câu truy vấn cơ sở dữ liệu được tối ưu để đảm bảo tốc độ phản hồi nhanh, mang lại trải nghiệm tốt nhất cho người dùng. Đề tài không đi sâu vào các tính năng quá phức tạp mà tập trung hoàn thiện các nghiệp vụ cơ bản, tạo nền tảng vững chắc cho việc phát triển trong tương lai.

II. Phân tích thách thức khi xây dựng một website bán hàng

Việc xây dựng website bán hàng hiện đại không chỉ đơn thuần là tạo ra các trang hiển thị sản phẩm. Nó đòi hỏi phải giải quyết hàng loạt thách thức phức tạp về cả kỹ thuật và nghiệp vụ. Thách thức lớn nhất là xây dựng một kiến trúc có khả năng mở rộng, đáp ứng được lượng truy cập lớn và xử lý đồng thời nhiều giao dịch. Một hệ thống thương mại điện tử phải đảm bảo tính nhất quán dữ liệu, đặc biệt trong các quy trình quan trọng như quản lý đơn hàng và kiểm kho. Bên cạnh đó, việc mang lại trải nghiệm người dùng (UX) liền mạch và trực quan là yếu tố sống còn. Người dùng mong muốn một giao diện nhanh, phản hồi tức thì và dễ dàng điều hướng, từ tìm kiếm sản phẩm đến hoàn tất thanh toán online. Vấn đề bảo mật cũng là một ưu tiên hàng đầu. Hệ thống phải có cơ chế xác thực và phân quyền chặt chẽ để bảo vệ dữ liệu người dùng và ngăn chặn các hành vi gian lận. Tài liệu gốc cũng đề cập đến việc "đáp ứng được các yêu cầu phi chức năng như tính bảo mật", nhấn mạnh tầm quan trọng của việc mã hóa mật khẩu và bảo vệ các API endpoint. Đối với một đồ án tốt nghiệp, việc cân bằng giữa phạm vi tính năng, thời gian thực hiện và độ phức tạp công nghệ cũng là một bài toán khó. Việc lựa chọn công nghệ phù hợp như ASP.NET CoreReactJS giúp giảm thiểu rủi ro và tăng tốc độ phát triển, nhưng đòi hỏi người thực hiện phải có kiến thức vững chắc về lập trình web full-stack.

2.1. Yêu cầu về hiệu suất và khả năng mở rộng của hệ thống TMĐT

Một website thương mại điện tử thành công phải xử lý được hàng ngàn yêu cầu mỗi giây. Điều này đặt ra yêu cầu cao về hiệu suất cho cả backend và frontend. Backend phải được thiết kế để tối ưu hóa các truy vấn đến cơ sở dữ liệu SQL Server, sử dụng caching hiệu quả và xử lý bất đồng bộ để không chặn luồng chính. Frontend cần tối ưu hóa thời gian tải trang, giảm số lượng yêu cầu đến máy chủ và sử dụng các kỹ thuật như lazy loading cho hình ảnh và components. Kiến trúc microservices, mặc dù không được áp dụng trong phạm vi đồ án này, là một hướng tiếp cận phổ biến cho các hệ thống lớn để đảm bảo khả năng mở rộng độc lập cho từng dịch vụ.

2.2. Vấn đề bảo mật thông tin người dùng và giao dịch trực tuyến

Bảo mật là yếu tố không thể xem nhẹ. Đồ án đã áp dụng cơ chế xác thực dựa trên JSON Web Token (JWT Authentication). Mỗi khi người dùng đăng nhập thành công, hệ thống sẽ cấp một token chứa thông tin đã được mã hóa. Token này được gửi kèm trong mỗi yêu cầu đến các API cần bảo vệ. Phía server sẽ giải mã và xác thực token để đảm bảo yêu cầu là hợp lệ. Ngoài ra, mật khẩu người dùng phải được băm (hashing) trước khi lưu vào cơ sở dữ liệu để ngăn chặn nguy cơ lộ thông tin ngay cả khi cơ sở dữ liệu bị xâm nhập. Việc xử lý thanh toán online cũng cần tuân thủ các tiêu chuẩn bảo mật như PCI DSS, thường được thực hiện thông qua các cổng thanh toán uy tín của bên thứ ba.

III. Bí quyết xây dựng Backend với ASP

Backend là xương sống của mọi hệ thống thương mại điện tử. Trong đồ án này, việc lựa chọn ASP.NET Core Web API là một quyết định chiến lược. Đây là một framework mã nguồn mở, đa nền tảng và hiệu suất cao từ Microsoft, rất phù hợp để xây dựng các RESTful API. Kiến trúc của backend được thiết kế theo mô hình phân lớp rõ ràng, bao gồm Lớp Presentation (Controllers), Lớp Business Logic (Services) và Lớp Data Access (Repositories), giúp mã nguồn dễ đọc, dễ bảo trì và kiểm thử. Entity Framework Core được sử dụng như một cầu nối giữa các đối tượng C# và cơ sở dữ liệu SQL Server. Cách tiếp cận Code First Migration cho phép các lập trình viên định nghĩa mô hình dữ liệu bằng code, sau đó tự động tạo và cập nhật schema của cơ sở dữ liệu. Điều này giúp đồng bộ hóa mô hình dữ liệu và cơ sở dữ liệu một cách nhất quán trong suốt quá trình phát triển. Tài liệu gốc nêu rõ nhiệm vụ: "Sử dụng ASP.NET Core để triển khai phía server của hệ thống" và "Sử dụng Entity Framework Core để thao tác với dữ liệu". Các API được thiết kế tuân thủ chuẩn REST, sử dụng các phương thức HTTP (GET, POST, PUT, DELETE) một cách hợp lý để thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên tài nguyên. Việc triển khai JWT Authentication đảm bảo rằng chỉ những yêu cầu đã được xác thực mới có thể truy cập vào các endpoint nhạy cảm, tăng cường tính bảo mật cho toàn bộ hệ thống.

3.1. Thiết kế và triển khai RESTful API cho các nghiệp vụ

Hệ thống API được thiết kế để phục vụ các nghiệp vụ chính của trang thương mại điện tử. Các endpoints được phân nhóm dựa trên tài nguyên, ví dụ: /api/products cho các hoạt động liên quan đến sản phẩm, /api/orders cho quản lý đơn hàng. Mỗi endpoint xử lý một hành động cụ thể. Ví dụ, GET /api/products/{id} trả về chi tiết một sản phẩm, trong khi POST /api/cart thêm một sản phẩm vào giỏ hàng. Việc sử dụng các DTOs (Data Transfer Objects) giúp tách biệt mô hình dữ liệu của cơ sở dữ liệu với dữ liệu được trao đổi qua API, tăng tính linh hoạt và bảo mật. Swagger/OpenAPI được tích hợp để tự động tạo tài liệu cho API, giúp phía frontend dễ dàng hiểu và tích hợp.

3.2. Quản lý cơ sở dữ liệu với Entity Framework Core và Code First

Phương pháp Code First Migration của Entity Framework Core là một điểm sáng trong quy trình phát triển. Thay vì thiết kế cơ sở dữ liệu trước, nhóm phát triển định nghĩa các lớp thực thể (Entities) bằng C#. Các mối quan hệ (một-nhiều, nhiều-nhiều) cũng được định nghĩa ngay trong code bằng Data Annotations hoặc Fluent API. Khi có sự thay đổi trong các lớp model, lập trình viên chỉ cần tạo một migration mới. Migration này sẽ chứa các đoạn script để cập nhật cơ sở dữ liệu SQL Server tương ứng với thay đổi đó. Quy trình này giúp kiểm soát phiên bản của cơ sở dữ liệu một cách hiệu quả, đặc biệt khi làm việc nhóm, và đảm bảo sự đồng bộ tuyệt đối giữa code và database.

IV. Phương pháp tối ưu Frontend ReactJS cho trang TMĐT

Giao diện người dùng là yếu tố quyết định trực tiếp đến trải nghiệm mua sắm. ReactJS được chọn để xây dựng một giao diện người dùng (UI) năng động và có tính tương tác cao. Là một thư viện JavaScript mạnh mẽ, React cho phép xây dựng UI từ các thành phần (components) độc lập và có thể tái sử dụng. Đồ án đã tận dụng các tính năng hiện đại của React, đặc biệt là React Hooks, để viết các functional components với logic phức tạp mà không cần dùng đến class. Điều này giúp code ngắn gọn và dễ hiểu hơn. Để quản lý trạng thái ứng dụng một cách hiệu quả, Redux Toolkit đã được tích hợp. Redux cung cấp một store trung tâm, là "nguồn chân lý duy nhất" (single source of truth) cho toàn bộ trạng thái của ứng dụng, từ thông tin đăng nhập của người dùng, nội dung giỏ hàng đến danh sách sản phẩm. Redux Toolkit là phiên bản được đề xuất chính thức, giúp đơn giản hóa việc viết code Redux, giảm thiểu boilerplate code. Tài liệu gốc ghi rõ: "Sử dụng React JS để xây dựng giao diện phía client" và "Sử dụng Redux để làm công cụ quản lý lưu trữ cho phía client". Việc điều hướng giữa các trang trong ứng dụng trang đơn được xử lý bởi React Router, giúp tạo ra trải nghiệm chuyển trang mượt mà như một ứng dụng desktop mà không cần tải lại toàn bộ trang web. Đây là một yếu tố quan trọng trong việc xây dựng website bán hàng hiện đại.

4.1. Quản lý State hiệu quả với Redux Toolkit và React Hooks

Trong một ứng dụng thương mại điện tử, trạng thái có thể trở nên rất phức tạp. Ví dụ, khi người dùng thêm một sản phẩm vào giỏ hàng từ trang chi tiết sản phẩm, component hiển thị số lượng sản phẩm trong giỏ hàng ở header cũng phải được cập nhật ngay lập tức. Redux Toolkit giải quyết vấn đề này bằng cách tập trung toàn bộ trạng thái vào một store duy nhất. Các components sử dụng React Hooks như useSelector để đọc dữ liệu từ store và useDispatch để gửi các hành động (actions) yêu cầu thay đổi trạng thái. Luồng dữ liệu một chiều này (UI -> Action -> Reducer -> Store -> UI) giúp ứng dụng dễ dự đoán, gỡ lỗi và bảo trì.

4.2. Xây dựng giao diện người dùng linh hoạt và tái sử dụng

Triết lý của React là chia nhỏ giao diện thành các components. Ví dụ, một trang danh sách sản phẩm có thể được cấu thành từ nhiều component ProductCard. Mỗi ProductCard lại chứa các component nhỏ hơn như ProductImage, ProductName, ProductPrice. Cách tiếp cận này không chỉ giúp tái sử dụng code mà còn giúp quản lý và phát triển các tính năng mới một cách độc lập. Việc sử dụng các thư viện UI component như Material-UI hoặc Ant Design có thể tăng tốc độ phát triển và đảm bảo tính nhất quán trong thiết kế.

4.3. Điều hướng và định tuyến trong ứng dụng với React Router

Với React Router, ứng dụng có thể ánh xạ các URL khác nhau tới các component tương ứng. Ví dụ, URL /products sẽ hiển thị component ProductListPage, trong khi /products/123 sẽ hiển thị ProductDetailPage với ID sản phẩm là 123. Thư viện này quản lý lịch sử duyệt web của trình duyệt, cho phép người dùng sử dụng các nút back/forward một cách tự nhiên. React Router cũng hỗ trợ các tính năng nâng cao như lazy loading các component cho từng route, giúp tối ưu hóa hiệu suất ban đầu của ứng dụng bằng cách chỉ tải code cần thiết cho trang hiện tại.

V. Triển khai các tính năng cốt lõi của đồ án tốt nghiệp

Giá trị của một đồ án tốt nghiệp nằm ở việc hiện thực hóa lý thuyết thành các tính năng hoạt động được. Dự án website thương mại điện tử này đã triển khai thành công nhiều chức năng quan trọng, mô phỏng hoạt động của một sàn TMĐT thực tế. Chức năng quản lý sản phẩm cho phép người bán đăng tải sản phẩm mới với đầy đủ thông tin mô tả, hình ảnh, giá cả và phân loại. Phía người mua có thể tìm kiếm, lọc và xem chi tiết sản phẩm một cách trực quan. Tính năng giỏ hàng là trung tâm của trải nghiệm mua sắm. Người dùng có thể thêm, xóa, cập nhật số lượng sản phẩm trong giỏ. Trạng thái giỏ hàng được quản lý bởi Redux Toolkit, đảm bảo dữ liệu luôn đồng bộ trên toàn bộ ứng dụng. Quy trình quản lý đơn hàng được thiết kế chi tiết, bao gồm các trạng thái: chờ xác nhận, đang chuẩn bị, đang giao, đã giao và đã hủy. Cả người mua và người bán đều có thể theo dõi trạng thái đơn hàng của mình. Hệ thống cũng tích hợp cổng thanh toán online (ví dụ: PayPal), mang lại sự tiện lợi và an toàn cho giao dịch. Toàn bộ mã nguồn của dự án có thể được xem như một source code website bán hàng tham khảo chất lượng cho các sinh viên đang tìm kiếm ý tưởng hoặc cần hướng dẫn làm đồ án. Tài liệu gốc cung cấp các lược đồ use case và tuần tự chi tiết, mô tả luồng hoạt động của từng chức năng, là nguồn tham khảo quý giá cho việc phân tích và thiết kế hệ thống.

5.1. Quy trình quản lý sản phẩm giỏ hàng và thanh toán online

Quy trình bắt đầu khi người bán tạo sản phẩm mới thông qua một form chi tiết. Dữ liệu được gửi đến ASP.NET Core Web API và lưu vào cơ sở dữ liệu. Người mua có thể duyệt và thêm sản phẩm vào giỏ hàng. Khi tiến hành thanh toán, hệ thống sẽ tổng hợp thông tin từ giỏ hàng, áp dụng mã giảm giá (nếu có) và chuyển hướng người dùng đến trang checkout. Tại đây, người dùng chọn địa chỉ giao hàng và phương thức thanh toán. Nếu chọn thanh toán online, hệ thống sẽ tương tác với API của cổng thanh toán để xử lý giao dịch. Sau khi thanh toán thành công, một đơn hàng mới sẽ được tạo trong hệ thống.

5.2. Luồng xử lý và theo dõi quản lý đơn hàng cho các bên

Sau khi đơn hàng được tạo, nó sẽ ở trạng thái "Chờ xác nhận". Quản trị viên (Admin) sẽ xem xét, phân công shipper và xác nhận đơn hàng, chuyển trạng thái sang "Chờ lấy hàng". Người bán nhận thông báo và chuẩn bị hàng. Shipper đến lấy hàng và cập nhật trạng thái thành "Đang giao". Cuối cùng, khi người mua nhận được hàng, shipper xác nhận và đơn hàng chuyển sang "Đã giao". Mỗi bước thay đổi trạng thái đều được ghi nhận lại trong cơ sở dữ liệu, giúp tất cả các bên liên quan (người mua, người bán, shipper, admin) có thể theo dõi tiến trình của đơn hàng một cách minh bạch.

VI. Tổng kết đồ án Hướng phát triển cho website TMĐT

Dự án xây dựng website thương mại điện tử sử dụng ASP.NET Core và React JS đã hoàn thành xuất sắc các mục tiêu đề ra, trở thành một đồ án tốt nghiệp thành công. Sản phẩm cuối cùng là một ứng dụng web full-stack hoạt động ổn định, với các tính năng cốt lõi của một sàn thương mại điện tử mô hình C2C. Về mặt kỹ thuật, đồ án đã chứng minh được khả năng ứng dụng hiệu quả các công nghệ hiện đại vào giải quyết bài toán thực tế. Việc sử dụng kiến trúc tách biệt backend và frontend (Headless Commerce) mang lại sự linh hoạt, cho phép phát triển và mở rộng các kênh bán hàng khác (ví dụ: ứng dụng di động) trong tương lai mà không cần thay đổi logic ở backend. Theo phần "Kết quả đạt được" trong báo cáo đồ án công nghệ thông tin, hệ thống đã đáp ứng được các yêu cầu chức năng và phi chức năng cơ bản. Tuy nhiên, vẫn còn nhiều hướng phát triển tiềm năng để nâng cấp sản phẩm. Việc xây dựng một hệ thống gợi ý sản phẩm dựa trên hành vi người dùng (machine learning), tối ưu hóa SEO cho các trang sản phẩm, hay tích hợp thêm nhiều cổng thanh toán online và đơn vị vận chuyển là những bước đi tiếp theo hợp lý. Đồ án này là một minh chứng rõ ràng cho việc kết hợp kiến thức học thuật và kỹ năng lập trình thực tế, là một tài sản quý giá cho bất kỳ sinh viên nào đang thực hiện một dự án lập trình web full-stack tương tự.

6.1. Đánh giá kết quả đạt được và những hạn chế của đồ án

Kết quả lớn nhất là một source code website bán hàng hoàn chỉnh, hoạt động được. Đồ án đã áp dụng thành công các công nghệ như ASP.NET Core Web API, React Hooks, Redux ToolkitEntity Framework Core. Tuy nhiên, như trong tài liệu gốc đề cập ở mục "Nhược điểm", hệ thống vẫn còn một số hạn chế như giao diện chưa được tối ưu hoàn toàn cho thiết bị di động (responsive), và các tính năng nâng cao như marketing, quản lý khuyến mãi phức tạp chưa được triển khai. Đây là những điểm có thể cải thiện trong các phiên bản sau.

6.2. Các hướng phát triển và nâng cấp hệ thống trong tương lai

Để phát triển hệ thống thành một sản phẩm thương mại thực thụ, có một số hướng đi khả thi. Đầu tiên là xây dựng ứng dụng di động (Mobile App) sử dụng React Native, có thể tái sử dụng một phần logic từ phiên bản web ReactJS. Thứ hai, tích hợp các thuật toán gợi ý sản phẩm để cá nhân hóa trải nghiệm người dùng, tăng tỷ lệ chuyển đổi. Thứ ba, cải thiện hệ thống quản trị (Admin Panel) với các báo cáo, biểu đồ thống kê chi tiết hơn về doanh thu, người dùng và sản phẩm. Cuối cùng, việc tối ưu hóa hiệu suất ở cả backend và frontend, triển khai hệ thống trên các nền tảng đám mây như Azure hoặc AWS sẽ giúp hệ thống chịu tải tốt hơn khi lượng người dùng tăng lê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 thương mại điện tử sử dụng asp net core và react js

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

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Giới thiệu về ASP.NET Core ASP.NET Core là một framework đa nền tảng, hiệu suất cao và mã nguồn mở để xây dựng các ứng dụng hiện đại, có khả năng kết nối đám mây, kết nối internet.NET Core, chúng ta có thể xây dựng các ứng dụng và dịch vụ web, ứng dụng internet vạn vật và phía máy chủ cho ứng dụng di động. [1] Hàng triệu lập trình viên đang hoặc đã sử dụng ASP.x để tạo ứng dụng web.NET Core là bản thiết kế lại của ASP.x, bao gồm những thay đổi về kiến trúc dẫn đến một khung mô-đun gọn gàng hơn. Các tính năng Các tính năng chính của ASP.NET Core: - Quá trình biên dịch diễn ra liên tục, lập trình viên không cần phải gọi lệnh biên dịch lại.

- Các module được phân phối dưới dạng các Nuget packages. - Xây dựng và chạy các ứng dụng ASP.NET Core đa nền tảng trên các hệ điều hành: Windows, Mac, Linux - Mã nguồn mở. - Các hỗ trợ cho dependency injection được xây dựng sẵn. Xây dựng web api với ASP.NET Core API là viết tắt của Application Programming Interface.

Nó là một tác nhân phần mềm trung gian cho phép hai hoặc nhiều ứng dụng tương tác với nhau.NET Core hỗ trợ tạo các dịch vụ RESTful, còn được gọi là API web. Để xử lý các request, web API sử dụng các controllers. Controller trong API web là các lớp bắt nguồn từ ControllerBase. Ưu điểm 16 Các ưu điểm nổi bật của ASP.NET Core: - ASP.NET Core là một web framework nhẹ và nhanh.

- Tích hợp dễ dàng với các framework ở phía client như react, angular - Là một framework mã nguồn mở và tập trung vào cộng đồng. Giới thiệu về React JS React JS là một thư viện JavaScript mã nguồn mở và miễn phí để xây dựng giao diện người dùng nhanh và có tính tương tác dựa trên các components. Nó được duy trì bởi Meta (trước đây là Facebook) và cộng đồng các lập trình viên. React hiện tại là thư viện Javascript phổ biến nhất dùng để xây dựng giao diện người dùng.

React có thể được sử dụng để phát triển các ứng dụng trang đơn (single page application) hoặc di động. Tuy nhiên, React chỉ quan tâm đến việc quản lý trạng thái (state) và hiển thị trạng thái đó lên DOM, vì vậy việc tạo ứng dụng React thường yêu cầu sử dụng các thư viện bổ sung. Các tính năng Component: Mã nguồn React được tạo thành từ nhiều thành phần được gọi là component, component được hiển thị cho một phần tử cụ thể ở trên DOM bằng cách sử dụng thư viện React DOM. Có 2 cách để khởi tạo một component trong react: Thông qua class-component hoặc functional-component.

DOM ảo: React tạo ra một bộ dữ liệu có cấu trúc trong bộ nhớ, tính toán sự khác biệt giữa các DOM ảo và sau đó cập nhật một phần DOM thật dựa trên sự khác biệt đó. Nó như thể cho phép biểu diễn lại cả trang mỗi khi có thay đổi dữ liệu nhưng thực tế React chỉ cập nhật lại các component có sự thay đổi. Điều này làm cho ứng dụng React có hiệu suất cao Lifecycle methods: Cho phép thực thi các lệnh tại các thời điểm nhất định trong vòng đời của một component. ComponentDidMount được gọi khi component đã "gắn kết" (component đã được chèn vào DOM).

ComponentDidUpdate được gọi khi dữ liệu 17 của một component thay đổi. ComponentWillUnmount được gọi khi component bị xóa khỏi DOM. JSX: JavaScript XML, là một phần mở rộng cho cú pháp ngôn ngữ JavaScript. Có bề ngoài tương tự như HTML.

Các component thường được viết bằng JSX, mặc dù chúng không nhất thiết phải như vậy (các component cũng có thể được viết bằng JavaScript thuần). Hooks: Hooks là một tính năng mới ra đời trong bản cập nhật React 16. Hooks giúp xây dựng functional-component với tất cả những tính năng của class-component như sử dụng state, lifecycle methods. Hooks không thể sử dụng trong class-component.

Cách hoạt động Mọi ứng dụng React đều chứa ít nhất một component, được gọi là component gốc, đại diện cho toàn bộ ứng dụng và chứa các component con. Mỗi component thường chứa một số state - là dữ liệu của component và hàm render để sinh ra giao diện của component. Đầu ra của hàm render là một React element – một đối tượng javascript thuần – tương ứng với một DOM element, nó giống như một đại diện của DOM được lưu trong bộ nhớ. React lưu giữ những đại diện như vậy trong bộ nhớ, gọi là DOM ảo.

Mỗi khi có sự thay đổi ở dữ liệu trong một component (thay đổi state, props), một React element mới được tạo ra, React sẽ so sánh sự thay đổi của element mới này so với phiên bản cũ của nó, phát hiện được những gì thay đổi, tiếp đó cập nhật một phần của DOM thật dựa trên sự thay đổi đó để đồng bộ với DOM ảo. Ưu điểm Các ưu điểm chính của React JS: - Dễ bảo trì và quản lý: Việc phân chia ra thành các component giúp cho code react trở nên gọn gàng, có cấu trúc nên dễ dàng quản lý. - Hiệu suất cao: Việc sử dụng DOM ảo giúp react tiết kiệm được tài nguyên và đạt hiệu suất cao. - Dễ kiểm thử: React có tiện ích trên chrome dev tool giúp việc debug ứng dụng trở nên dễ dàng hơn.

18 - React chỉ là một thư viện, nên khi thiết kế giao diện, ta có thể tự do sử dụng các thư viện hỗ trợ gọi http service, routing khác tự do theo ý thích mà không bị bó buộc. ENTITY FRAMEWORK CORE 3. Giới thiệu Entity Framework Core Entity framework core là một phiên bản nhẹ, có tính mở rộng, có mã nguồn mở và hỗ trợ đa nền tảng, kế thừa từ công nghệ Entity framework khá phổ biến. Entity framework core là một trình ánh xạ đối tượng quan hệ, cho phép truy xuất tới cơ sở dữ liệu thông qua các đối tượng trong .NET, nó cũng cung cấp hầu như tất cả các câu truy vấn dữ liệu thường được viết.

Các tính năng Entity framework core cung cấp các tính năng chính sau: - Ánh xạ các lớp .NET sang các bảng dữ liệu dưới cơ sở dữ liệu thông qua cách tiếp cận code-first. - Hỗ trợ các câu truy vấn, sửa đổi dữ liệu dưới cơ sở dữ liệu theo dạng các hàm mở rộng. - Theo dõi dự thay đổi cấu trúc của cơ sở dữ liệu. - Hỗ trợ đa nền tảng.

Ưu điểm Entity framework core sở hữu những ưu điểm nổi bật sau: - Giúp tiết kiệm thời gian và nguồn lực phát triển ứng dụng. - Làm cho việc kết nối với cơ sở dữ liệu và viết câu truy vấn dễ dàng hơn. - Hiệu suất cao. Giới thiệu Redux 19 Redux là một thư viện quản lý trạng thái phục vụ cho ứng dụng javascript.

Chúng ta có thể sử dụng redux với các thư viện, framework giao diện như react, angular, vue hoặc javascript thuần. Redux có kích thước nhỏ gọn (chỉ khoảng 2Kb) nhưng chứa một hệ sinh thái bổ trợ rất lớn. Các nguyên tắc Redux có 3 nguyên tắc chính, bao gồm: - Nguồn duy nhất: Các trạng thái của ứng dụng sẽ được lưu trữ trong một đối tượng duy nhất, điều này giúp cho trạng thái ở các phần khác nhau của ứng dụng sẽ được đồng bộ với nhau, giúp ứng dụng dễ dàng được kiểm thử. - Trạng thái chỉ được đọc: Các trạng thái sẽ không thể bị chính sửa trực tiếp, cách duy nhất để thay đổi trạng thái là gửi đi một hành động cụ thể, vì vậy mà các thay đổi của trạng thái sẽ được diễn ra theo một trình tự nghiêm ngặt, vì vậy mà các thay đổi đó có thể được ghi nhận, lưu trữ và phát lại.

- Những thay đổi về trạng thái được thực hiện bởi những hàm thuần tùy: Các reducer là những hàm thuần túy chỉ nhận vào trạng thái cũ và hành động và trả ra trạng thái mới. Bởi vì các reducer chỉ là hàm nên ta dễ dàng kiểm soát thứ tự được gọi của chúng. Ưu điểm Redux sở hữu những ưu điểm: - Các trạng thái giữa các thành phần được chuyển đổi ổn định và dễ dàng. - Tích hợp dễ dàng với React do có cùng cấu trúc Flux.

- Dễ dàng bảo trì: Cách tổ chức cấu trúc mã của redux khiến cho ứng dụng viết bằng redux dễ bảo trì - Dễ kiểm thử: Ứng dụng viết bằng redux được hỗ trợ công cụ Redux dev tool rất mạnh mẽ, có thể xem các hành động được thực hiện, trình chiếu lại các hành động đó tại một thời điểm bất kỳ. 20 CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1. KHẢO SÁT HIỆN TRẠNG Qua tìm hiểu về nhu cầu sử dụng các trang web thương mại điện tử để mua sắm, nhóm đã lựa chọn ra 5 trang web thương mại điện tử mà theo nhóm là phổ biến nhất ở Việt Nam để khảo sát bao gồm các trang web: shopee.vn Hình 1: Trang Chủ Shopee [6] Thành lập vào năm 2015, tuy ra đời muộn nhưng Shopee lại nhanh chóng giành được ưu thế và tầm ảnh hưởng, vươn lên trở thành Sàn thương mại điện tử HOT nhất chỉ sau 3 năm hoạt động. Theo công bố của Shopee, số lượng shop đã đạt 800.000 shop và hơn 158,8 triệu đơn đặt hàng trong quý 3/2018.

Ưu điểm: - Số lượng khách hàng tiềm năng lớn, chủ yếu ở lứa tuổi trẻ, dễ dàng thích hợp với xu hướng mới. - Mở gian hàng cực nhanh bằng số điện thoại và email. Miễn phí mở gian hàng và phí hoa hồng kinh doanh hiện tại là 2.2% với shop thông thường. - Nhiều chính sách khuyến mãi, ưu đãi dành cho chủ shop và khách mua hàng.

21 Nhược điểm: - Khó bán hàng vì mức độ cạnh tranh cao hơn các sàn TMĐT khác. - Tình trạng hàng kém chất lượng vẫn tràn lan, hạ thấp uy tín của shop bán hàng chính hãng.vn Hình 2: Trang chủ tiki [7] Thành lập 2010, từ một website bán sách, Tiki đã phát triển trở thành một trong những website thương mại điện tử đa ngành được yêu thích tại Việt Nam. Ưu điểm: - Niềm tin mua sắm của khách hàng đặt ở sàn rất cao. Do chính sách kiểm duyệt nhà bán hàng khắt khe, hàng hóa Tiki chất lượng đảm bảo hơn.

Cam kết 100% hàng chính hãng nên không lo bị “xếp chung” với các shop bán hàng kém chất lượng giá rẻ khác. - Tỉ lệ hàng hoàn, hàng đổi trả rất thấp (theo báo cáo của Tiki là 1%). Nhược điểm: - Yêu cầu khắt khe khi mở shop: Phải có giấy tờ chứng minh là doanh nghiệp được nhà nước cấp phép hoạt động. 22 - Ngành hàng còn ít và chưa có sự đa dạng như Shopee, Lazada.

- Tốn phí cố định và phí hoa hồng khi kinh doanh online.

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