đồ án 2 thiết kế và xây dựng hệ thống với netcore cho cho ứng dụng tư vấn thực phẩm chức năng

37 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 thiết kế và xây dựng hệ thống với netcore cho cho ứng dụng tư vấn thực phẩm chức năng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HỆ THỐNG THÔNG TIN

BÁO CÁO ĐỒ ÁN 2

ĐỀ TÀI: Thiết kế và xây dựng hệ thống với NetCore chocho ứng dụng tư vấn thực phẩm chức năng

Giảng viên hướng dẫn: ThS Nguyễn Công Hoan

Sinh viên thực hiện: Nguyễn Bảo Duy – 19520488

🙡 TP Hồ Chí Minh, 12/2023 🙡

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HỆ THỐNG THÔNG TIN

BÁO CÁO ĐỒ ÁN 2

ĐỀ TÀI: Thiết kế và xây dựng hệ thống với NetCore chocho ứng dụng tư vấn thực phẩm chức năng

Giảng viên hướng dẫn: ThS Nguyễn Công Hoan

Sinh viên thực hiện: Nguyễn Bảo Duy – 19520488

🙡 TP Hồ Chí Minh, 12/2023 🙡

Trang 3

LỜI CẢM ƠN

Em xin gửi lời cảm ơn tới thầy Nguyễn Công Hoan đã giúp đỡ, hướng dẫn,định hướng cách làm việc của em trong suốt quá trình thực hiện đồ án Em vô cùngbiết ơn thầy vì đã tận tình chỉ dẫn em thực hiện đề tài này Trong quá trình thựchiện của em còn hạn chế và còn nhiều khó khăn nên không tránh khỏi những thiếusót nên em mong thầy sẽ đưa ra những góp ý, hướng dẫn để em có thêm cho mìnhnhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc Em xin chân thànhcảm ơn thầy!

TP Hồ Chí Minh, tháng 12 năm 2023 Sinh viên thực hiện

Nguyễn Bảo Duy

Trang 4

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Nguyễn Công Hoan

Trang 5

2.6 JSON Web Token 13

Chương 3 Phân tích và thiết kế hệ thống 14

3.1 Xây dựng hệ thống 14

3.1.1 Kiến trúc hệ thống 14

3.1.2 Mô tả chi tiết 14

3.2 Phân tích yêu cầu 14

Trang 6

3.2.1 Yêu cầu chức năng 14

3.2.2 Yêu cầu phi chức năng 15

3.4.6 Thêm sản phẩm vào giỏ hàng 20

3.4.7 Sửa sản phẩm trong giỏ hàng 21

3.4.8 Xóa sản phẩm trong giỏ hàng 21

Chương 4 Xây dựng website 26

4.1 Giao diện bên phía người dùng 26

4.1.1 Trang chủ 26

4.1.2 Đăng nhập 27

4.1.3 Đăng ký 28

4.1.4 Tin tức 28

Trang 7

5.3 Ưu điểm của đồ án 33

5.4 Nhược điểm của đồ án 33

5.5 Hướng phát triển đề tài 33

TÀI LIỆU THAM KHẢO 34

Trang 8

Chương 1 Tổng quan về đề tài

1.1.Lý do chọn đề tài

Trong thời gian công nghệ ngày càng phát triển, chúng ta thường coi sứckhỏe là ưu tiên sau cùng trong cuộc sống hằng ngày Vì thế em chọn đề tài này đểmọi người có thể dễ dàng tăng cường sức khỏe của bản thân một cách nhanhchóng tiện lợi và hiệu quả.

1.2.Mục tiêu

- Tìm hiểu và nghiên cứu cách thiết kế một hệ thống NetCore.

- Sử dụng các nghiên cứu đó để xây dựng hệ thống với NetCore cho cho ứngdụng tư vấn thực phẩm chức năng.

Trang 9

- Khảo sát các website bán hàng có trên thị trường để xác định các yêu cầu,tính năng của ứng dụng.

- Nghiên cứu các công nghệ cần thiết để xây dựng hệ thống Backend.- Xây dựng hệ thống Backend kết nối với cơ sở dữ liệu.

- Thiết kế giao diện website cho người dùng và cho quản trị viên

1.6.Công nghệ

- Front-end: Reactjs với Redux.- Back-end: ASP NetCore- Database: SQL Server-

Trang 10

Chương 2 Công nghệ sử dụng

2.1 ASP.NET Core

2.1.1 Giới thiệu chung

ASP.NET Core là một framework đa nền tảng, mã nguồn mở của Microsoft để xây dựng các ứng dụng hiện đại, sử dụng điện toán đám mây và kết nối

internet, đi kèm với rất nhiều tính năng phục vụ nhu cầu phát triển một ứng dụng web một hệ thống Backend cho các ứng dụng hiện đại Các tiện ích có được khi sử dụng ASP.NET Core là:

● Đa nền tảng: ASP.NET Core được thiết kế để có thể chạy trên Windows,

Linux và MacOs Cung cấp tính linh hoạt khi chọn môi trường xây dựngvà triển khai ứng dụng.

● Mã nguồn mở: ASP.NET Core là mã nguồn mở, thúc đẩy sự cộng tác

của cộng đồng và cho phép các nhà phát triển đóng góp vào việc cải tiếnnó.

● Kiến trúc mô-đun và lightweight: Framework này bao gồm một thiết kế

mô-đun, cho phép các nhà phát triển chỉ đưa vào các thành phần cần thiếtcho ứng dụng của họ Kiến trúc lightweight này giúp cải thiện hiệu suất,khả năng mở rộng và dễ bảo trì.

● Hỗ trợ Container: ASP.NET Core hỗ trợ các công nghệ container hóa

như Docker, cho phép các nhà phát triển đóng gói các ứng dụng cùng vớicác phần phụ thuộc của chúng Điều này giúp việc triển khai trở nên đơngiản hơn và nâng cao khả năng mở rộng cũng như tính nhất quán trên cácmôi trường khác nhau.

2.1.2 Các tính năng:

Razor Pages là một mô hình lập trình trang nhẹ và trực quan trong

Trang 11

ASP.NET Core giúp đơn giản hóa việc phát triển các trang web, đặc biệt đối với các tình huống có định tuyến và logic ít phức tạp hơn so với mô hình Model-View-Controller (MVC) Razor Pages được thiết kế để giúp các nhà phát triển xây dựng ứng dụng web dễ dàng hơn với trọng tâm là sự đơn giản và năng suất.

Trong Razor Pages, mỗi trang được liên kết với một tệp Razor (.cshtml)chứa cả đánh dấu HTML và mã C# để xử lý các yêu cầu và hiển thị trang Tệp này được cấu trúc theo cách kết hợp View và Controller thành một đơn vị độc lập, duy nhất.

Trang Razor tuân theo mô hình code-behind, trong đó mã C# liên kết với một trang được đặt trong một tệp riêng biệt có phần mở rộng

".cshtml.cs" Sự tách biệt này giúp duy trì cấu trúc mã rõ ràng và có tổ chức.Trang Razor tích hợp liền mạch với các tính năng khác của ASP.NET Core, chẳng hạn như xác thực, ủy quyền và phần mềm trung gian Các nhà phát triển có thể tận dụng toàn bộ khả năng mà khung này cung cấp.

Razor Pages cung cấp một cách tiếp cận thực tế để phát triển web, đặcbiệt đối với các tình huống trong đó sự phức tạp của mô hình MVC có thể là không cần thiết Mặc dù MVC vẫn là một lựa chọn mạnh mẽ cho các ứng dụng mở rộng hơn, Razor Pages cung cấp cách tiếp cận hợp lý và tập trung để xây dựng các trang web cụ thể với cấu trúc mã rõ ràng và có thể bảo trì Các nhà phát triển có thể lựa chọn giữa Razor Pages và MVC dựa trên yêu cầu và độ phức tạp của dự án của họ.

Dependency Injection (DI) là một mẫu thiết kế và một kỹ thuật được sử dụng trong phát triển phần mềm để đạt được loose coupling giữa các thành phần và tạo cho khả năng kiểm tra và bảo trì tốt hơn Trong ASP.NET Core, Dependency

Trang 12

Injection là một tính năng tích hợp giúp đơn giản hóa việc quản lý các phần phụ thuộc của đối tượng và thúc đẩy việc sử dụng các thành phần mô-đun, được liên kết lỏng lẻo.

ASP.NET Core đi kèm với một dependency injection container nhẹ và tích hợp sẵn để quản lý các dependency của các thành phần trong toàn bộ ứng dụng.

DI Container trong ASP.NET Core được ghi nhận và cấu hình trong lớp “Startup”, cụ thể là trong phương thức configureServices Phương thức này được gọi trong thời gian chạy để định cấu hình các services của ứng dụng.

Các services trong ASP.NET Core đại diện cho các dependency hoặc componenents có thể được đưa vào các phần khác của ứng dụng Các services thường được đăng ký trong vùng chứa DI trong quá trình khởi động ứng dụng.

