Đồ án phân tích thiết kế hệ thống bán sách trực tuyến dựa trên cách tiếp cậnthương mại điện tử và nền tảng lập trình .NET của Microsoft và các phần tiếp theo củabài báo cáo được trình bà
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Nhóm sinh viên thực hiện: Nhóm C-Moon
1 47.01.104.080 - Nguyễn Phạm Minh Giang
2 47.01.104.236 - Nguyễn Thanh Viết
3 47.01.104.243 - Lê Văn Vũ
Trang 3LỜI CẢM ƠN
Lời đầu tiên, chúng em xin gửi lời tri ân chân thành và sâu sắc nhất để bày tỏ lòng
biết ơn đến Thầy Mai Vân Phương Vũ - người đã trực tiếp giúp đỡ, quan tâm, hướng
dẫn
chúng em hoàn thành đồ án môn học Công nghệ NET.
Trong quá trình tìm hiểu và học tập bộ môn, chúng em đã nhận được sự giảng dạy
và hướng dẫn rất tận tình, tâm huyết của Thầy Thầy đã giúp chúng em tích lũy thêmnhiều
kiến thức hay và bổ ích để phục vụ cho những học phần liên quan, chuyên môn nghềnghiệp trong cuộc sống Từ những kiến thức mà Thầy truyền đạt, chúng em xin trình bày
lại những gì mình đã tìm hiểu và học được thông qua đề tài “Nhà sách trực tuyến Made
thiện đồng thời có điều kiện bổ sung, nâng cao kiến thức của mình Kính chúc Thầy vàgia
đình nhiều sức khỏe
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện đồ án
Trang 4MỤC LỤC
MỤC LỤC 4
DANH MỤC CÁC HÌNH VẼ VÀ SƠ ĐỒ 6
DANH MỤC TỪ VIẾT TẮT 7
MỞ ĐẦU 8
CHƯƠNG 1 TỔNG QUAN 9
1.1 GIỚI THIỆU ĐỀ TÀI 9
1.2 MỤC TIÊU ĐỀ TÀI 9
1.3 PHƯƠNG PHÁP TIẾP CẬN 10
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 12
2.1 ASP.NET CORE MVC 12
2.1.1 ASP.NET 12
2.1.2 MÔ HÌNH MVC 13
2.1.3 ASP.NET CORE MVC 16
2.2 ENTITY FRAMEWORK CORE 18
2.2.1 ENTITY FRAMEWORK CORE LÀ GÌ? 18
2.2.2 CÁC HƯỚNG TIẾP CẬN TRONG ENTITY FRAMEWORK CORE 19
2.2.2.1 DATABASE FIRST 19
2.2.2.2 CODE FIRST 20
2.3 SINGLE-PAGE APPLICATION 20
2.3.1 SINGLE-PAGE APPLICATION LÀ GÌ? 20
2.3.2 ƯU ĐIỂM CỦA VIỆC SỬ DỤNG SINGLE-PAGE APPLICATION 21
2.3.3 BLAZOR 22
2.4 CLOUD HOSTING 23
CHƯƠNG 3 CÀI ĐẶT HỆ THỐNG 25
3.1 THIẾT KẾ 25
Trang 53.1.1 THIẾT KẾ HỆ THỐNG 25
3.1.2 THIẾT KẾ CƠ SỞ DỮ LIỆU 26
3.2 XÂY DỰNG 27
3.2.1 GIAO DIỆN HỆ THỐNG 27
3.2.2 GIAO DIỆN ADMIN 32
KẾT LUẬN 35
KẾT QUẢ ĐẠT ĐƯỢC 35
ĐỊNH HƯỚNG PHÁT TRIỂN 35
TÀI LIỆU THAM KHẢO 36
Trang 6DANH MỤC CÁC HÌNH VẼ VÀ SƠ ĐỒ
Hình 1: ASP.NET 13
Hình 2: Các thành phần trong mô hình MVC 14
Hình 3: Luồng xử lý trong MVC 15
Hình 4: Hướng tiếp cận Database First 19
Hình 5: Hướng tiếp cận Code First 20
Hình 6: Cloud hosting 24
Hình 7: Tổng quan hệ thống 25
Hình 8: Cơ sở dữ liệu hệ thống 26
Hình 9: Giao diện trang chủ 27
Hình 10: Giao diện chức năng đăng nhập/đăng ký tài khoản 27
Hình 11: Danh mục các loại sách 28
Hình 12: Ví dụ về danh mục sách: Learning 28
Hình 13: Thêm sách vào giỏ hàng/mục yêu thích 29
Hình 14: Giao diện xem thông tin sách 29
Hình 15: Giao diện đặt hàng 30
Hình 16: Giao diện điền thông tin giao hàng 31
Hình 17: Giao diện trang thông tin liên lạc nhà sách 32
Hình 18: Giao diện trang admin 32
Hình 19: Giao diện chức năng Quản lý sách 33
Hình 20: Giao diện chức năng Quản lý mã giảm giá 33
Hình 21: Giao diện chức năng Quản lý tài khoản 34
Hình 22: Giao diện chức năng Quản lý đơn hàng 34
Trang 7DANH MỤC TỪ VIẾT TẮT
Model-View-Controller
Trang 8MỞ ĐẦU
Khi việc sử dụng máy tính ngày càng phổ biến thì mạng máy tính (mạng Internet)ngày càng phát triển Lợi ích của việc sử dụng mạng Internet rất nhiều và đa dạng Có thểlấy ví dụ về việc mua bán, giao dịch và kinh doanh trên mạng (hay còn gọi là thương mạiđiện tử) cũng đang phát triển và góp phần không nhỏ trong đời sống hàng ngày của chúng
ta Mua bán qua mạng là một giải pháp tối ưu trong việc phân phối thông tin và mục đíchthương mại, và đây cũng là một mảnh đất mới cho thị trường hàng tiêu dùng trong giaiđoạn phát triển kinh tế ở nước ta Thương mại điên tử là một hình thức kinh doanh trênmạng đang rất phát triển trên thế giới Với một chi phí thấp, khả thi, bất cứ một doanhnghiệp nào cũng có thể nhanh chóng tham gia thương mại điện tử để đem lại cơ hội kinhdoanh cho doanh nghiệp
Bên cạnh đó, trong thời đại ngày nay, khi thế giới đang chuyển dịch mạnh mẽ vềhình thức số hóa, ngành xuất bản và sách không thể tránh khỏi sự biến đổi toàn diện.Những nhà sách thương mại điện tử, trở thành điểm gặp gỡ của vô vàn nguồn tri thức vàniềm đam mê đọc sách, mở ra một hướng mới cho sự tiếp cận và tận hưởng văn hóa đọc
Và website bán sách trực tuyến cũng nằm trong sự phát triển đó
Đồ án phân tích thiết kế hệ thống bán sách trực tuyến dựa trên cách tiếp cậnthương mại điện tử và nền tảng lập trình NET của Microsoft và các phần tiếp theo củabài báo cáo được trình bày như sau:
Chương 1: Tổng quan: Chương này tập trung vào việc giới thiệu đề tài, xác định
mục tiêu, phạm vi nghiên cứu, khảo sát thực tế, và phân tích các quy trình nghiệp
vụ để hình dung rõ hơn về hoạt động của nhà sách trực tuyến
Chương 2: Cơ sở lý thuyết: Từ những kiến thức được học, từ sự hướng dẫn của
thầy và từ sự tìm tỏi, tìm hiểu về học phần này, chương này sẽ cung cấp nền tảngkiến thức cho việc hiểu rõ hơn về những công nghệ được sử dụng để hình thànhnhà sách trực tuyến
Chương 3: Cài đặt hệ thống: Trong chương này, nhóm sinh viên sẽ tiến hành cài
đặt và triển khai hệ thống dựa trên các thiết kế đã hoàn thành ở các chương trước.Tiếp đến sẽ thực hiện các chức năng chính của hệ thống và kiểm thử hệ thống với
dữ liệu thực tế Kết quả của chương này là một hệ thống hoạt động được với cácchức năng cơ bản
Cuối cùng là phần Kết luận và Tài liệu tham khảo
Trang 9CHƯƠNG 1 TỔNG QUAN
1.1 GIỚI THIỆU ĐỀ TÀI
Trong thời đại số hóa hiện nay, việc tận dụng công nghệ để thuận lợi hóa mọi khíacạnh của cuộc sống là không thể phủ nhận Nhưng hiện nay vẫn còn những cách quản lýbằng sổ sách và mua bán sách truyền thống Trong ngữ cảnh này, việc phát triển một hệthống bán sách trực tuyến không chỉ là một xu hướng mà còn là một giải pháp đáng chú ý
để đáp ứng nhu cầu đọc sách ngày càng đa dạng của cộng đồng Bởi, sách vừa là món ăntinh thần, vừa là chìa khóa để mở ra kho tàng kiến thức nhân loại, như câu nói: “Sách làngười bạn không thể thiếu mỗi người cần phải đọc để khám phá, tu thân và trưởngthành”
Hệ thống bán sách trực tuyến giúp chủ cửa hàng dễ dàng đăng nhập để quản lý,giúp cập nhật thông tin sách cũng như quảng bá sản phẩm Đây là hình thức truyền tảithông tin nhanh chóng, hiệu quả và chi phí thấp Tầm quan trọng đầu tiên của cửa hàngbán sách trực tuyến là sự thuận tiện Với chỉ một vài cú nhấp chuột, khách hàng có thểtruy cập vào hàng ngàn cuốn sách trong mọi lĩnh vực và thể loại Không cần phải dichuyển đến cửa hàng vật lý, không mất nhiều thời gian, khách hàng có thể dễ dàng tìmkiếm, chọn lựa và mua sách thông qua website trực tuyến ngay tại nhà Điều này đặc biệthữu ích đối với những người có cuộc sống bận rộn hoặc sinh sống ở những khu vực xathành phố
Xuất phát từ thực tế trên, nhóm chúng em đã chọn đề tài “Nhà sách trực tuyến
Made in Heaven” để nghiên cứu và thực hiện Hệ thống bán sách trực tuyến là một hình
thức kinh doanh sách hiện đại, mang lại nhiều lợi ích cho cả người mua và người bán.Trong tương lai, cửa hàng bán sách trực tuyến sẽ tiếp tục phát triển và chiếm lĩnh thịtrường sách
1.2 MỤC TIÊU ĐỀ TÀI
Với mong muốn đem lại sự tiện lợi và một dịch vụ hoàn hảo cho khách hàng, nhàsách trực tuyến Made in Heaven sẽ cung cấp các đầu sách phù hợp với nhiều đối tượngkhác nhau, và luôn phát triển không ngừng để phục vụ khách hàng một cách tốt nhất vớinhững tiêu chí như:
- Số lượng, số loại sách phải phong phú, đa dạng và nhiều thể loại
Trang 10- Giá cả hợp lý và chất lượng tốt nhất có thể
- Rút ngắn thời gian tìm kiếm sản phẩm, giao dịch nhanh chóng và an toàn, đảmbảo được quyền lợi của khách hàng
- Có nhiều chương trình khuyến mãi hấp dẫn dành cho khách hàng
Mục tiêu của đề tài này là xây dựng một hệ thống bán sách trực tuyến thông minh,tiện lợi và đáng tin cậy, nhằm mang lại trải nghiệm mua sắm sách tốt nhất cho kháchhàng với những chức năng chính sau:
- Chức năng của người quản lý
+ Quản lý sách : thêm sách, xem sách, tìm kiếm sách, xoá sách
+ Quản lý tài khoản : xem thông tin, đổi mật khẩu
+ Quản lý giỏ hàng: thêm sách, cập nhật số lượng, xoá
1.3 PHƯƠNG PHÁP TIẾP CẬN
Nghiên cứu quy trình quản lý nhà sách trực tuyến, nghiên cứu ngôn ngữ C#ASP.NET, MVC Framework, Entity Framework và mô hình Model - View – Controller
Trang 11- Sử dụng các phương pháp nghiên cứu:
+ Phương pháp đọc tài liệu
+ Phương pháp phân tích mẫu, thực nghiệmNội dung thực hiện cụ thể của đề tài:
- Hiểu được cách sử dụng cơ bản của ngôn ngữ C# ASP.NET, trong đó có các đốitượng, biến, hàm, phương thức, thuộc tính…
- Tìm hiểu cách sử dụng MVC Framework, Entity Framework trong thiết kế và lậptrình website bằng ngôn ngữ C# ASP.NET
- Tìm hiểu cách sử dụng phần mềm Visual Studio 2022 và SQL Server để thiết kếgiao diện và xây dựng các chức năng website quản lý bằng ngôn ngữ C#
- Biết cách sử dụng hệ quản trị CSDL bằng Microsoft SQL Server 2019
- Khảo sát và phân tích yêu cầu quy trình quản lý
Trang 12CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 ASP.NET CORE MVC
2.1.1 ASP.NET
ASP viết đầy đủ là Active Server Pages, và NET là viết tắt của NETwork EnabledTechnologies ASP.NET là một nền tảng web được sử dụng để tạo các trang web, ứngdụng và dịch vụ web Đây là sản phẩm tích hợp của các ngôn ngữ HTML, CSS vàJavaScript ASP.NET hoạt động trên HTTP, sử dụng các lệnh và chính sách của HTTP
để trình duyệt có thể trở thành giao tiếp song phương của máy chủ
ASP.NET được ra đời vào năm 2002 và đến nay đã được nâng cấp thành nhiềuphiên bản khác nhau.Phiên bản ASP.NET đầu tiên được triển khai là 1.0 và phiên bảnASP.NET mới nhất là phiên bản 4.6 ASP.NET được thiết kế để tương thích với giaothức HTTP HTTP là giao thức chuẩn được sử dụng trên tất cả các ứng dụng web Cácứng dụng ASP.NET có thể được viết bằng nhiều ngôn ngữ NET khác nhau Trong đó cócác kiểu ngôn ngữ như C#, VB.NET và J#
ASP.NET hỗ trợ trên 3 dạng phát triển khác nhau:
- Web Forms: ASP.NET cung cấp tương tác hướng sự kiện cho các ứng dụng web,
nó được sử dụng để phát triển ứng dụng có quyền truy cập dữ liệu Đồng thời, kiểuphát triển web này cũng sẽ cung cấp dữ liệu cho máy chủ và sự kiện để tạo nênứng dụng phù hợp Web Forms được phát triển một cách nhanh chóng nhờ vào sửdụng thư viện điều khiển phong phú đánh dấu HTML
- ASP.NET MVC: cung cấp các mẫu MVC (Model View Controller) để xây dựnglên trang web động Những mẫu này được sử dụng cho dữ liệu (Model), giao diệnngười dùng (View) và logic ứng dụng (Controller) Mô hình này sẽ đảm nhậnnhiệm vụ duy trì dữ liệu và logic của ứng dụng Chế độ xem sẽ là giao diện ngườidùng và hiển thị dữ liệu Bộ điều khiển sẽ xử lý yêu cầu của người dùng về phầnView và Model này
- ASP.NET web Pages: được sừ dụng để tạo ra các trang web động kết hợp máy chủvới HTML một cách nhanh chóng ASP.NET web Pages sẽ đánh dấu mã của bạn vàHTML cùng nhau trong cùng một tệp
Trang 13mô ̣t nhiê ̣m vụ riêng biê ̣t và xử lý đô ̣c lâ ̣p với các thành phần khác:
- Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầunối giữa 2 thành phần bên dưới là View và Controller Một model là dữ liệu được
sử dụng bởi chương trình Đây có thể là cơ sở dữ liệu, hoặc file XML bình thườnghay một đối tượng đơn giản Chẳng hạn như biểu tượng hay là một nhân vật tronggame Nó hiê ̣n rõ các thao tác với cơ sở dữ liê ̣u như cho ph攃Āp xem, truy xuất, xử lý
dữ liê ̣u,…
- View: Đây là phần giao diện (theme) dành cho người sử dụng View là phươngtiện hiển thị các đối tượng trong một ứng dụng Nơi mà người dùng có thể lấy đượccác thông tin dữ liê ̣u của MVC thông qua thao tác truy vấn như tìm kiếm hoă ̣cthông qua các website Chẳng hạn như hiển thị một cửa sổ, nút hay văn bản trongmột cửa sổ khác Nó bao gồm bất cứ thứ gì mà người dùng có thể nhìn thấy được.Thông thường, các ứng dụng web sẽ sử dụng MVC View như mô ̣t phần của hê ̣thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chứcnăng ghi nhâ ̣n hoạt đô ̣ng của người dùng để tương tác với phần Controller Tuynhiên, View lại không có mối quan hê ̣ trực tiếp với Controller Đồng thời, nó cũngkhông lấy được dữ liê ̣u từ Controller mà chỉ có chức năng hiển thị yêu cầu vàchuyển cho Controller
Trang 14- Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thôngqua View Một controller bao gồm cả Model lẫn View Nó nhận input và thực hiệncác update tương ứng, đưa ra những dữ liê ̣u phù hợp nhất cho người dùng.
Hình 2: Các thành phần trong mô hình MVC
Trang 151 Đầu tiên, client sẽ gửi một request tới server thông qua Controller.
2 Controller tiếp nhận request, và xử lý luồng đi tiếp theo của yêu cầu Trong trường hợpchỉ chuyển từ trang này sang trang khác mà không yêu cầu gửi và nhận dữ liệu thì lúc nàyController sẽ chuyển hướng lại cho browser và kết thúc luồng Lúc này luồng xử lý sẽ đitheo thứ tự 1à 6 à 7 à 8
3 Nếu request của người dùng yêu cầu phải xử lý dữ liệu thì Controller gọi xuống Model
để lấy dữ liệu Lúc này Model sẽ tương tác với database để lấy dữ liệu, dữ liệu đượcModel gửi về Controller, Controller gọi đến View phù hợp với request kèm theo dữ liệucho View, View sẽ lắp dữ liệu tương ứng vào HTML và gửi lại một HTML choController sau khi thực hiện xong nhiệm vụ của mình Cuối cùng Controller sẽ trả kết quả
về Browser Lúc này luồng xử lý sẽ đi từ 1 à 2 à 3 à 4 à 5 à 6 à 7 à 8
4 Nếu request của người dùng chỉ yêu cầu dữ liệu nhưng không chuyển trang thì thay vìController sẽ trả dữ liệu về cho View thì Controller sẽ respone lại cho trình duyệt thôngqua API, dữ liệu trả về thường sẽ là dạng JSON Luồng xử lý lúc này sẽ là 1 à 2 à 3 à 4
à 5 à 8
Hình 3: Luồng xử lý trong MVC
Trang 162.1.3 ASP.NET CORE MVC
ASP.NET Core MVC là một framework “nhẹ”, opensource, giúp tối ưu hóa hiệunăng của ứng dụng với ASP.NET Core ASP.NET Core MVC cung cấp các tính năngdựa trên mô hình xây dựng website động cho ph攃Āp phân chia rõ ràng các khối lệnh Nócung cấp cho bạn toàn quyền kiểm soát đánh dấu, hỗ trợ phát triển với TDD-friendly và
sử dụng các tiêu chuẩn web mới nhất
ASP.NET Core MVC có những tính năng sau:
1 Routing
Routing sẽ xác định URL và điều khiển thông tin tương ứng với URL mà ngườidùng web nhập vào Tất cả các cấu hình Routing của một ứng dụng ASP.NETMVC được lưu trữ trong RouteTable, nó đóng vai trò định tuyến các URL để xácđịnh các lớp xử lý tương ứng khi có request được gửi đến từ người dùng web
Ví dụ:
Trang 17public string Password { get; set; }
[Display(Name = "Remember me? on cmoon.net")]
public bool RememberMe { get; set; }
}
Và model được gọi trong action của controller:
public async Task<IActionResult> Login(LoginViewModel model, string
Filters giúp các lập trình viên đóng gói “cross-cutting concerns” giống như là xử
lý ngoại lệ và phân quyền Filter được kích hoạt để chạy trước và sau các actioncủa controller Ví dụ về phân quyền [Authorize] được đặt trước action
Ví dụ:
Trang 18public class AccountController : Controller
{
6 Razor view engine
SP.NET Core MVC views sử dụng Razor view engine để render các code htmlđến view.Razor được sử dụng để tự động tạo nội dung web trên máy chủ
Razor được tạo sử dụng Tag Helper nhìn như phần tử HTML thuần Nó thao tácvới các phần tử HTML như thêm mới phần tử HTML hay thay thế các nội dung cósẵn bằng một cái mới
8 View Components
View Component là cơ chế tái sử dụng trong Razor Pages (cùng với PartialPages) View Component hướng tới xây dựng các thành phần tương đối độc lập,phức tạp với các logic xử lý dữ liệu riêng Theo logic này, ta có thể chia giao diện
ra thành các View Component (header, menu, tag cloud, footer …) và phát triểnđộc lập Sau đó gh攃Āp nối chúng vào layout hoặc nhúng vào một số trang cụ thể
2.2 ENTITY FRAMEWORK CORE
2.2.1 ENTITY FRAMEWORK CORE LÀ GÌ?
Entity Framework Core (EF Core) là một framework ánh xạ cơ sở dữ liệu - đối tượngmới cho NET Nó hỗ trợ các truy vấn LINQ, theo dõi thay đổi, cập nhật và thay đổi cấutrúc EF Core hoạt động với SQL Server/ SQL Azure, SQLite, Azure Cosmos DB,MySQL, PostgreSQL và nhiều cơ sở dữ liệu khác thông qua mô hình plugin của cơ sở dữliệu
Entity Framework Core mang những đặc điểm sau: