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.
Kiến thức cơ bản về ngôn ngữ Lập trình
Tổng quan ngôn ngữ java
Java là một ngôn ngữ lập trình hướng đối tượng (Object Oriented), đượ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át triể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ằm mụ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ăm
2010, nó được Oracle mua lại từ Sun Microsystems Java được tạo ra 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ường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tả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áp tương tự C++, nhưng loại bỏ các thao tác với con trỏ để đảm bảo tí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ằng Java 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ên dị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.
Spring boot
Spring Boot xuất hiện vào năm 2012, là "con đẻ" của Juergen Hoeller và đội ngũ Spring Framework, dựa trên nền tảng Spring Framework 3.1 nhằm đơn giản hó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ập trì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ết kiệ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ập bằng java -jar, tự động cấu hình nhiều thành phần Spring, và cung cấp các starter dependencies, annotations cùng cấu hình mặc định để đơn giản hóa việc bắt đầu cho người mới.
Hơn nữa, Spring Boot còn hỗ trợ đa dạng tính năng như REST APIs, Spring Security, 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ào Spring Framework Nhưng Spring Boot vẫn là lựa chọn hàng đầu cho các lập trình viê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ượt trộ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:
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 boot bằng nhiều cách khác nhau chẳng hạn như: Giao diện người dùng (UI), Rest API, Soket, … Các request đó được tiếp nhận bởi bộ định tuyến của Spring MVC 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ập thông tin các yêu cầu ví dụ như: tham số, tiêu đề HTTPS, Sau đó xử lý các request 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 static method) cung cấp các phụ thuộc của đối tượng khác Một phụ thuộc là một đối tượ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ển khai 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ột cá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.) để 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ại cho 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 đổi thà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.
Angular framework
Angular, con đẻ của Google, nổi bật như một framework mã nguồn mở mạnh mẽ, đượ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ủa JavaScript, 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 giao diệ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ực luô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ăn cho 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ước framework 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ựng cá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ười dùng.
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án hà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ức mạ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ương tác, cùng với Spring Boot, một framework Java mạnh mẽ cho phát triển các ứng dụ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 website bá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 mua sắ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ên mọ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 CLI giú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ảm thiể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ách nhanh chóng và dễ dàng.
Hỗ trợ mạnh mẽ từ cộng đồng: Cả Angular và Spring Boot đều có cộng đồng lớ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ự án website 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ậy mà còn giúp tạo ra một ứng dụng mạnh mẽ, linh hoạt và dễ bảo trì.
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êu chuẩn của kiến trúc REST (Representational State Transfer) Được xây dựng trên nề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ĩa và 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ương thứ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ền tả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 linh hoạ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ự linh hoạ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.
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ỏ đến cá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ạnh mẽ, 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ần củ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ớn và 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úc phâ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 truy cập lớn mà không gặp vấn đề về hiệu suất.
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ủa bạ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ập cơ sở dữ liệu giúp đảm bảo rằng chỉ những người được ủy quyền mới có thể truy cậ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 đến chuỗi ký tự đến dữ liệu đa phương tiện như hình ảnh và video Điều này cho phép bạ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ớt sự 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ôi trườ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ựa chọ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à doanh nghiệp.
Công cụ sử dụng
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át triể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êu nhanh Đ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ệc vớ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ỗi trong 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,
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ư Microsoft SQL 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.
6 Tích hợp với các công cụ khác:
IDE này tương tác với Eclipse và Maven, cũng như tích hợp với JetBrains TeamCity để hỗ trợ quá trình phát triển và kiểm thử12.
IntelliJ IDEA là một công cụ mạnh mẽ và linh hoạt, phù hợp cho cả cá nhân và doanh nghiệp Nó giúp tối ưu hóa quy trình phát triển và nâng cao hiệu suất.
Visual Studio Code
Visual Studio Code (thường được viết tắt là VS Code) là một trình soạn thảo mã nguồn mã nguồn mở miễn phí do Microsoft phát triển Đây là công cụ phát triển mã 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ép bạn làm việc với các dự án đa dạng Có syntax highlighting giúp mã nguồn trở nên dễ đọ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ắc phụ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ản mã 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.
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ành khá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ẽ, cho phé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úc phâ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ết kiệ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 ích khá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 ứng dụng web và các dự án liên quan.
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 ứng dụ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, Mail Server, Perl, FileZilla, SQLite, phpMyAdmin, WebDAV, hỗ trợ mọi khía cạ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.
Mở rộng không giới hạn: Hỗ trợ cài đặt thêm module, plugin mở rộng tính nă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 đích cá nhân và phi lợi nhuận.
Môi trường server hoàn chỉnh: Giả lập môi trường server thực tế, giúp phát triển, test và triển khai ứng dụng web ngay trên máy tính cá nhân mà không cầ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 FTP Server 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ội bộ 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.
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.
XAMPP chỉ phù hợp cho mục đích học tập, nghiên cứu hoặc phát triển web cá nhân Không nên sử dụng cho các website thương mại hoặc cần độ bảo mậ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ả.
KHẢO SÁT, PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Giới thiệ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 chi tiế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ụng Angular 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ủa hệ 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.
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 kinh doanh, 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 khai hệ 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án hà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ụng Angular 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ú
Thuật ngữ Định nghĩa Ghi chú
Bảng 2: Tài liệu tham khảo
Tên tài liệu Ngày phát hành
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ình kinh 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ức năng trực tiếp của hệ thống.
Tổng quan về hệ thống
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ây dự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 Website nà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ắm mà 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 một hệ thống Website Bán hàng sử dụng Spring Boot và Angular nhằm cung cấp cá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ết về sản phẩm, đánh giá từ người dùng, và hỗ trợ khách hàng trong quá trình mua sắ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ủa các doanh nghiệp.
Website Bán hàng sử dụng Spring Boot và Angular phải đáp ứng các mục tiêu sau đây:
- Cho phép quản trị viên quản lý sản phẩm: Quản trị viên có thể thêm, sửa, xóa sản phẩm từ hệ thống, cũng như quản lý các thông tin liên quan như giá cả, số lượng tồn kho, mô tả sản phẩm.
- 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ạng thá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àng thô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ện ngườ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àng dễ 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 đăng ký, đă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ương thứ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ín dụ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 tin chi 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ác như chat trực tuyến, email hoặc hotline để hỗ trợ khách hàng giải đáp thắc mắc và
2.2.3 Phạm vi của hệ thống
2.2.3.1 Danh sách nhóm người sử dụng hệ thống
Danh sách nhóm người sử dụng hệ thống cho Website Bán hàng sử dụng Spring Boot và Angular được mô tả như sau:
Hình 2:Tác nhân hệ thống
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.
1 Người quản trị hệ thống:
- Vai trò chủ chốt trong hệ thống.
- Quản lý tất cả các chức năng của hệ thống, bao gồm:
+ Quản lý sản phẩm: thêm, sửa, xóa sản phẩm, cập nhật thông tin sản phẩm. + Quản lý đơn hàng: xem chi tiết đơn hàng, cập nhật trạng thái đơn hàng. + Quản lý nội dung trang web: thêm, sửa, xóa bài viết, thông tin trang web.
+ Quản lý thống kê và báo cáo: xem thống kê truy cập, doanh thu, hoạt động của hệ thống.
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.
- Quản lý thông tin cá nhân, địa chỉ giao hàng, lịch sử mua hàng.
- 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.
Hình 3: UseCase Tổng Quát
Hình 4: UseCase phân rã người dùng và khách vãng lai
Hình 5: UseCase phân rã quản trị viên
2.2.3.3 Biểu đồ lớp toàn hệ thống
Hình 6: Biểu Đồ Lớp
Các Biểu Đồ
2.3.1 Đăng nhập tài khoản người dùng 2.3.1.1 Biểu đồ trình tự
Hình 7: Biểu đồ trình tự đăng nhập
Hình 8: Biểu đồ hoạt động chức năng đăng nhập
Hình 9: Biểu đồ trình tự chức năng đăng ký
Hình 10: Biểu đồ hoạt động chức năng đăng ký
Hình 11: Biểu đồ trình tự chức năng tìm kiếm
Hình 12: Biểu đồ hoạt động chức năng tìm kiếm
Hình 14: Biểu đồ hoạt động chức năng thêm sản phẩm vào giỏ hàng
Hình 15: Biểu đồ trình tự chức năng đặt hàng
Hình 16: Biểu đồ hoạt động chức năng đặt hàng
2.3.6 cập nhật thông tin khách hàng
Hình 17: Biểu đồ trình tự chức năng cập nhật thông tin khách hàng
Hình 18: Biểu đồ hoạt động chức năng cập nhật thông tin khách hàng
Hình 19: Biểu đồ trình tự chức năng xoá tài khoản khách hàng
2.3.8 Quản lý sản phẩm (thêm sản phẩm) 2.3.8.1 Biểu đồ trình tự
Hình 21: Biểu đồ trình tự chức năng thêm sản phẩm
Hình 22: Biểu đồ hoạt động chức năng thêm sản phẩm
2.3.9 Quản lý sản phẩm (cập nhật)
Hình 23: Biểu đồ trình tự chức năng cập nhật sản phẩm
Hình 24: Biểu đồ trình tự hoạt động thêm sản phẩm
2.3.10 Quản lý sản phẩm (xoá sản phẩm) 2.3.10.1 Biểu đồ trình tự
Hình 25: Biểu đồ trình tự chức năng xoá sản phẩm
Hình 26: Biểu đồ hoạt động chức năng xoá sản phẩm
2.3.11 Quản lý danh mục (thêm danh mục) 2.3.11.1 Biểu đồ trình tự
Hình 27: Biểu đồ trình tự chức năng thêm danh mục
Hình 28: Biểu đồ hoạt động chức năng thêm danh mục
2.3.12 Quản lý danh mục (cập nhật)
Hình 29: Biểu đồ trình tự chức năng cập nhật danh mục
Hình 30: Biểu đồ hoạt động chức năng cập nhật danh mục
2.3.13 Quản lý danh mục (xoá danh mục)
Hình 31: Biểu đồ trình tự chức năng xoá danh mục
Hình 32: Biểu đồ hoạt động chức năng xoá danh mục
Hình 33: Biểu đồ trình tự chức năng thống kê
Hình 34: Biểu đồ hoạt động chức năng thống kê
Quy trình nghiệp vụ
2.4.1 Phân hệ người quản trị
Người quản trị đăng nhập vào hệ thống bằng tài khoản quản trị.
Trang chủ Hiện giao diện quản lý cho admin
Thanh menu chính sẽ hiện thị các danh mục sau: Danh mục, sản phẩm, đơn hàng, tài khoản, thống kê.
2.4.1.2 Quản lý nội danh mục
Quy trình quản lý tất cả nội dung
Chức năng này cho phép người quản trị quản lý các danh mục như: thêm, sửa,xoá danh mục
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1.Người sử dụng đăng nhập vào hệ thống bằng tài khoản quản trị 2.Hệ thống hiển thị trang quản trị
3 Người dùng click vào danh mục trong menu con Nội dung 4 Hệ thống hiển thị danh sách danh mục
5 Người dùng click Thêm mới 6 Hệ thống hiển thị dialog thêm mới
7 Người dùng nhập thông tin thêm mới và click Lưu lại 8 Hệ thống lưu
9 Người dùng thực hiện các nghiệp vụ: sửa, xóa danh mục 10 Hệ thống hiển thị thông tin cho người dùng thực hiện nghiệp vụ
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
1 YCAC-01 Thêm mới danh mục
4 YCAC-04 Ẩn/ hiện danh mục
2.4.1.3 Quy trình quản lý sản phẩm
Chức năng này cho phép người quản trị quản lý các danh mục như: thêm , sửa,xoá sản phẩm
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1.Người sử dụng đăng nhập vào hệ thống bằng tài khoản quản trị 2.Hệ thống hiển thị trang quản trị
3 Người dùng click vào quản lý sản phẩm trong menu 4 Hệ thống hiển thị danh sách sản phẩm
5 Người dùng click Thêm mới 6 Hệ thống hiển thị dialog thêm mới
7 Người dùng nhập dữ liệu sản phẩm cần thêm mới và click Lưu lại 8 Hệ thống lưu sản phẩm
9 Người dùng thực hiện các nghiệp vụ: sửa, xóa sản phẩm 10 Hệ thống hiển thị thông tin cho người dùng thực hiện nghiệp vụ
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
1 YCAC-01 Thêm mới sản phẩm
4 YCAC-04 Ẩn/ hiện sản phẩm
2.4.1.4 Quy trình quản lý đơn hàng
Chức năng này cho phép người quản trị quản lý các danh mục: thay đổi trạng thái đơn hàng
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1.Người sử dụng đăng nhập vào hệ thống bằng tài khoản quản trị 2.Hệ thống hiển thị trang quản trị
3 Người dùng click vào đơn hàng trong menu 4 Hệ thống hiển thị danh sách đơn hàng
5 Người dùng click thay đổi trạng thái đơn hàng 6 Hệ thống hiển thị danh để người dùng chọn
7 Người click Lưu lại 8 Hệ thống lưu trạng thái đơn hàng
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
1 YCAC-01 Thay đổi trạng thái đơn hàng
2.4.1.5 Quản lý thông tin quản trị viên
Quy trình nghiệp vụ này mô tả các bước thực hiện trên hệ thống về việc quản lý thông tin của quản trị viên
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1.Người sử dụng đăng nhập vào hệ thống bằng tài khoản quản trị 2.Hệ thống hiển thị trang quản trị
3 Người dùng click vào icon quản trị viên sau đó chọn profile 4 Hệ thống hiển thị thông tin của quản trị
5 Người dùng thay đổi thông tin và lưu lại 6 Hệ thống lưu lại thông tin
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
1 YCAC-01 Thay đổi thông tin quản trị viên
Quy trình quản lý tài khoản Người dùng
Quy trình nghiệp vụ này mô tả các bước thực hiện trên hệ thống về việc quản lý thông tin người dùng Tại đây, người dùng là Quản trị có thể quản lý toàn bộ thông tin của người dùng khi người dùng đó cung cấp thông tin lên hệ thống
Người quản trị hệ thống có toàn bộ các quyền thay đổi trạng thái tài của người dùng ví dụ như: hoạt động hay bị khoá.
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1.Người sử dụng (Ban quản trị ) đăng nhập vào hệ thống bằng tài khoản quản trị
2.Hệ thống hiển thị trang quản trị
3.Người sử dụng Click quản lí tài khoản trong menu 4 Hệ thống hiện thị danh sách thông tin tài khoản người dùng
5 Quản trị hệ thống có quyền thay đổi trạng thái tài khoản người dùng 6 kích hoạt tài khoản: hiện thị trạng thái kích hoạt Khoá tài khoản: hiện thị trạng thái khoá tài khoản
Lưu trạng thái vào cơ sở
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
1 YCAC-01 Kích hoạt tài khoản
Chức năng này cho phép người quản trị thống kê các thông tin tổng thể liên quan đến hoạt động kinh doanh và quản lý đơn hàng trên trang web bán hàng.
Mô tả các bước trong quy trình
Hành động của tác nhân Phản ứng của hệ thống
1 Người quản trị đăng nhập vào hệ thống bằng tài khoản quản trị 2.Hệ thống hiển thị trang quản trị
3 Người quản trị truy cập vào chức năng Thống kê từ menu hoặc trang chủ của trang quản trị
4 Hệ thống hiển thị báo cáo thống kê tổng thể, bao gồm thông tin về tổng doanh thu, số lượng đơn hàng đã đặt, tỷ lệ chuyển đổi, các sản phẩm bán chạy nhất, v.v.
5 Người quản trị có thể tùy chọn lọc và sắp xếp kết quả thống kê theo các tiêu chí khác nhau như thời gian, danh mục sản phẩm, v.v đồng thời có thể xuất excel nếu cần
6 Hệ thống hiển thị thông tin theo bọ lọc Tải xuống file excel nếu người dùng chọn xuất excel.
Danh sách các chức năng
STT Mã yêu cầu Nội dung yêu cầu
Mô tả các chức năng của Người dùng: Người dùng đăng ký 1 tài khoản trên hệ thống đăng nhập vào hệ thống, Người dùng có thể mua hàng, vào xem các đơn hàng mình đã đặt và lịch sử mua hàng
2.4.3 Thiết kế Cơ sở dữ liệu của hệ thống
Hình 35: Thiết kế Cơ sở dữ liệu của hệ thống
Các yêu cầu phi chức năng
Hệ thống theo đúng chuẩn ATTT của tập đoàn.
Các giao dịch trên web cần phải đăng nhập trước khi sử dụng
Các thông tin về user, mật khẩu, xâu kết nối DB trong các file config phải được mã hóa
Dữ liệu của hệ thống cần được sao lưu định kì 1 lần/ tháng.
Phương thức sao lưu: Full Backup.
Yêu cầu về tính sử dụng
Với các phân hệ trên web: hệ thống có giao diện dễ sử dụng, với một người bình thường đã biết sử dụng windows, web thì có thể thao tác được các chức năng của hệ thống sau khi đọc tài liệu HDSD.
Yêu cầu về tính ổn định
Hệ thống đáp ứng các yêu cầu:
Khi xảy ra các sự cố làm ngừng vận hành hệ thống, hệ thống phải đảm bảo phục hồi 100% trong vòng 2h.
Thời gian cho phép hệ thống dừng hoạt động nếu sự cố xảy ra la 30 phút.
Hệ thống gây trung bình 1 lỗi / tháng trong 3 tháng vận hành đầu tiên 1 lỗi / năm trong 3 năm vận hành tiếp theo và 0 lỗi / năm trong các năm vận hành tiếp theo.
Khi mất kết nối với DB dịch vụ, SMSgateway thì chương trình tự động kết nối lại nếu các hệ thống này hoạt động bình thường trở lại
Hệ thống sử dụng tài nguyên hợp lý trên DB
Yêu cầu về hiệu năng
- Đạt: Thời gian phản hồi