Các services có thể thuộc một trong ba kiểu vòng đời sau:

● Transient: Một instance mới của services sẽ được tạo mỗi khi được yêu

● Scoped: Một instance duy nhất được tạo cho từng scope (thông thường,

phạm vi đó tương đương với một yêu cầu web).

● Singleton: Một instance duy nhất được tạo và chia sẻ trên toàn bộ ứng

Middleware là một khái niệm cơ bản trong ASP.NET Core, đại diện cho một loạt các thành phần tạo thành một đường dẫn để xử lý các yêu cầu và phản hồi Các thành phần này có thể thực hiện nhiều tác vụ khác nhau như định tuyến, xác thực, ghi nhật ký, v.v Phần mềm trung gian được tổ chức theo một đường dẫn trong đó mỗi thành phần xử lý yêu cầu và chuyển nó đến thành phần phần mềm trung gian tiếp theo.

Các components của Middleware là các lớp triển khai giao diện

Trang 13

IMiddleware hoặc một đại biểu phù hợp với chữ ký của Func<HttpContext, Func<Task>, Task> Mỗi thành phần trong quy trình có thể xử lý yêu cầu đến,sửa đổi phản hồi hoặc thực hiện các tác vụ khác.

ASP.NET Core bao gồm một tập hợp các thành phần phần mềm trung gian tích hợp sẵn để xử lý các tác vụ thông thường Một số ví dụ bao gồm:

UseRouting: Thiết lập định tuyến cho ứng dụng.

UseAuthentication và UseAuthorization: Cho phép xác thực và ủy quyền.

Một thư viện ORM là một thư viện bao gồm các tính năng cần thiết để thao tác dữ liệu, do vậy khi dùng ORM ta không cần sử dụng SQL nữa Ta có thể tương tác trực tiếp với các object như các object khác trong ngôn ngữ lập trình ta đang sử dụng Thư viện ORM sẽ chuyển đổi các câu lệnh truy vấn thành các câu lệnh SQL và ánh xạ kết quả truy vấn trở lại các đối tượng.

Entity Framework Core (EF Core) là một framework ánh xạ quan hệ đốitượng (ORM) đa nền tảng, mã nguồn mở dành cho các ứng dụng NET Đây làphiên bản nhẹ, có thể mở rộng và đa nền tảng của công nghệ truy cập dữ liệu Entity Framework EF Core được thiết kế để đơn giản hóa quá trình làm việc với cơ sở dữ liệu và cho phép các nhà phát triển làm việc với cơ sở dữ

Trang 14

liệu bằng các đối tượng NET.

2.3.Clean Architecture

Clean Architecture là một kiến trúc nhằm tạo ra các hệ thống phần mềm có thể mở rộng, có thể bảo trì và linh hoạt bằng cách tách biệt các mối quan hệ và tổ chức code theo cách giảm thiểu sự phụ thuộc sự phụ thuộc giữa các đối tượng và các layer, cho phép chúng ta khả năng cô lập kiểm thử.

Clean Architecture chỉ ra rằng sự phụ thuộc hướng về trung tâm dựa trên Nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle Vòng tròn bên trong không hề biết gì về các vòng tròn bên ngoài Hơn nữa, khi chúng ta truyền dữliệu qua một ranh giới (Boundary), nó luôn ở dạng thuận tiện nhất cho vòng tròn phía trong Trong Clean Architecture sẽ bao gồm 4 layer:

Entities: Các Entities đại diện cho các đối tượng kinh doanh cốt lõi và chứa

các quy tắc kinh doanh Chúng nằm ở trung tâm của kiến trúc và độc lập vớicác lớp bên ngoài.

Use Cases: Các Use Cases sử dụng chứa các quy tắc kinh doanh dành riêng

cho ứng dụng Chúng điều phối luồng dữ liệu giữa các thực thể và đảm bảorằng các quy tắc kinh doanh được áp dụng phù hợp.

Trang 15

Interface Adapters: Interface Adapters chuyển đổi dữ liệu giữa các Use

Cases và Entities Chúng chịu trách nhiệm liên lạc với các yếu tố bên ngoài,chẳng hạn như cơ sở dữ liệu hoặc giao diện người dùng.

Frameworks và Drivers: Lớp ngoài cùng chứa các frameworks, công cụ và

drivers bên ngoài như cơ sở dữ liệu, UI framworks hoặc web framworks Cácyếu tố này có thể thay đổi mà không ảnh hưởng đến logic kinh doanh cốt lõi.

