Xây dựng web bán hàng với Java Springboot/API và Angular

67 0 0
Tài liệu đã được kiểm tra trùng lặp
Xây dựng web bán hàng với Java Springboot/API và Angular

Đ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

Xây dựng web bán hàng với Java Springboot/API và Angular Một trong những bài học quan trọng nhất là sự hiểu biết sâu rộng về Angular và Spring Boot. Từ việc xây dựng giao diện người dùng đến triển khai các API, em đã phải thấu hiểu cách hoạt động của cả hai công nghệ này. Việc sử dụng REST API để quản lý dữ liệu đã giúp em hiểu rõ hơn về cách tương tác giữa client và server, cũng như khả năng mở rộng của trang web. Tầm quan trọng của hiệu suất và bảo mật cũng được nhấn mạnh. Việc tối ưu hóa hiệu suất giúp trang web hoạt động mượt mà và nhanh chóng, trong khi các biện pháp bảo mật giữ cho dữ liệu và thông tin cá nhân của người dùng an toàn.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNGKHOA CÔNG NGHỆ THÔNG TIN

ĐỒNG NGỌC KHANH

Xây dựng web bán hàngvới Java Springboot/API và

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌCNGÀNH KỸ THUẬT PHẦN MỀM

THÁI NGUYÊN, 5/2024

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: Th.S NGUYỄN VĂN VIỆT

Thái Nguyên, năm 2024

Ảnh 3x4

Trang 3

LỜI CẢM ƠN

Với lòng biết ơn sâu sắc, em xin gửi lời cảm ơn chân thành nhất đến thầyNguyễn Văn Việt đã hướng dẫn, giúp đỡ và tạo điều kiện cho em trong suốt quátrình thực hiện đồ án tốt nghiệp này Sự nhiệt tình và kiến thức quý báu mà thầy đãtruyền đạt không chỉ là nguồn động viên lớn lao giúp em vượt qua những khó khăn,mà còn là kim chỉ nam cho bước đường tương lai của em Em xin cam kết sẽ ápdụng những kiến thức đã học được vào thực tiễn một cách có ích nhất, góp phần vàosự phát triển của ngành và xã hội.

Xin trân trọng cảm ơn!

LỜI CAM ĐOAN

Em xin cam đoan báo cáo này là kết quả của quá trình tổng hợp và nghiêncứu của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết, kiến thức dướisự hướng dẫn tận tình của thầy giáo Th.s Nguyễn Văn Việt Trong báo cáo có sửdụng một số tài liệu tham khảo như đã nêu trong phần tài liệu tham khảo.

Sinh viên thực hiện

Ký và ghi rõ họ tên

Trang 4

LỜI NÓI ĐẦU

Dự án Xây dựng Web Bán hàng sử dụng Java Spring Boot/APIvà Angular nhằm mục đích tạo ra một nền tảng đầy đủ chức năngvà linh hoạt cho việc triển khai cửa hàng trực tuyến Bằng cách kếthợp Java Spring Boot/API, chúng tôi cung cấp các công cụ mạnhmẽ để quản lý sản phẩm, đơn hàng và khách hàng, cùng với khảnăng xử lý logic kinh doanh phức tạp Angular được lựa chọn chophần giao diện người dùng, giúp tạo ra trải nghiệm tương tác tốtnhất cho người dùng cuối.

Mục tiêu của tôi không chỉ là đơn giản hóa quá trình triểnkhai và tùy chỉnh, mà còn là mở ra khả năng mở rộng linh hoạt,đáp ứng nhu cầu phát triển của các doanh nghiệp từ nhỏ đếnlớn.Tôi mong muốn tạo ra một nền tảng đáng tin cậy và hiệu quả,từ việc duyệt sản phẩm đến việc thanh toán, nhằm mang lại trảinghiệm người dùng tốt nhất và đồng thời thúc đẩy sự phát triểnbền vững của thị trường thương mại điện tử

Trang 5

MỤC LỤC

LỜI CẢM ƠN

LỜI CAM ĐOAN

LỜI NÓI ĐẦU

DANH MỤC HÌNH ẢNH

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

1.1 Kiến thức cơ bản về ngôn ngữ Lập trình 8

1.1.1 Tổng quan ngôn ngữ java 8

2.1.3 Định nghĩa thuật ngữ và các từ viết tắt 18

2.1.4 Tài liệu tham khảo 19

2.1.5 Mô tả tài liệu 19

2.2 Tổng quan về hệ thống 19

2.2.1 Phát biểu bài toán 19

2.2.2 Mục tiêu hệ thống 20

2.2.3 Phạm vi của hệ thống 21

Trang 6

2.4.3 Thiết kế Cơ sở dữ liệu của hệ thống 53

2.5 Các yêu cầu phi chức năng 53

Yêu cầu bảo mật 53

Yêu cầu sao lưu 53

Trang 7

3.1 Tổng quan về Website 56

3.2 Giao diện website 57

3.2.1 Giao diện trang chủ 57

3.2.2 Quản lý thông tin 58

3.2.3 Giỏ hàng 58

3.2.4 Tạo đơn hàng 59

3.2.5 Đăng ký tài khoản 60

3.2.6 Đăng nhập tài khoản 60

3.2.7 Chức năng tạo danh mục 61

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1: Luồng Hoạt Động Của Spring Boot 10

Hình 2: Tác nhân hệ thống 21

Hình 3: UseCase Tổng Quát 22

Hình 4: UseCase phân rã người dùng và khách vãng lai 23

Hình 5: UseCase phân rã quản trị viên 24

Hình 6: Biểu Đồ Lớp 25

Hình 7: Biểu đồ trình tự đăng nhập 26

Hình 8: Biểu đồ hoạt động chức năng đăng nhập 27

Hình 9: Biểu đồ trình tự chức năng đăng ký 28

Hình 10: Biểu đồ hoạt động chức năng đăng ký 29

Hình 11: Biểu đồ trình tự chức năng tìm kiếm 29

Hình 12: Biểu đồ hoạt động chức năng tìm kiếm 30

Hình 13: Biểu đồ trình tự chức năng thêm sản phẩm vào giỏ hàng 30

Hình 14: Biểu đồ hoạt động chức năng thêm sản phẩm vào giỏ hàng 31

Hình 15: Biểu đồ trình tự chức năng đặt hàng 32

Hình 16: Biểu đồ hoạt động chức năng đặt hàng 33

Hình 17: Biểu đồ trình tự chức năng cập nhật thông tin khách hàng 34

Hình 18: Biểu đồ hoạt động chức năng cập nhật thông tin khách hàng 35

Hình 19: Biểu đồ trình tự chức năng xoá tài khoản khách hàng 36

Hình 20: Biểu đồ hoạt động chức năng xoá tài khoản khách hàng 36

Hình 21: Biểu đồ trình tự chức năng thêm sản phẩm 37

Hình 22: Biểu đồ hoạt động chức năng thêm sản phẩm 38

Hình 23: Biểu đồ trình tự chức năng cập nhật sản phẩm 39

Hình 24: Biểu đồ trình tự hoạt động thêm sản phẩm 40

Hình 25: Biểu đồ trình tự chức năng xoá sản phẩm 40

Hình 26: Biểu đồ hoạt động chức năng xoá sản phẩm 41

Hình 27: Biểu đồ trình tự chức năng thêm danh mục 41

Hình 28: Biểu đồ hoạt động chức năng thêm danh mục 42

Hình 29: Biểu đồ trình tự chức năng cập nhật danh mục 43

Trang 9

Hình 31: Biểu đồ trình tự chức năng xoá danh mục 44

Hình 32: Biểu đồ hoạt động chức năng xoá danh mục 45

Hình 33: Biểu đồ trình tự chức năng thống kê 46

Hình 34: Biểu đồ hoạt động chức năng thống kê 47

Hình 35: Thiết kế Cơ sở dữ liệu của hệ thống 53

Hình 36: Giao diện trang chủ của hệ thống web 57

Hình 37: Giao diện chi tiết sản phẩm 57

Hình 38: Giao diện Quản lý thông tin 58

Hình 39: Giao diện giỏ hàng 58

Hình 40: Giao diện tạo đơn hàng 59

Hình 41: Giao diện đơn hàng 59

Hình 42: Giao diện tài khoản đăng ký 60

Hình 43: Giao diện phần đăng nhập tài khoản 60

Hình 44: Giao diện danh sách danh mục 61

Hình 45: Giao diện thêm mới danh mục 61

Hình 46: Giao diện danh sách sản phẩm 62

Hình 47: Giao diện thêm sản phẩm 62

Hình 48: Giao diện tài khoản 63

Hình 49: Giao diện phần đơn hàng 63

Trang 10

CHƯƠNG I: CƠ SỞ LÝ THUYẾT1.1 Kiến thức cơ bản về ngôn ngữ Lập trình1.1.1 Tổng quan ngôn ngữ java

Java là một ngôn ngữ lập trình hướng đối tượng (ObjectOriented), được thiết kế để có càng ít phụ thuộc thực thi càng tốt.Ngôn ngữ lập trình Java có mục đích chung cho phép các nhà pháttriển ứng dụng viết một lần, chạy ở mọi nơi – nghĩa là mã Java đãbiên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java màkhông cần biên dịch lại.

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ởSun Microsystems vào năm 1991 Ban đầu, Java được tạo ra nhằmmục đích viết phần mềm cho các sản phẩm gia dụng và có tên làOak Sau đó, vào năm 1994, Java được phát hành và đến năm2010, nó được Oracle mua lại từ Sun Microsystems Java được tạora với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once,Run Anywhere – WORA) Chương trình phần mềm viết bằng Java cóthể chạy trên mọi nền tảng khác nhau thông qua một môi trườngthực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nềntảng đó.

Một số đặc điểm quan trọng của Java:

1.Hướng đối tượng hoàn toàn: Java sử dụng các cú pháptương tự C++, nhưng loại bỏ các thao tác với con trỏ để đảm bảotính an toàn và dễ sử dụng hơn.

2.Độc lập phần cứng và hệ điều hành: Chương trình viết bằngJava có thể chạy trên nhiều môi trường khác nhau, từ máy tính đếnđiện thoại di động, nhờ khả năng “cross-platform”.

3.Ngôn ngữ thông dịch: Java thuộc loại ngôn ngữ thông dịch,cho phép viết mã một lần và chạy trực tiếp mà không cần biêndịch trước.

4.Tính an toàn và bảo mật: Java có cơ chế thu gom rác tựđộng, đa luồng, và được thiết kế với tính an toàn và bảo mật cao.

Trang 11

1.1.2 Spring boot

Spring Boot xuất hiện vào năm 2012, là "con đẻ" của Juergen Hoeller và độingũ Spring Framework, dựa trên nền tảng Spring Framework 3.1 nhằm đơn giảnhóa việc phát triển ứng dụng web Java Mục tiêu chính của Spring Boot là giúp lậptrình viên tạo ra ứng dụng web Java nhanh chóng, dễ dàng và hiệu quả hơn.

Nhờ cung cấp nhiều tính năng tự động hóa, giảm thiểu cấu hình thủ công vàboilerplate code, Spring Boot mang đến lợi ích to lớn về mặt năng suất, giúp tiếtkiệm thời gian và công sức cho lập trình viên.

Điểm nổi bật của Spring Boot nằm ở khả năng khởi động ứng dụng độc lậpbằng java -jar, tự động cấu hình nhiều thành phần Spring, và cung cấp các starterdependencies, annotations cùng cấu hình mặc định để đơn giản hóa việc bắt đầu chongười mới.

Hơn nữa, Spring Boot còn hỗ trợ đa dạng tính năng như REST APIs, SpringSecurity, database access, messaging và cloud integration, đảm bảo tính linh hoạt vàdễ dàng mở rộng để đáp ứng nhu cầu thay đổi.

Spring Boot cũng có một số hạn chế như kích thước ứng dụng lớn hơn so vớiứng dụng Java truyền thống, mức độ học tập ban đầu cao hơn và tính phụ thuộc vàoSpring Framework Nhưng Spring Boot vẫn là lựa chọn hàng đầu cho các lập trìnhviên Java trong việc xây dựng các ứng dụng web hiện đại bởi những ưu điểm vượttrội về năng suất, tính dễ sử dụng, linh hoạt và cộng đồng hỗ trợ lớn mạnh.

Luồng đi của Spring boot:

Trang 12

Hình 1: Luồng Hoạt Động Của Spring Boot

 Đầu tiên khi yêu cầu của người dùng có thể được gửi đến ứng dụng spring bootbằng nhiều cách khác nhau chẳng hạn như: Giao diện người dùng (UI), RestAPI, Soket, … Các request đó được tiếp nhận bởi bộ định tuyến của SpringMVC Bộ định tuyến này sẽ ánh xạ yêu cầu đến một phương thức xử lý cụ thểtrong trong lớp Controller phù hợp

 Xử lý yêu cầu: Các phương thức trong class Controller sẽ thực hiện thu thậpthông tin các yêu cầu ví dụ như: tham số, tiêu đề HTTPS, Sau đó xử lý cácrequest bằng cách gọi các dịch vụ service từ bên ngoài thông qua cơ chếDependency Injection (là một kỹ thuật theo đó một đối tượng (hoặc staticmethod) cung cấp các phụ thuộc của đối tượng khác Một phụ thuộc là một đốitượng có thể được sử dụng (service))

 Khi Service đã được gọi thì các nghiệp vụ phù hợp sẽ được gọi đến và triểnkhai thực hiện theo yêu cầu của request sử dụng các phụ thuộc Repository đãđược tiêm ứng với các thực thể entity mà yêu cầu cần tương tác thông qua JPA(viết tắt Java Persistence API, JPA giúp giảm thiểu việc phải viết mã SQL mộtcách trực tiếp và tạo ra một lớp trừu tượng giữa ứng dụng và cơ sở dữ liệu.) để

Trang 13

thao tác CURD dữ liệu trên Database Rồi Chuẩn bị dữ liệu phản hồi để gửi lạicho người dùng.

 Dữ liệu phản hồi được chuẩn bị trong bước xử lý yêu cầu sẽ được chuyển đổithành định dạng phù hợp, chẳng hạn như JSON, XML hoặc HTML Responseđược gửi lại cho người dùng thông qua giao thức HTTP.

1.1.3 Angular framework

Angular, con đẻ của Google, nổi bật như một framework mã nguồn mở mạnhmẽ, được ưa chuộng trong việc xây dựng các ứng dụng web động một trang (SPA)và các ứng dụng web phức tạp Nền tảng này dựa trên TypeScript, siêu tập củaJavaScript, mang đến nhiều ưu điểm vượt trội.

Điểm sáng đầu tiên của Angular chính là cấu trúc rõ ràng theo mô hình MVC(Model-View-Controller), giúp tách biệt các mối quan tâm, tạo nên mã dễ dàng tổchức và duy trì Nhờ tính năng liên kết dữ liệu hai chiều tự động, việc cập nhật giaodiện người dùng khi dữ liệu thay đổi trở nên đơn giản hơn bao giờ hết.

Angular còn cung cấp kho thư viện sẵn có phong phú cho các tác vụ phổbiến như định tuyến, HTTP, biểu mẫu và kiểm tra tính hợp lệ, tiết kiệm thời gian vàcông sức cho nhà phát triển Thêm vào đó, cộng đồng Angular lớn mạnh và tích cựcluôn sẵn sàng hỗ trợ, cung cấp tài liệu đầy đủ, giúp giải đáp mọi thắc mắc.

Angular cũng có một số vấn đề Độ cong học tập dốc có thể gây khó khăncho những người mới bắt đầu do cấu trúc phức tạp và nhiều tính năng Kích thướcframework lớn có thể làm tăng thời gian tải trang web Ngoài ra, Angular cũng cóthể ít linh hoạt hơn so với các framework JavaScript khác như React hay Vue.js.

Bất chấp những hạn chế đó, Angular vẫn là lựa chọn tối ưu cho việc xây dựngcác ứng dụng web hiện đại, đặc biệt là các ứng dụng web động một trang (SPA),ứng dụng web phức tạp và ứng dụng di động lai Với sức mạnh và linh hoạt,Angular hứa hẹn mang đến những trải nghiệm web ấn tượng và hiệu quả cho ngườidùng.

Trang 14

Tại sao lại là angular và spring boot:

Việc lựa chọn Angular kết hợp với Spring Boot cho một dự án website bánhàng là một quyết định có lý do và mang lại nhiều lợi ích đáng kể Angular, với sứcmạnh của việc xây dựng các ứng dụng web hiện đại và giao diện người dùng tươngtác, cùng với Spring Boot, một framework Java mạnh mẽ cho phát triển các ứngdụng máy chủ, tạo nên một nền tảng lý tưởng cho dự án website bán hàng Dướiđây là một số lý do vì sao Angular và Spring Boot là sự lựa chọn hàng đầu cho dựán này:

Trải nghiệm người dùng tốt: Angular cung cấp một cách tiếp cận mạnh mẽ đểxây dựng giao diện người dùng tương tác và trực quan Trong một dự án websitebán hàng, trải nghiệm người dùng chất lượng cao là yếu tố quyết định thành công.Angular giúp tạo ra giao diện đẹp mắt và dễ sử dụng, cung cấp một trải nghiệm muasắm trực tuyến tốt nhất cho khách hàng.

Hiệu suất và khả năng mở rộng: Angular cho phép phát triển ứng dụng webđa nền tảng, từ desktop đến di động, đảm bảo rằng ứng dụng có thể hoạt động trênmọi thiết bị Spring Boot, với khả năng xây dựng các ứng dụng máy chủ mạnh mẽ,giúp đảm bảo hiệu suất cao và mở rộng dễ dàng khi cần thiết.

Quản lý trạng thái và hiệu quả phát triển: Angular cung cấp một cơ sở mãnguồn mở rộng, hỗ trợ mạnh mẽ từ cộng đồng, và các công cụ như Angular CLIgiúp tăng tốc quá trình phát triển Sự tích hợp tốt với TypeScript cũng giúp giảmthiểu lỗi và tăng tính nhất quán của mã nguồn Spring Boot, với tính năng auto-configuration và một số công cụ hỗ trợ, giúp tạo ra các ứng dụng máy chủ một cáchnhanh chóng và dễ dàng.

Hỗ trợ mạnh mẽ từ cộng đồng: Cả Angular và Spring Boot đều có cộng đồnglớn và tích cực, điều này mang lại lợi ích từ các tài liệu phong phú, hỗ trợ từ cộngđồng và các công cụ phát triển mạnh mẽ Điều này làm cho việc phát triển dự án trởnên dễ dàng và nhanh chóng.

 Từ những lợi ích trên việc sử dụng angular kết hợp với spring boot dự ánwebsite bán hàng là hoàn toàn hợp lý Không chỉ mang lại hiệu suất và độ tin cậymà còn giúp tạo ra một ứng dụng mạnh mẽ, linh hoạt và dễ bảo trì.

Trang 15

1.1.4 Restful API

RESTful API là một loại API được thiết kế để tuân thủ các nguyên tắc và tiêuchuẩn của kiến trúc REST (Representational State Transfer) Được xây dựng trênnền tảng của giao thức HTTP, RESTful API cung cấp một cách tiếp cận linh hoạt vàhiệu quả để tương tác với các tài nguyên trên web.

Một trong những đặc điểm quan trọng của RESTful API là sự đơn giản và dễsử dụng API được xác định bằng các URL (Uniform Resource Locator) có ý nghĩavà dễ đọc, mỗi URL đại diện cho một tài nguyên cụ thể trên hệ thống Các phươngthức HTTP như GET, POST, PUT và DELETE được sử dụng để thực hiện các hoạtđộng khác nhau trên các tài nguyên này.

RESTful API cũng thường sử dụng các định dạng dữ liệu như JSON(JavaScript Object Notation) hoặc XML (eXtensible Markup Language) để truyềntải dữ liệu giữa client và server Điều này giúp cho việc trao đổi dữ liệu trở nên linhhoạt và tương thích với nhiều ngôn ngữ lập trình và nền tảng khác nhau.

Với cách tiếp cận này, RESTful API đã trở thành một trong những công nghệphổ biến nhất cho việc phát triển các ứng dụng web và dịch vụ trên internet Sự linhhoạt, đơn giản và hiệu quả của RESTful API đã giúp tạo ra các hệ thống có khảnăng mở rộng và tích hợp tốt, đồng thời cung cấp trải nghiệm người dùng tốt nhất.

1.2 Database – MySql

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến vàmạnh mẽ, được sử dụng rộng rãi trong nhiều loại ứng dụng từ các dự án nhỏ đếncác hệ thống phức tạp Với khả năng linh hoạt, hiệu suất cao và tính bảo mật mạnhmẽ, MySQL đã trở thành một trong những lựa chọn hàng đầu cho việc lưu trữ vàquản lý dữ liệu.

MySQL được phát triển và duy trì bởi Oracle Corporation, và là một phầncủa hệ sinh thái của Oracle Tuy nhiên, nó vẫn là một dự án mã nguồn mở, có sựđóng góp từ cộng đồng người dùng toàn cầu Điều này đã tạo ra một cộng đồng lớnvà tích cực, với nhiều tài liệu, hướng dẫn và hỗ trợ trực tuyến.

Một trong những điểm mạnh của MySQL là hiệu suất cao Với kiến trúcphân tán, hệ thống truy vấn tối ưu và khả năng mở rộng dễ dàng, MySQL có thể xửlý hàng triệu truy vấn mỗi giây, phục vụ cho các ứng dụng web có lưu lượng truycập lớn mà không gặp vấn đề về hiệu suất.

Trang 16

MySQL cũng cung cấp các tính năng bảo mật mạnh mẽ để bảo vệ dữ liệu củabạn Tính năng như phân quyền người dùng, mã hóa dữ liệu, và kiểm soát truy cậpcơ sở dữ liệu giúp đảm bảo rằng chỉ những người được ủy quyền mới có thể truycập và sửa đổi dữ liệu.

Ngoài ra, MySQL hỗ trợ nhiều loại dữ liệu khác nhau, từ số nguyên đếnchuỗi ký tự đến dữ liệu đa phương tiện như hình ảnh và video Điều này cho phépbạn lưu trữ và quản lý mọi loại dữ liệu trong cùng một cơ sở dữ liệu, giúp giảm bớtsự phức tạp và chi phí của hệ thống.

Cuối cùng, MySQL được hỗ trợ trên nhiều hệ điều hành khác nhau, từWindows đến Linux và macOS, cho phép triển khai cơ sở dữ liệu trên mọi môitrường.

MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ, linh hoạt và bảo mật, là lựachọn lý tưởng cho việc lưu trữ và quản lý dữ liệu trong các ứng dụng web và doanhnghiệp.

1.3 Công cụ sử dụng1.3.1 IntelliJ IDEA

IntelliJ IDEA là một IDE (Integrated Development Environment) thông minhđược phát triển bởi JetBrains Đây là một công cụ mạnh mẽ dành cho các nhà pháttriển phần mềm, đặc biệt là cho việc phát triển ứng dụng Java Dưới đây là một sốđặc điểm và tính năng nổi bật của IntelliJ IDEA:

1 Hỗ trợ mã hóa thông minh:

IntelliJ IDEA cung cấp hơn 60 mã kiểm tra với khả năng phân tích mã siêunhanh Điều này giúp bạn tìm ra lỗi và cải thiện chất lượng mã một cách hiệu quả.

Phân tích luồng dữ liệu và tiêm ngôn ngữ (Language Injection) giúp làm việcvới các ngôn ngữ khác nhau trong cùng một dự án.

2 Tính năng sửa lỗi nhanh thông minh:

IntelliJ IDEA cho phép gỡ lỗi inline, nhanh chóng xác định và khắc phục lỗitrong mã.

3 Tạo mã tự động và hỗ trợ Styling Consistent:

IDE này cung cấp các phương tiện tuyệt vời cho sự phát triển Java,JavaScript/ActionScript/Flex, HTML/XHTML/CSS, XML/XSL, PHP, Ruby/JRuby,

Trang 17

Groovy, SQL, FreeMarker/Velocity, JSP, JSF, Android, và nhiều ngôn ngữ khác Cóthể tạo mã “sạch” và thực hiện mã trong thời gian ngắn nhất.

4 Hỗ trợ triển khai và gỡ lỗi từ xa:

IntelliJ IDEA tích hợp sẵn các công cụ build/đóng gói như grunt, bower,gradle, và SBT Nó hỗ trợ các hệ thống kiểm soát phiên bản như Git, Mercurial,Perforce, và SVN Có thể truy cập trực tiếp vào các cơ sở dữ liệu như MicrosoftSQL Server, Oracle, PostgreSQL, và MySQL từ IDE.

5 Hỗ trợ mã hóa đa ngôn ngữ:

IntelliJ IDEA xử lý liền mạch cơ sở mã hỗn hợp của Java, Ruby, Groovy,Python, và Scala.

1.3.2 Visual Studio Code

Visual Studio Code (thường được viết tắt là VS Code) là một trình soạn thảomã nguồn mã nguồn mở miễn phí do Microsoft phát triển Đây là công cụ phát triểnmã nguồn rất phổ biến trong cộng đồng phát triển phần mềm và có sẵn cho các hệđiều hành Windows, macOS và Linux.

Đặc điểm và tính năng nổi bật của Visual Studio Code:

1 Hỗ trợ đa ngôn ngữ: VS Code hỗ trợ nhiều ngôn ngữ lập trình, cho phépbạn làm việc với các dự án đa dạng Có syntax highlighting giúp mã nguồn trở nêndễ đọc và hiểu hơn.

2 Hỗ trợ gỡ lỗi: VS Code đi kèm với chức năng debug, giúp tìm và khắcphục lỗi một cách hiệu quả.

3 Tích hợp Git: VS Code tích hợp sẵn với Git, cho phép quản lý phiên bảnmã nguồn dễ dàng.

4 Tự động hoàn thành mã (IntelliSense): VS Code cung cấp tính năng tựđộng hoàn thành mã thông minh, giúp viết mã nhanh hơn và tránh sai sót.

Trang 18

5 Hỗ trợ đa nền tảng: Bạn có thể sử dụng VS Code trên nhiều hệ điều hànhkhác nhau, bao gồm Windows, macOS và Linux.

6 Tích hợp Terminal: VS Code cho phép mở terminal trực tiếp từ giao diện,giúp thực hiện các tác vụ liên quan đến mã nguồn một cách thuận tiện.

7 Tiện ích mở rộng: VS Code có hệ thống tiện ích mở rộng mạnh mẽ, chophép bạn tùy chỉnh và mở rộng chức năng của trình soạn thảo.

8 Cấu trúc phân cấp: Mã nguồn trong VS Code được tổ chức theo cấu trúcphân cấp, giúp bạn dễ dàng tìm kiếm và quản lý các tệp tin.

9 Nhiều dự án: VS Code hỗ trợ làm việc với nhiều dự án cùng lúc, giúp tiếtkiệm thời gian và tăng hiệu suất làm việc.

Lý do nên sử dụng Visual Studio Code:

 Đa năng: Phù hợp cho nhiều loại dự án phát triển khác nhau.

 Công cụ và tính năng tích hợp: Hỗ trợ gỡ lỗi, Git, và nhiều tính năng hữu íchkhác.

 Cộng đồng năng động: VS Code có cộng đồng lớn, với nhiều tiện ích mởrộng và hỗ trợ từ cộng đồng phát triển.

 Phù hợp để phát triển web: VS Code là lựa chọn tốt cho việc phát triển ứngdụng web và các dự án liên quan.

1.3.3 XAMPP

XAMPP là bộ công cụ giả lập môi trường server (localhost) miễn phí và phổbiến, được phát triển bởi Apache Friends, giúp cài đặt và vận hành dễ dàng các ứngdụng web mà không cần mua hosting hay VPS.

Điểm sáng của XAMPP:

 Hệ sinh thái trọn vẹn: Tích hợp sẵn Apache, MySQL, PHP, FTP Server, MailServer, Perl, FileZilla, SQLite, phpMyAdmin, WebDAV, hỗ trợ mọi khíacạnh phát triển và quản trị website.

 Dễ dàng chinh phục: Cài đặt chỉ với một cú nhấp chuột, giao diện trực quan,bảng điều khiển đơn giản, giúp quản lý dịch vụ dễ dàng.

 Hỗ trợ đa nền tảng: Windows, Linux, macOS, Solaris - đáp ứng nhu cầu sửdụng đa dạng.

Trang 19

 Mở rộng không giới hạn: Hỗ trợ cài đặt thêm module, plugin mở rộng tínhnăng theo nhu cầu.

 Miễn phí và mã nguồn mở: Tự do sử dụng, sửa đổi và chia sẻ cho mục đíchcá nhân và phi lợi nhuận.

XAMPP mang đến:

 Môi trường server hoàn chỉnh: Giả lập môi trường server thực tế, giúp pháttriển, test và triển khai ứng dụng web ngay trên máy tính cá nhân mà khôngcần kết nối internet.

 Quản trị cơ sở dữ liệu hiệu quả: Tạo, quản lý, thao tác dữ liệu MySQL dễdàng thông qua phpMyAdmin hoặc giao diện dòng lệnh.

 Truy cập file linh hoạt: Upload/download file trên server thông qua FTPServer hoặc FileZilla.

 Hệ thống email nội bộ: Cài đặt và sử dụng Mail Server để gửi/nhận email nộibộ hoặc test chức năng email của website.

 Sân chơi cho ngôn ngữ lập trình: Phát triển ứng dụng web với PHP, Perl,Python, và ngôn ngữ scripting khác.

XAMPP lý tưởng cho:

 Lập trình viên web: Phát triển, test và triển khai ứng dụng web, website,blog,

 Sinh viên CNTT: Thực hành lập trình web, quản trị cơ sở dữ liệu, tìm hiểu vềmôi trường server.

 Người dùng cá nhân: Tạo website cá nhân, blog, diễn đàn đơn giản, quản lýfile cá nhân trên server.

Lưu ý:

 XAMPP chỉ phù hợp cho mục đích học tập, nghiên cứu hoặc phát triển webcá nhân Không nên sử dụng cho các website thương mại hoặc cần độ bảomật cao.

 Kiến thức cơ bản về lập trình web và quản trị server là cần thiết để sử dụngXAMPP hiệu quả.

Trang 20

CHƯƠNG II: KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆTHỐNG

2.1 Giới thiệu

2.1.1 Mục đích tài liệu

Tài liệu Phân tích yêu cầu người dùng (PTYC) nhằm trình bày một cách chitiết và rõ ràng các yêu cầu của người sử dụng đối với Website Bán hàng sử dụngAngular và Spring Boot Mục tiêu của tài liệu là xác định phạm vi và mục đích củahệ thống, các quy trình kinh doanh sau khi được tự động hóa, yêu cầu chức năng vàphi chức năng, cũng như các ràng buộc và tiêu chuẩn cần tuân thủ của hệ thống.

Tài liệu PTYC là nền tảng để định rõ và đồng nhất các yêu cầu, và là cơ sởcho quá trình phân tích thiết kế và xây dựng hệ thống.

2.1.2 Phạm vi tài liệu

Tài liệu chỉ tập trung vào các yêu cầu liên quan đến Website Bán hàng sửdụng Angular và Spring Boot, bao gồm mục tiêu, phạm vi hệ thống, quy trình kinhdoanh, yêu cầu chức năng và phi chức năng, cũng như các tiêu chuẩn để triển khaihệ thống.

Bất kỳ yêu cầu nào không phù hợp hoặc không liên quan đến Website Bánhàng đều không thuộc phạm vi của tài liệu này.

Sản phẩm đầu ra là một Website Bán hàng hoàn chỉnh và chạy được sử dụngAngular và Spring Boot.

2.1.3 Định nghĩa thuật ngữ và các từ viết tắt

Bảng 1: Định nghĩa thuật ngữ

Thuật ngữ Định nghĩa Ghi chú

Trang 21

Thuật ngữ Định nghĩa Ghi chú

2.1.4 Tài liệu tham khảo

Bảng 2: Tài liệu tham khảo

Tên tài liệu Ngày pháthành

Nguồn Ghi chú

2.1.5 Mô tả tài liệu

Tài liệu này sẽ cung cấp một cái nhìn tổng quan về Website Bán hàng sửdụng Angular và Spring Boot, từ mục đích, phạm vi cho đến các yêu cầu chi tiết.

Tài liệu được tổ chức thành 4 phần chính như sau:

Phần 1: Giới thiệu – Trình bày mục đích, phạm vi và ý nghĩa của tài liệu.

Phần 2: Tổng quan về hệ thống – Mô tả tổng quan về Website Bán hàng sửdụng Angular và Spring Boot.

Phần 3: Quy trình kinh doanh - Trọng tâm của tài liệu, trình bày các quy trìnhkinh doanh của Website Bán hàng sau khi được tự động hóa.

Phần 4: Các yêu cầu phi chức năng – Mô tả các yêu cầu không phải là chứcnăng trực tiếp của hệ thống.

2.2 Tổng quan về hệ thống 2.2.1 Phát biểu bài toán

Trong bối cảnh thị trường mua sắm trực tuyến ngày càng phát triển, việc xâydựng một Website Bán hàng trực tuyến là một bước đi hợp lý và cần thiết Websitenày không chỉ giúp tạo điều kiện thuận lợi cho người tiêu dùng trong việc mua sắmmà còn mang lại lợi ích cho các nhà kinh doanh trong việc tiếp cận và phục vụkhách hàng một cách hiệu quả và tiết kiệm chi phí Mục tiêu của dự án là xây dựng

Trang 22

một hệ thống Website Bán hàng sử dụng Spring Boot và Angular nhằm cung cấpcác tính năng như: tìm kiếm sản phẩm, xem thông tin sản phẩm, thêm vào giỏ hàng,thanh toán và quản lý đơn hàng Đồng thời, Website cũng cung cấp thông tin chi tiếtvề sản phẩm, đánh giá từ người dùng, và hỗ trợ khách hàng trong quá trình muasắm Mục tiêu cuối cùng là tạo ra một trải nghiệm mua sắm trực tuyến thuận lợi,tiện lợi và an toàn cho người dùng, đồng thời tối ưu hóa quy trình kinh doanh củacác doanh nghiệp.

- Cho phép quản lý đơn hàng: Hệ thống phải cho phép quản trị viên xem vàquản lý các đơn hàng từ khách hàng, bao gồm xem chi tiết đơn hàng, cập nhật trạngthái đơn hàng và tương tác với khách hàng qua các thông điệp hoặc ghi chú.

- Hỗ trợ tìm kiếm sản phẩm: Người dùng có thể tìm kiếm sản phẩm dễ dàngthông qua các bộ lọc và tìm kiếm tự do, với khả năng tìm kiếm theo tên sản phẩm,danh mục, giá cả và các thuộc tính khác.

- Cung cấp trải nghiệm mua sắm thuận tiện: Website phải cung cấp giao diệnngười dùng thân thiện, dễ sử dụng và thân thiện với người dùng, giúp khách hàngdễ dàng duyệt qua sản phẩm, thêm vào giỏ hàng và thanh toán.

- Quản lý tài khoản người dùng: Hệ thống phải cho phép người dùng đăngký, đăng nhập và quản lý thông tin cá nhân, địa chỉ giao hàng và lịch sử đơn hàng.

- Hỗ trợ thanh toán an toàn và linh hoạt: Website phải hỗ trợ nhiều phươngthức thanh toán an toàn và tiện lợi cho người dùng, bao gồm thanh toán qua thẻ tíndụng, chuyển khoản ngân hàng và các cổng thanh toán trực tuyến khác.

- Cung cấp thông tin chi tiết về sản phẩm: Người dùng có thể xem thông tinchi tiết về sản phẩm, bao gồm mô tả, hình ảnh, đánh giá từ người dùng khác vàthông tin kỹ thuật.

- Hỗ trợ tương tác khách hàng: Hệ thống phải cung cấp các kênh tương tácnhư chat trực tuyến, email hoặc hotline để hỗ trợ khách hàng giải đáp thắc mắc và

Trang 23

 Quản trị viên: người quản trị website

 Người dùng: những người đăng ký thành viên của hệ thống

 Khách hàng: những người ghé thăm website xem sản phẩm trong hệ thống.Mô tả:

2 Người dùng (khách hàng có tài khoản): - Có tài khoản và đăng nhập vào hệ thống.

- Thực hiện các thao tác mua sắm như xem sản phẩm, thêm vào giỏ hàng,thanh toán.

Trang 24

- Quản lý thông tin cá nhân, địa chỉ giao hàng, lịch sử mua hàng.3 Khách vãng lai

- Khách hàng chưa đăng ký tài khoản hoặc chưa đăng nhập.

- Có thể xem sản phẩm, tìm kiếm, xem thông tin chi tiết sản phẩm.

2.2.3.2 Biểu đồ UseCase

Hình 3: UseCase Tổng Quát

Trang 25

Hình 4: UseCase phân rã người dùng và khách vãng lai

Trang 26

Hình 5: UseCase phân rã quản trị viên

Trang 27

2.2.3.3 Biểu đồ lớp toàn hệ thống

Hình 6: Biểu Đồ Lớp

Trang 29

2.3.1.2 Biểu đồ hoạt động

Hình 8: Biểu đồ hoạt động chức năng đăng nhập

Trang 30

2.3.2 Đăng ký

2.3.2.1 Biểu đồ trình tự

Hình 9: Biểu đồ trình tự chức năng đăng ký

Trang 32

2.3.3.2 Biểu đồ hoạt động

Hình 12: Biểu đồ hoạt động chức năng tìm kiếm

2.3.4 Giỏ hàng

2.3.4.1 Biểu đồ trình tự

Trang 33

2.3.4.2 Biểu đồ hoạt động

Hình 14: Biểu đồ hoạt động chức năng thêm sản phẩm vào giỏ hàng

2.3.5 Tạo Đơn hàng2.3.5.1 Biểu đồ trình tự

Ngày đăng: 16/05/2024, 01:28

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

Tài liệu liên quan