Tổng quan đề tài Nhóm đã đề ra kế hoạch phát triển một ứng dụng di động để phục vụcho việc mua sắm cho người dùng và ứng dụng Decee là giải quyết cho vấn đềnày E-shop cung cấp các dụng c
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 2
ĐỀ TÀI: ỨNG DỤNG DECEE
CHỦ ĐỀ E-COMMERCE
GVHD: ThS.Huỳnh Tuấn Anh
Sinh viên thực hiện:
● Đặng Ngọc Duy - 18520655
● Đỗ Ngọc Cường - 18520542
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 3LỜI CẢM ƠN
Nhóm em xin gửi lời cảm ơn tới thầy Huỳnh Tuấn anh vì đã tận tình vàtrực tiếp giảng dạy nhóm chúng em, những lời góp ý cũng như truyền đạt củathầy đã góp phần ảnh hưởng rất lớn tới định hướng đồ án của nhóm em kỳ này
và cũng sẽ là định hướng tương lai của nhóm chúng em bây giờ
Trong quá trình thực hiện, cũng như quá trình làm báo cáo, nhóm chúng
em khó lòng tránh khỏi những sai sót, chúng em mong thầy bỏ qua cũng nhưnhững đóng góp của thầy sẽ là những kinh nghiệm để nhóm em có thể hoànthiện đồ án hơn vào những lần sau Một lần nữa em xin chân thành gửi nhữnglời cảm ơn thầy
Chúng em xin chân thành cảm ơn!
Nhóm nghiên cứu
Tp Hồ Chí Minh, tháng 12 năm 2021
Trang 41.4 Xác định không gian địa lý hoạt động và các thuộc tính của không
Trang 51.5.2 Mô tả nghiệp vụ bằng các view 4+1 20
1.6 Phạm vi kiến thức để giải bài toán (chuyên môn, nghiệp vụ) 21
2.4.1.2 Người dùng thay đổi thông tin cá nhân 32
Trang 62.5.2 Sequence Diagram 39
2.5.2.2 Người dùng thanh toán giỏ hàng 39
Trang 7I GIỚI THIỆU TỔNG QUAN
2.2 Tổng quan đề tài
Nhóm đã đề ra kế hoạch phát triển một ứng dụng di động để phục vụcho việc mua sắm cho người dùng và ứng dụng Decee là giải quyết cho vấn đềnày
E-shop cung cấp các dụng cụ để cho người dùng tương tác và sử dụng
để buôn bán Người chủ cửa hàng có thể đưa lên các sản phẩm mong muốn, vàngười dùng phổ thông có thể kiếm những mặt hàng đó và mua các mặt hàng.Cùng với hệ thống admin hệ thống đảm bảo giá cả phải chăng và người dùngluôn không bị lừa đảo, kèm theo đó là các yếu tố bảo mật đảm bảo thông tincủa người dùng sẽ không bị lộ ra ngoài
2.3 Phạm vi nghiên cứu
Phạm vi bài toán chỉ bao gồm các nghiệp vụ của một ứng dụng của mộtứng dụng E-commerce hỗ trợ việc mua sắm trực tuyến Ứng dụng không đi sâu
Trang 82.4 Nội dung nghiên cứu
Các dịch vụ liên quan đến E-commerce với các tính năng cơ bản củamột ứng dụng buôn bán hàng hóa trực tuyến Ứng dụng này giúp cho các chủcửa hàng trực tuyến có thể quản lý hàng hóa của mình, đồng thời là nơi cho cácngười dùng phổ thông có thể mua hàng hóa với trải nghiệm tốt nhất khi muahàng online
2.5 Kết quả hướng tới
Chủ shop: ứng dụng hỗ trợ chủ cửa hàng quản lý hàng hóa một cách tiệnlợi, nhanh chóng, tạo ra các coupon để thu hút người dùng
Về phía khách hàng phổ thông: Ứng dụng hỗ trợ mua hàng trực tuyếnvới quy trình nhanh chóng, đơn giản, theo dõi tình trạng đơn hàng một cách chitiết, nâng cao trải nghiệm người dùng với giao diện tiện dụng và dễ sử dụng
● Mysql server management: hỗ trợ nhóm lưu trữ dữ liệu cũng như là
các thao tác trên cơ sở dữ liệu
4 Source code
Frontend: https://github.com/pmn2wodee/project_2
Backend: https://github.com/TrDayken/Project-2-School
Trang 9II CÔNG NGHỆ SỬ DỤNG
1 Flutter và Dart
1.1 Khái niệm
Flutter được Google giới thiệu là một người mới trong thế giới ứng dụng
di động Là một SDK mới của Google dành cho các thiết bị di động giúpdevelopers và designers xây dựng nhanh chóng ứng dụng dành cho các thiết bị
di động (Android, iOS) Flutter là dự án mã nguồn mở đang trong giai đoạn thửnghiệm Flutter bao gồm Reactive framework và công nghệ hiển thị 2D (2Drendering engine)và các công cụ phát triển (development tool) Các thành phầnnày làm việc cùng nhau giúp ta thiết kế, xây dựng, test, debug ứng dụng
1.2 Tại sao lại chọn Flutter và Dart
Các nhà phát triển tại Google và các nơi khác sử dụng Dart để tạo cácứng dụng chất lượng cao, quan trọng cho iOS, Android và web Với các tínhnăng nhắm đến sự phát triển phía khách hàng, Dart rất phù hợp cho cả ứngdụng di động và web Dart giúp bạn tạo ra những trải nghiệm đẹp, chất lượngcao trên tất cả các màn hình, với:
● Một ngôn ngữ được tối ưu hóa cho client
và mọi phần của mức khung được thiết kế để trở thành tùy chọn và có thể thaythế
Trang 10❖ Embedder Platform-specific:
Đối với hệ điều hành cơ bản, các ứng dụng Flutter được đóng gói giống
như bất kỳ ứng dụng gốc nào khác Embedder Platform-specific cung cấp
một điểm nhập; phối hợp với hệ điều hành cơ bản để truy cập vào các dịch vụnhư hiển thị bề mặt, khả năng truy cập và đầu vào; và quản lý vòng lặp sự kiệntin nhắn Trình nhúng được viết bằng ngôn ngữ phù hợp với nền tảng: hiện tại
là Java và C ++ cho Android, Objective-C / Objective-C ++ cho iOS vàmacOS, và C ++ cho Windows và Linux Sử dụng công cụ nhúng, mã Flutter
có thể được tích hợp vào ứng dụng hiện có dưới dạng mô-đun hoặc mã có thể
là toàn bộ nội dung của ứng dụng Flutter bao gồm một số trình nhúng cho cácnền tảng mục tiêu chung
❖ Flutter Engine:
Trang 11Cốt lõi của Flutter là Flutter Engine , phần lớn được viết bằng C ++ và hỗ trợ
các nguyên tắc cần thiết để hỗ trợ tất cả các ứng dụng Flutter Động cơ chịutrách nhiệm sắp xếp các cảnh tổng hợp bất cứ khi nào cần sơn một khung mới
Nó cung cấp triển khai cấp thấp của API cốt lõi của Flutter, bao gồm đồ họa, bốcục văn bản, tệp và mạng I / O, hỗ trợ trợ năng, kiến trúc plugin và chuỗi công
cụ biên dịch và thời gian chạy Dart
❖ Flutter Framework:
Flutter Framework , cung cấp một framework hiện đại được viết bằng
ngôn ngữ Dart Nó bao gồm một bộ thư viện nền tảng, bố cục và nền tảngphong phú, bao gồm một loạt các lớp Làm việc từ dưới lên trên, gồm:
● Foundation classes và các dịch vụ khối xây dựng như animation, painting, and gestures cung cấp các nội dung trừu
tượng thường được sử dụng trên nền tảng cơ bản
● Rendering layer cung cấp một sự trừu tượng để xử lý bố cục.
Với lớp này, bạn có thể xây dựng một cây các đối tượng có thểkết xuất Bạn có thể thao tác động các đối tượng này, với cây tựđộng cập nhật bố cục để phản ánh các thay đổi của bạn
● Widgets layer là một phần trừu tượng hóa thành phần Mỗi đối
tượng kết xuất trong lớp kết xuất có một lớp tương ứng trong lớpvật dụng Ngoài ra, lớp vật dụng cho phép bạn xác định tổ hợpcác lớp mà bạn có thể sử dụng lại Đây là lớp mà tại đó mô hìnhlập trình phản ứng được giới thiệu
● Các thư viện Material và Cupertino cung cấp các bộ điều khiển
toàn diện sử dụng các thành phần native của lớp widget để triểnkhai ngôn ngữ thiết kế Material hoặc iOS
1.4 Một số khái niệm cơ bản của Flutter
Trang 12StatefulWidget là một widget động và nó có thể thay đổi những gì nó đang hiển thị bằng cách thay đổi state của chính nó.
Để có thể tạo một stateful widget cần phải kế thừa lớp stateful Widget bằng cú pháp
Class main extends StatefulWidget
Và để một state cần có thể render được thì phải override các phương thức build của state đó với cú pháp
@override
Widget build(buildcontext context)
Và cuối cùng để có thể đổi state của widget thì sẽ cập nhật thông qua phương thức setState() của widget
Các chức năng nên sử dụng stateful Widget là
StateLess Widget
Stateless Widget là một loại widget tĩnh và không thể tự thay đổi đượcnhững gì mà nó hiển thị sau khi render
Trang 13Để có thể tạo ra một Stateless Widget cần phải kế thừa từ lớp StateLess widgetcủa flutter và cần phải override lại một lớp build để có thể render được widget
Class main extends Statelesswidget
@override
Widget build (buildcontext context)
Stateless widget không thể tự thay đổi được chính nó nhưng nếu widget chathay đổi thì stateless widget sẽ được khởi tạo lại
Các trường hợp nên sử dụng StateLess Widget:
1.5 Clean Architecture
Clean Architecture được xây dựng dựa trên tư tưởng "độc lập" kết hợp với cácnguyên lý thiết kế hướng đối tượng(đại diện tiêu biểu là Dependency
Inversion) Độc lập ở đây nghĩa là việc project không bị phụ thuộc vào
framework và các công cụ sử dụng trong quá trình kiểm thử
Kiến trúc của Clean Architecture chia thành 4 layer với một quy tắc phụ thuộc.Các layer bên trong không nên biết bất kỳ điều gì về các layer bên ngoài Điềunày có nghĩa là nó có quan hệ phụ thuộc nên "hướng" vào bên trong Nhìn vào
Trang 14Entities: là khái niệm dùng để mô tả các Business Logic Đây là layer quan
trọng nhất, là nơi bạn thực hiện giải quyết các vấn đề - mục đích khi xây dựngapp Layer này không chứa bất kỳ một framework nào, bạn có thể chạy nó màkhông cần emulator Nó giúp bạn dễ dàng test, maintain và develop phần
business logic
Use case : chứa các rule liên quan trực tiếp tới ứng dụng cục bộ
(application-specific business rules)
Interface Adapter : tập hợp các adapter phục vụ quá trình tương tác với các
công nghệ
Framework and Drivers : chứa các công cụ về cơ sở dữ liệu và các
framework, thông thường bạn sẽ không phải lập trình nhiều ở tầng này Tuynhiên cần chắc chắn về mức ưu tiên sử dụng các công cụ này trong project
Trang 15● Indirect - quá nhiều interface.
● Cồng kềnh - thể hiện ở việc có quá nhiều class so với các project cùng mục tiêu(tuy nhiên các class được thêm vào đều có chủ ý và đáp ứng đúng quy định khitriển khai kiến trúc)
2 Hệ thống NET
2.1 Khái niệm
.NET là một nền tảng lập trình được phát triển bởi Microsoft, chạy trên
hệ điều hành Microsoft Window .NET không phải là ngôn ngữ lập trình, mà lànền tảng cho phép các ngôn ngữ lập trình khác nhau như C# sử dụng để tạo nêncác website, ứng dụng trên Internet và bao gồm một thư viện lớp lớn có tên làFramework Class Library – viết tắt là FCL
.NET Framework được xem là một thành quả tối ưu được dựng nên từcác nhà phát triển của Microsoft nhằm tạo ra một nền tảng cho việc xây dựngcũng như triển khai nhanh chóng các ứng dụng web và dịch vụ Các ngôn ngữđược sử dụng trên nền tảng NET gồm có C#, VB.Net
Trang 162.2 Tại sao lại chọn NET
Theo như các ý ở trên NET là một môi trường hoàn thiện và đầy đủ đặcbiệt các các ứng dụng web .NET hỗ trợ rất nhiều từ tạo api và deployment kèmtheo đó là các thư viện hỗ trợ rất mạnh vì vậy nếu làm web app mà bỏ qua.NET có thể là một bất lợi lớn Và nhóm chọn NET với 2 tiêu chí:
● Thuận tiện cho việc deploy
● dễ mở rộng chiều ngang
2.3 Kiến trúc MVC của NET
MVC là tên gọi tắt của Model – View – Controller – một mẫu kiến trúc(architectural pattern) lâu đời và rất phổ biến trong phát triển phần mềm
Mẫu kiến trúc MVC được áp dụng rộng rãi trong ứng dụng web, desktop
và mobile Trên thực tế, mẫu MVC nguyên bản vốn được xây dựng dành choứng dụng với giao diện đồ họa tương tự ứng dụng desktop chứ không phải choứng dụng web Tuy nhiên, hiện nay mẫu kiến trúc này được sử dụng rộng rãinhất trong các web framework
Tuy nhiên, dù vận dụng ở đâu và theo cách nào, mẫu này cũng hướng tớiphân tách việc biểu diễn dữ liệu khỏi quản lý và xử lý dữ liệu Để tạo ra sựphân tách này, mẫu MVC phân chia ứng dụng ra 3 thành phần với nhiệm vụ cơbản như sau:
● Model: dữ liệu và trạng thái của ứng dụng
● View: khuôn mẫu dành cho hiển thị dữ liệu
● Controller: cập nhật model và lựa chọn view
Trang 17MVC trong ASP.NET core
Trang 181.2 Xác định phạm vi bài toán
- Kết quả cuối cùng là một ứng dụng di động, web giúp khách hàng có thể muasắm trực tuyến, người bán có thể quản lý các đơn hàng, các sản phẩm và doanhthu từ các sản phẩm đã được bán ra
- Ứng dụng chỉ quản lý các sản phẩm được đăng bán trực tuyến do đó các sảnphẩm được bản trực tiếp ở cửa hàng (không được đăng bán) không nằm trongphạm vi của bài toán
1.2.1 Vấn đề về con người
● Tác nhân:
○ Người bán:
■ Tạo tài khoản và đăng ký bán hàng
■ Quản lý sản phẩm: người bán chịu trách nhiệm đăng bán các sảnphẩm, điều chỉnh giá thành các sản phẩm đã được đăng bán phùhợp với thị trường
■ Quản lý đơn hàng: người bán tiếp nhận đơn hàng trực tuyến, xácnhận thông tin, số lượng sản phẩm được mua, địa chỉ, đóng góisản phẩm và chuyển giao cho đơn đơn vị vận chuyển
■ Phụ trách việc quản lý khuyến mãi: người bán có thể tạo ra các
mã giảm giá nhằm thu hút khách hàng mua sắm tại cửa hàng củamình nhiều hơn đồng thời sẽ giảm được số lượng lớn khách muahàng trực tiếp Điều này sẽ góp phần giảm lây lan dịch bệnhtrong nạn dịch Covid-19
■ Thống kê doanh thu: người bán có thể thống kê doanh thu theotháng, quý, năm
Trang 19● Phương tiện giao hàng: hợp tác cùng với các dịch vụ vận chuyển như: GHN,GHTK, G&T Express,
● Chi phí đóng gói: sử dụng nilon và băng keo để đóng gói đối với sản phẩmbình thường; đối với các phẩm “Hàng dễ vỡ” thì sử dụng thêm xốp bóng khí đểchống va đập trong quá trình vận chuyển
● Hỏng hóc trong quá trình giao hàng: hàng hoá bị hư hỏng do đóng gói không
kỹ, bị ướt hoặc do giao hàng không cẩn thận
○ Khối lượng, kích thước
○ Số lượng trong kho
● Quản lý chương trình khuyến mãi:
○ Thời gian diễn ra chương trình khuyến mãi
○ Áp dụng trên những mặt hàng, khách hàng nhất định
1.2.3 Vấn đề mua hàng
Trang 20● Tạo tài khoản mua hàng: khách hàng có thể tạo tài khoản trên hệ thống của ứngdụng hoặc sử dụng tài khoản mạng xã hội như Google, Facebook, để đăngnhập trực tiếp (bỏ qua bước đăng ký).
1.4 Xác định không gian địa lý hoạt động và các thuộc tính của không gian
- Phần mềm được người bán và khách hàng trên cả nước sử dụng
1.5 Xác định mối quan hệ giữa sự vật và sự việc trong không gian bài toán:
1.5.1 Sơ đồ cơ cấu tổ chức
Trang 211.5.2 Mô tả nghiệp vụ bằng các view 4+1
1.5.2.1 Use Case view
1.5.2.2 Process view
- Biểu đồ tuần tự
Trang 22- Dữ liệu ở chức năng chủ yếu lấy từ cơ sở dữ liệu quan hệ (SQL Server)
1.6 Phạm vi kiến thức để giải bài toán (chuyên môn, nghiệp vụ)
- Hiểu biết về xu hướng mua bán ở thị trường Việt Nam
- Kiến thức về luật, quy định của nhà nước đối với các ứng dụng/web thươngmại điện tử
- Có kiến thức về lập trình ứng dụng di động, hệ thống, web
1.7 Xác định loại bài toán
Đây là bài toán quản lý buôn bán hàng hóa trực tuyến, áp dụng trong phạm vi ViệtNam do đó chi phí mà mức đầu tư ở mức trung bình
1.8 Tổ chức thực hiện
Bước 1:
● Trao đổi với chủ đầu tư (Công ty cần xây dựng hệ thống) về các nội dung sau:
○ Bố trí thời gian và địa điểm buổi họp mặt
○ Bố trí nhân sự hai bên, phía khách hàng gồm chủ đầu tư hoặc người đạidiện
○ Thống nhất phương pháp làm việc và liên lạc giữa hai bên
○ Đề nghị bên chủ đầu tư chuẩn bị sẵn một số tài liệu đặc tả yêu cầu cùngthời gian và chi phí dự kiến cho dự án
○ Vẽ biểu đồ gantt và thực hiện các nghiệp vụ quản lý dự án (quản lý chiphí, quản lý thời gian)
Trang 23Bước 2:
● Họp với chủ đầu tư để thống nhất các phương án đã chuẩn bị từ trước
● Bên nhóm phát triển phần mềm cần có slide trình chiếu về bài toán tổng quát,cách giải quyết và phạm vi bài toán để có thể xác định với khách hàng cách giảiquyết đối với bài toán được đặt ra và xác định phạm vi công việc của nhómphát triển
● Ghi biên bản cuộc họp
● Yêu cầu chủ đầu tư chuẩn đưa ra ước lượng về chi phí và thời gian dự kiến
Bước 3: Tiến hành khảo sát và lấy yêu cầu
● Áp dụng các phương pháp thu thập yêu cầu: yêu cầu liên quan đến việc quản lýhàng hóa, hóa đơn, khách hàng, thanh toán, lưu trữ cùng các bên thứ ba có thểphát sinh…
● Lấy tài liệu doanh nghiệp
○ Mô tả các nghiệp vụ bằng các view
○ Thông tin khai thác từ bản mô tả công việc và bản mô tả chi tiết côngviệc
○ Sơ đồ cơ cấu tổ chức
○ Các quy trình
○ Các loại mẫu biểu, tài liệu sử dụng cho dự án
=> Bản chất bước này nhằm xác nhận các chức năng và phạm vi bài toán cầngiải quyết
● Đi kèm với việc lấy yêu cầu, có thể hỏi luôn các yêu cầu phi chức năng mà chủđầu tư muốn có
Bước 4: Phân tích - Thiết kế
I Phân tích
Trang 24○ Thời gian: hoạt động 24/24 (trừ một số thời điểm bảo trì trang web)
○ Con người: Lập trình viên, Kiểm thử viên, Người dùng
○ Cách thức sử dụng sản phẩm: Ứng dụng hướng đến mọi đối tượng(không yêu cầu phải có trình độ về tin học) => Cần thiết kế sao cho dễ
sử dụng và dễ tiếp cần với người dùng
● Phạm vi địa lý:
○ Sử dụng tập trung đối với quản trị viên
○ Sử dụng phân tán đối với khách hàng – người dùng phổ thông: với cácchức năng liên quan đến vấn đề mua hàng
● Khách hàng: tất cả mọi người đều có thể mua sản phẩm
● Cách thức sử dụng sản phẩm: được sử dụng trên trình duyệt web, tất cả thiết bị
có trình duyệt web đều có thể sử dụng,
● Xác định các thành phần phi chức năng:
○ Bố cục: dễ nhìn, dễ sử dụng vì ứng dụng cần tiếp cận mọi đối tượng,
không yêu cầu trình độ tin học
○ Bảo mật thông tin khách hàng: do việc giao dịch diễn ra trực tuyến =>
ưu tiên bảo mật thông tin cá nhân và thông tin tài khoản khách hàng
○ Khả năng chịu tải giờ cao điểm: có thể xử lý đồng thời vài trăm nghìn
đến vài triệu yêu cầu truy cập ứng dụng cùng thời điểm
○ Khả năng mở rộng tốt: có thể mở rộng một cách dễ dàng để đáp ứng số
lượng người dùng lớn
II Thiết kế
● Thiết kế hệ thống theo các View đã đề cập
● Để triển khai theo phương pháp Agile, lấy yêu cầu đến đâu sẽ thiết kế đến đó
và cho Dev tiến hành hiện thực thiết kế đó
Bước 5: Thực hiện Implement
● Lựa chọn cách tiếp cận: Model first, Code First, Test first, Database first
Bước 6: Triển khai cho Khách hàng test Beta.
● Đào tạo, huấn luyện
Trang 25và các trường hợp sử dụng cho hệ thống Ngoài các luồng công việc cơ bản, cáctài liệu giải quyết các trường hợp ngoại lệ, kết quả đầu ra ngoại lệ và các trườnghợp sử dụng liên quan khác.
2.1.2 Logical views
Audience: Designers, Programmers, Testers
Area: Yêu cầu chức năng, phân cấp đối tượng, các lớp hệ thống
Mô tả thiết kế của mô hình đối tượng Đồng thời mô tả các hệ thống con của hệthống và các mối quan hệ của chúng
2.1.3 Process views
Audience: Integrators, Programmers
Area: Các yêu cầu phi chức năng, mô tả các khía cạnh đồng thời và đồng bộcủa thiết kế Xây dựng hành vi thời gian chạy của hệ thống
2.1.4 Deployment view
Trang 26Area: Các components: mô tả các phân hệ và bộ phận hệ thống con của hệthống.
2.1.5 Physical view
Audience: Database administrators, System engineers, Deployment managersArea: mô tả các phần tử bền vững có ý nghĩa về mặt kiến trúc trong mô hình dữliệu Mô tả ánh xạ của phần mềm vào phần cứng và hiển thị các khía cạnh phântán của hệ thống
2.2 Các mục tiêu và ràng buộc về kiến trúc
2.2.1 Phía máy chủ
Hệ thống thương mại điện tử sẽ được vận hành tại Máy chủ Windows SQLServer sẽ được sử dụng làm máy chủ cơ sở dữ liệu trung tâm Tất cả các giaotiếp với máy khách phải tuân theo tiêu chuẩn giao thức truyền thông HTTPS,TCP / IP công cộng
2.2.2 Phía khách hàng
Người dùng sẽ chỉ có thể truy cập ứng dụng Thương mại điện tử trực tuyến.Trong giai đoạn đầu, ứng dụng này sẽ được lưu trữ dưới dạng một ứng dụngđộc lập, nhưng với các sửa đổi, nó có thể được tích hợp với các hệ thống có thể
hỗ trợ theo dõi đơn đặt hàng Khách hàng / người dùng mong muốn sử dụngcác ứng dụng di động hiện đại như Shopee, Tiki, để có được trải nghiệmngười dùng trọn vẹn
2.2.3 Bảo mật
Các tính năng bảo mật trung tâm được xử lý bởi các quan chức của viện Họ sẽđược cung cấp các tính năng truy cập đầy đủ cả ở cấp ứng dụng và cơ sở dữliệu Việc tạo tài khoản người dùng cho khách hàng, nhà cung cấp có thể đượcthực hiện bởi khách hàng, nhà cung cấp hoặc có thể là quản trị viên Khi mộtngười dùng được thêm vào hệ thống, họ sẽ có một mật khẩu mặc định màngười dùng có thể thay đổi Tất cả mật khẩu đều được mã hóa để tăng cường
Trang 27bảo mật Các yêu cầu, cập nhật chỉ những quản trị viên có liên quan mới cóthể xem được.
2.2.4 Tính bền bỉ
Tất cả dữ liệu sẽ được lưu trong máy chủ trung tâm (Azure) Để duy trì ACID(Tính nguyên tử, Tính bảo mật, Tính toàn vẹn, Độ bền), một số biện pháp đãđược thực hiện như mã hóa mật khẩu, sử dụng các giao dịch cho tất cả các camkết cơ sở dữ liệu, v.v
2.2.5 Độ tin cậy / Tính khả dụng
Hệ thống sẽ phải trải qua một số hoạt động (Kiểm thử đơn vị, kiểm thử tíchhợp, kiểm thử hệ thống) trước khi được triển khai để đảm bảo rằng hệ thống làđáng tin cậy Máy chủ cơ sở dữ liệu Azure có thể quản lý lượng lớn dữ liệutrong môi trường nhiều người dùng để nhiều người dùng có thể truy cập cùngmột dữ liệu đồng thời, phục vụ nhiều khách hàng tại một thời điểm nhất định
mà không ảnh hưởng đến tính nhất quán và tính toàn vẹn của dữ liệu Tất cảđiều này được thực hiện trong khi mang lại hiệu suất cao
2.2.6 Hiệu suất
Hệ thống phản hồi bất kỳ yêu cầu nào theo cơ sở dữ liệu tiêu chuẩn và thời gianchờ của tập lệnh máy chủ (1 giây), hiệu suất hệ thống cũng phụ thuộc vào mạngkhả dụng và kết nối internet Do đó, hiệu suất thực tế chỉ có thể được xác địnhsau khi hệ thống đã được hoàn thiện và thử nghiệm
2.2.7 Khả năng portable và tái sử dụng
Mặc dù được thiết kế như một sản phẩm hoàn chỉnh và độc lập, bạn vẫn có thể
mở rộng sản phẩm để tích hợp trong một hệ thống khác Để duy trì khả năng tái
sử dụng, tất cả các chức năng đều được cấu trúc và phân lớp rất tốt Các
phương pháp thực hành tốt nhất Agile được tuân thủ trong suốt dự án và dự án
Trang 282.2.8 Công cụ phát triển
Dự án kết hợp nhiều công cụ phát triển
Công cụ phát triển: VS Code
Công cụ vẽ sơ đồ: draw.io
Database connection:
Schedule: Microsoft Project
2.2.9 Schedule