Docker là một nền tảng mã nguồn mở cho phép xây dựng, vận chuyển vàchạy các ứng dụng trong các container Docker cho phép tách các ứng dụng khỏicơ sở hạ tầng để có thể cung cấp phần mềm nhanh chóng Với Docker, ta có thểquản lý cơ sở hạ tầng của mình theo cách giống như ta quản lý các ứng dụng củamình.

Một số tính năng chính của Docker bao gồm:

● Mã nguồn mở: Docker cho phép cộng đồng đóng góp và cải tiến nó.

● Đóng gói ứng dụng: Docker cho phép đóng gói và vận chuyển các ứng dụng

của mình một cách đơn giản, nhẹ và nhất quán.

● Vòng đời phát triển nhanh và hiệu quả: Docker giúp rút ngắn thời gian phát

triển bằng cách cho phép các lập trình viên làm việc trong các môi trườnggiống nhau sử dụng các local container cung cấp các ứng dụng vàdependency cần thiết.

● Phân tách trách nhiệm: Docker cho phép phân tách trách nhiệm giữa các

nhóm khác nhau.

● Bảo mật: Docker cung cấp các tính năng bảo mật để bảo vệ các ứng dụng và

dữ liệu của.

● Khả năng mở rộng: Docker cho phép mở rộng các ứng dụng của mình một

cách linh hoạt thông qua việc cập nhật các image một cách nhanh chóng.

Trang 16

Quá trình đóng gói một ứng dụng thành một image trong Docker sẽ tạo ramột image chứa tất cả các thành phần cần thiết để chạy ứng dụng đó, bao gồm mãnguồn, thư viện, biến môi trường và các tệp cấu hình Điều này cho phép triển khaiứng dụng của mình một cách dễ dàng và nhất quán trên bất kỳ máy chủ nào cóDocker được cài đặt.

Để đóng gói một ứng dụng thành một image Docker, ta cần thực hiện các bướcsau:

● Tạo một tệp Dockerfile trong thư mục chứa mã nguồn của ứng dụng TệpDockerfile này sẽ chứa các chỉ thị để xây dựng image Docker.

● Trong tệp Dockerfile, chỉ định image mà ta muốn sử dụng làm base choimage của cần build Image base này có thể là một image hệ điều hành hoặcmột image có sẵn từ kho lưu trữ Docker Hub ( ASP.NET ).

● Sao chép mã nguồn và các tệp cấu hình của ứng dụng vào image.● Cài đặt các thư viện cần thiết cho ứng dụng.

● Định nghĩa biến môi trường và các thông số khác cho ứng dụng.

● Khai báo lệnh để chạy ứng dụng khi container được khởi chạy từ image.

Trang 18

Chương 3 Phân tích và thiết kế hệ thống3.1.Xây dựng hệ thống

2 Application

Lớp ứng dụng nằm ở giữa lớp trình bày và lớpmiền và có chức năng trung gian giữa chúng Về cơ bản, nó duy trì dữ liệu giữa các lớp tương ứng nhưng độc lập với cơ sở hạ tầng vàlớp trình bày.

3 Infrastructure

Tất cả các hệ thống tệp và cơ sở dữ liệu được cấu hình ở lớp cơ sở hạ tầng Nó hỗ trợ ứng dụng tương tác với các thành phần bên ngoài để duy trì quy trình làm việc và xử lý dữ liệu.4 Presentation Như tên đã xác định, lớp trình bày dùng để

Trang 19

viết mã giao diện ASP.NET Core được sử dụng để xây dựng giao diện Bạn nên thuê một nhà phát triển NET chuyên dụng cho việcđó vì họ đảm bảo GUI hấp dẫn và mượt mà đểmang lại tỷ lệ hài lòng cho người dùng tốt hơn.

3.2.Phân tích yêu cầu

3.2.1 Yêu cầu chức năng

Bảng 3.2.1.1 Yêu cầu chức năng

Nhóm chức năng Chức năng Mô tả

giỏ hàng

Người dùng thêm sản phẩm mới vàogiỏ hàng

Sửa sản phẩm tronggiỏ hàng

Người dùng sửa thông tin sản phẩmtrong giỏ hangf

Xóa sản phẩm tronggiỏ hàng

Người dùng xóa sản phẩm có tronggiỏ hàng

Sửa tin tức Quản lý sửa tin tức được chọnXóa tin tức Quản lý xóa tin tức được chọn

Trang 20

3.2.2 Yêu cầu phi chức năng

● Tính bảo mật: Phải đảm bảo an toàn thông tin dữ liệu của người dùng,ngăn chặn các cuộc tấn công từ bên ngoài, giảm thiểu tối đa rủi ro, rò rỉthông tin tài khoản người dùng.

● Tính tiện dụng: Phần mềm thân thiện với người dùng, dễ sử dụng.● Tính hiệu quả: Đảm bảo tốc độ xử lý ổn định, nhanh chóng.

● Tính tương thích: Ứng dụng có thể chạy ổn định và tương thích với nhiềunền tảng trên nhiều hệ điều hành khác nhau.

3.3.Sơ đồ use-case

Hình 3.2.2.1 Sơ đồ use-case

Trang 21

Hình 3.2.2.2 Sơ đồ phân rã use-case

3.3.1 Danh sách actor

Bảng 3.3.1.1 Danh sách Actor

T Tên actor Ý nghĩa

1 Người dùng Là người dùng sử dụng website

2 Quản trị viên Là quản trị viên quản lý website admin

3.3.2 Danh sách use-case

Bảng 3.3.2.1 Danh sách use-case

T Tên use-case Ý nghĩa

1 Đăng ký Đăng ký tài khoản mới cho người dùng2 Đăng nhập Người dùng đăng nhập vào tài khoản

3 Tìm kiếm Người dùng nhập thông tin để tìm kiếm sản phẩmtheo nhu cầu

Trang 22

4 Xem tin tức Trang tin tức cho người dùng5 Đánh giá sản phẩm Người dùng cho đánh giá sản phẩm6 Thêm sản phẩm vào

giỏ hàng Người dùng thêm sản phẩm mới vào giỏ hàng7 Sửa sản phẩm trong

11 Sửa sản phẩm Quản lý sửa sản phẩm được chọn12 Xóa sản phẩm Quản lý xóa sản phẩm được chọn13 Thêm tin tức Quản lý thêm tin tức mới

14 Sửa tin tức Quản lý sửa tin tức được chọn15 Xóa tin tức Quản lý xóa tin tức được chọn

3.4.Sơ đồ use-case

3.4.1 Đăng ký

Bảng 3.4.1.1 Đặc tả use-case Đăng ký

Tên use-case Đăng ký

Mô tả Người dùng đăng ký tài khoản mớiLuồng chính 1 Người dùng nhấn vào nút đăng ký

2 Người dùng nhập thông tin để đăng ký tài khoản3 Nhấn đăng ký để tiến hành đăng ký

4 Thông báo đăng ký thành công

Luồng phụ Thông báo lỗi khi người dùng nhập sai định dạngYêu cầu đặc

Không cóĐiều kiện trước Không có

Điều kiện sau Tạo một tài khoản mới cho người dùngMở rộng Không có

3.4.2 Đăng nhập

Bảng 3.4.2.1 Đặc tả use-case Đăng nhập

Trang 23

Tên use-case Đăng nhập

Mô tả Người dùng đăng nhập vào tài khoảnLuồng chính 1 Người dùng nhấn vào nút đăng nhập

2 Người dùng nhập thông tin để đăng nhập tài khoản3 Nhấn đăng nhập để tiến hành đăng nhập

4 Thông báo đăng nhập thành công

Luồng phụ 3.1 Thông báo lỗi khi người dùng nhập sai định dạng3.2 Thông báo lỗi khi tên tài khoản hoặc mật khẩu saiYêu cầu đặc

Không có

Điều kiện trước Người dùng đã có một tài khoản trước đóĐiều kiện sau Tạo một tài khoản mới cho người dùngMở rộng Không có

3.4.3 Tìm kiếm

Bảng 3.4.3.1 Đặc tả use-case Tìm kiếm

Tên use-case Tìm kiếm

Mô tả Người dùng tiến hành tìm kiếm sản phẩm

Luồng chính 1 Người dùng nhập tên sản phẩm vào ô tìm kiếm2 Người dùng chọn các bộ lọc, tùy chính

3 Hiển thị danh sách các sản phẩm sau khi được lọcLuồng phụ Không có

Yêu cầu đặcbiệt

Không cóĐiều kiện trước Không có

Điều kiện sau Dang sách các sản phẩm sau khi được lọcMở rộng Không có

3.4.4 Xem tin tức

Bảng 3.4.4.1 Đặc tả use-case Xem tin tức

Tên use-case Xem tin tức

Mô tả Người dùng xem tin tức từ hệ thống

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan