1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website và ứng dụng mobile dạy học trực tuyến đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin

236 3 0

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Website Và Ứng Dụng Mobile Dạy Học Trực Tuyến
Trường học Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 236
Dung lượng 8,1 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (12)
    • 1.1. Lý do chọn đề tài (12)
    • 1.2. Mục tiêu đề tài (12)
    • 1.3. Đối tượng và phạm vi nghiên cứu (13)
      • 1.3.1. Đối tượng (13)
      • 1.3.2. Phạm vi nghiên cứu (13)
    • 1.4. Kết quả dự kiến đạt được (13)
      • 1.4.1. Phía người dùng (13)
      • 1.4.2. Phía người quản trị (14)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (15)
    • 2.1. Tổng quan về ASP.NET Core (15)
      • 2.1.1. Lịch sử phát triển (15)
      • 2.1.2. Một số khái niệm (15)
      • 2.1.3. Ưu điểm của ASP.NET Core (16)
      • 2.1.4. Cải tiến của ASP.NET Core (16)
    • 2.2. Tổng quan về Restful API (16)
      • 2.2.1. Restful là gì? (16)
      • 2.2.2. Nguyên tắc của Restful API (17)
      • 2.2.3. Các ràng buộc trong REST (17)
    • 2.3. Cài đặt môi trường ASP.NET Core (18)
      • 2.3.1. Giới thiệu chung về các công cụ cho ASP.NET Core (18)
      • 2.3.2. Cài đặt ASP.NET Core SDK trên Windows (18)
      • 2.3.3. Cài đặt ASP.NET Core SDK với Visual Studio 2019 (19)
    • 2.4. Tổng quan về Angular 10 (19)
    • 2.5. Môi trường phát triển Angular 10 (20)
    • 2.6. Kiến trúc Angular (20)
      • 2.6.1. Module (20)
      • 2.6.2. Component (20)
      • 2.6.3. Templates (20)
      • 2.6.4. Metadatas (21)
      • 2.6.5. Data Binding (21)
      • 2.6.6. Services (21)
      • 2.6.7. Directives (21)
      • 2.6.8. Dependency Injection (21)
    • 2.7. Cài đặt môi trường Angular 10 (22)
      • 2.7.1. Cài đặt Node trên Windows (22)
      • 2.7.2. Cài đặt Typescript và Angular (22)
    • 2.8. Tổng quan về React Native (22)
    • 2.9. Môi trường phát triển React Native (23)
    • 2.10. Kiến trúc React Native (23)
      • 2.10.1. Component (23)
        • 2.10.1.1. Functional (Stateless) Components (23)
      • 2.10.2. Component (23)
      • 2.10.3. Props (24)
      • 2.10.3. State (24)
      • 2.10.4. Hook (24)
      • 2.10.5. Effect Hook (24)
      • 2.10.6. Life Circle (24)
    • 2.11. Cài đặt môi trường React native (25)
  • CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU (26)
    • 3.1. Khảo sát hiện trạng (26)
      • 3.1.1. Khảo sát nhu cầu người dùng (26)
      • 3.1.2. Khảo sát phần mềm (26)
      • 3.1.3. Tổng kết sau khi khảo sát (29)
    • 3.2. Xác định yêu cầu (30)
      • 3.2.1. Lược đồ usecase (30)
      • 3.2.2. Bảng Requirement dành cho Usecase (33)
      • 3.2.3. Đặc tả Usecase (37)
  • CHƯƠNG 4: THIẾT KẾ ỨNG DỤNG (84)
    • 4.1. Thiết kế dữ liệu (84)
      • 4.1.1. Sơ đồ thiết kế dữ liệu (Database Diagram) (84)
      • 4.1.2. Mô tả sơ đồ thiết kế dữ liệu (84)
      • 4.1.3. Các ràng buộc toàn vẹn (92)
    • 4.2. Sơ đồ tuần tự (98)
    • 4.3. Sơ đồ ERD (109)
    • 4.4. Sơ đồ Class Diagram (110)
    • 4.5. Application Architecture (111)
    • 4.6. Thiết kế giao diện (112)
      • 4.6.1. SCP001 Trang chủ chưa đăng nhập (112)
      • 4.6.2. SCP002 Trang đăng ký (113)
      • 4.6.3. SCP003 Trang đăng nhập (116)
      • 4.6.4. SCP004 Trang chủ với quyền học viên (118)
      • 4.6.5. SCP005 Trang đăng ký giảng viên (119)
      • 4.6.6. SCP006 Trang chủ với quyền giảng viên (121)
      • 4.6.7. SCP007 Trang tạo khóa học (123)
      • 4.6.8. SCP008 Trang tạo thông tin chi tiết khóa học (124)
      • 4.6.9. SCP009 Trang quản lý bộ câu hỏi (Questionpool) (137)
      • 4.6.10. SCP010 Trang chi tiết bộ câu hỏi (Questionpool Detail Page) (142)
      • 4.6.12. SCP012 Trang quản lý khóa học xuất bản (Manage Publish Course Page) (149)
      • 4.6.14. SCP014 Trang danh mục khóa học (Category) (154)
      • 4.6.15. SCP015 Trang chi tiết giỏ hàng (Cart Detail) (159)
      • 4.6.16. SCP016 Trang chi tiết bài giảng khóa học (Course Detail) (161)
      • 4.6.17. SCP017 Trang lịch sử thanh toán (Invoice History) (164)
      • 4.6.18. SCP018 Trang thông tin cá nhân (Profile) (171)
      • 4.6.19. SCP019 Trang thông tin giảng viên (Instructor Profile) (173)
      • 4.6.20. SCP020 Trang khóa học đã đăng ký (My Course) (176)
      • 4.6.21. SCP021 Trang chủ với quyền quản trị viên (180)
      • 4.6.22. SCP022 Trang quản lý tài khoản người dùng (184)
      • 4.6.23. SCP023 Trang quản lý khóa học (188)
      • 4.6.24. SCP024 Trang quản lý thu nhập giảng viên (192)
      • 4.6.25. SCPM001 Trang đăng nhập (Login Page) (Mobile) (197)
      • 4.6.26. SCPM002 Trang đăng ký tài khoản (Register Page) (Mobile) (199)
      • 4.6.27. SCPM003 Trang chủ (Home Page) (Mobile) (0)
      • 4.6.28. SCPM004 Trang chi tiết khóa học (CourseDetail Page) (Mobile) (0)
      • 4.6.29. SCPM005 Trang tìm kiếm khóa học (Search Page) (Mobile) (0)
      • 4.6.30. SCPM006 Trang chi tiết khóa học tìm kiếm (Search Course Detail Page) (Mobile) (0)
      • 4.6.31. SCPM007 Trang danh sách khóa học đã đăng ký (My Course Page) (Mobile) (0)
      • 4.6.32. SCPM008 Trang nội dung khóa học (Course Content Page) (Mobile) (0)
      • 4.6.33. SCPM009 Trang chi tiết bài giảng (Course Content Page) (Mobile) (0)
      • 4.6.34. SCPM010 Trang thi (Exam Page) (Mobile) (0)
      • 4.6.35. SCPM011 Trang kết quả thi (Exam Result Page) (Mobile) (0)
      • 4.6.36. SCPM012 Trang thông tin tài khoản (Account Page) (Mobile) (0)
  • CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG (0)
    • 5.1. Cài đặt ứng dụng (0)
    • 5.2. System Architecture (0)
  • CHƯƠNG 6: KẾT LUẬN (0)
    • 6.1. Kết quả đạt được (0)
      • 6.1.1. Kiến thức tìm hiểu được (0)
      • 6.1.2. Về chương trình đã xây dựng (0)
      • 6.1.3. Ưu khuyết điểm (0)
    • 6.2. Hướng phát triển (0)
  • TÀI LIỆU THAM KHẢO (0)
    • Chương 4: Hình 4.1 Sơ đồ thiết kế dữ liệu (0)
    • Chương 5: Hình 5.1: Sơ đồ System Architecture (0)
    • Chương 5: Bảng 5.1: Bảng kiểm thử phần mềm (0)

Nội dung

CƠ SỞ LÝ THUYẾT

Tổng quan về ASP.NET Core

ASP.NET Core là một framework mạnh mẽ và linh hoạt do Microsoft phát triển, luôn được cập nhật để cải thiện hiệu suất và khả năng tương thích với nhiều nền tảng khác nhau Được thiết kế cho việc phát triển web với NET, framework này mang lại nhiều tính năng quen thuộc cho những ai đã có kinh nghiệm làm việc với MVC hoặc Web API trong vài năm qua, cùng với nhiều công cụ hỗ trợ người dùng hiệu quả.

ASP.NET đã được các kỹ thuật viên trên toàn thế giới tin dùng để phát triển ứng dụng web trong nhiều năm Qua thời gian, framework này đã liên tục thay đổi, cập nhật và nâng cấp, dẫn đến sự ra đời của ASP.NET Core 1.0, phiên bản mới nhất hiện nay.

● ASP.NET Core không phải là phiên bản tiếp theo của ASP.NET 4.6

● Đó là một framework hoàn toàn mới, may mắn rằng nó một dự án side-by-side tương tự với mọi thứ mà chúng ta biết

● Nó thực ra được viết lại trên framework ASP.NET 4.6 hiện tại những kích thước nhỏ hơn và nhiều modular hơn [2]

ASP.NET Core là một framework web mã nguồn mở, tối ưu cho cloud, cho phép phát triển ứng dụng web đa nền tảng trên Windows, Linux và Mac Nó tích hợp MVC framework, kết hợp các tính năng của MVC và Web API thành một framework duy nhất.

● Các ứng dụng ASP.NET Core có thể chạy trên NET Core hoặc trên NET Framework hoàn chỉnh

● Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng để triển khai tới cloud hoặc chạy on-premises

● Nó bao gồm những modular với các thành phần tối thiểu, do đó bạn giữ được tính linh hoạt trong quá trình xây dựng các giải pháp của mình

● Bạn có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET Core trên

2.1.3 Ưu điểm của ASP.NET Core

ASP.NET Core đi kèm với những ưu điểm sau:

● ASP.NET Core có một số thay đổi kiến trúc dẫn đến modular framework nhỏ hơn

● ASP.NET Core không còn dựa trên System.Web.dll

● Nó dựa trên một tập hợp nhiều yếu tố của Nuget packages

● Điều này cho phép bạn tối ưu ứng dụng của mình chỉ cần những NuGet packages cần thiết

● Lợi ích của diện tích bề mặt ứng dụng nhỏ hơn thì bảo mật chặt chẽ hơn, giảm dịch vụ, cải thiện hiệu suất và giảm chi phí [2]

2.1.4 Cải tiến của ASP.NET Core

Với ASP.NET Core, bạn có thể nhận được các cải tiến sau:

● Xây dựng và chạy các ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux

● Được xây dựng trên NET Core, hỗ trợ side-by-side app versioning

● Công cụ mới giúp đơn giản hóa việc phát triển web hiện đại Liên kết đơn các web stack như Web UI và API Web

● Cấu hình dựa trên môi trường đám mây sẵn có

● Được xây dựng dựa trên cho DI (Dependency Injection)

● Tag Helpers làm cho các Razor makup trở nên tự nhiên hơn với HTML

● Có khả năng host trên IIS hoặc self-host [2].

Tổng quan về Restful API

REST (Representational State Transfer) là một kiến trúc mạng được Roy Fielding định nghĩa, nhằm thiết kế các ứng dụng phân tán sử dụng giao thức HTTP Đây là mô hình kiến trúc quan trọng cho web, giúp tối ưu hóa việc tương tác giữa các hệ thống.

REST là một tập hợp các hướng dẫn và cấu trúc giúp chuyển đổi dữ liệu, thường được áp dụng trong các ứng dụng web.

API stands for Application Programming Interface, which serves as a connection method to various libraries and applications Both Windows and Twitter offer APIs, although they perform different functions and serve distinct purposes.

RESTful API là các API tuân theo cấu trúc REST, không phải là công nghệ mà là phương thức xây dựng API với các nguyên tắc tổ chức cụ thể Những nguyên tắc này giúp lập trình viên tạo ra môi trường xử lý yêu cầu API một cách toàn diện hơn.

2.2.2 Nguyên tắc của Restful API

RESTful đã xuất hiện như một giải pháp hiệu quả để thay thế việc thực hiện gọi thủ tục từ xa (RPC) trên web, do sự phát triển phức tạp ngày càng gia tăng của các dịch vụ web lớn.

Web dựa vào tài nguyên, URI và HTTP, nhưng các dịch vụ web lớn lại không tận dụng những yếu tố này Chúng không cảm thấy được lợi ích từ dịch vụ web hướng tài nguyên do thiếu khả năng đánh địa chỉ, không có tính năng cache và kết nối kém Hơn nữa, các dịch vụ này không cần giao diện đồng nhất và thường gặp khó khăn trong việc hiểu và giải quyết các vấn đề liên quan, đặc biệt khi tương tác với nhiều khách hàng cùng lúc.

REST là một kiến trúc dành cho hệ thống phân tán, đặc biệt là trên World Wide Web Để triển khai kiến trúc RESTful, cần tuân thủ các nguyên tắc của ROA, tức là kiến trúc hướng tài nguyên Bài báo này sẽ trình bày các quy tắc cần thiết để thiết kế dịch vụ RESTful hiệu quả.

2.2.3 Các ràng buộc trong REST

Giao diện đồng nhất giúp đơn giản hóa và tách biệt kiến trúc, cho phép các phần phát triển độc lập thông qua API cơ bản, hỗ trợ thiết kế dịch vụ REST cho cả web và mobile Tuy nhiên, việc chuẩn hóa này có thể hạn chế khả năng tối ưu hóa từng kết nối.

Phi trạng thái là khái niệm trong đó server và client không lưu trữ thông tin trạng thái của nhau Mỗi yêu cầu gửi đi cần được đóng gói đầy đủ thông tin để server có thể nhận diện và xử lý Điều này mang lại lợi ích cho việc phát triển, bảo trì và mở rộng hệ thống, vì không cần tốn công quản lý trạng thái của client Tuy nhiên, phương pháp này cũng có những hạn chế nhất định.

Mô hình Client - Server giúp tách biệt các thành phần, đơn giản hóa quá trình thực hiện và giảm bớt sự phức tạp trong kết nối Điều này không chỉ nâng cao hiệu quả điều chỉnh hiệu năng mà còn tăng khả năng mở rộng cho máy chủ.

Khả năng caching giúp giảm tải cho server bằng cách lưu trữ các response, từ đó tăng tốc độ truy cập thông tin cho client Để tối ưu hóa quá trình này, hai phương pháp hiệu quả là Etag và Last-Modified nên được áp dụng.

Phân lớp hệ thống giúp giảm độ phức tạp, cho phép các thành phần hoạt động độc lập và dễ dàng mở rộng Mỗi lớp chỉ tương tác trực tiếp với lớp ngay trên và dưới, tạo điều kiện thuận lợi cho việc quản lý và phát triển hệ thống.

Cài đặt môi trường ASP.NET Core

2.3.1 Giới thiệu chung về các công cụ cho ASP.NET Core Để phát triển ứng dụng ASP NET Core bạn cần các công cụ sau:

● Bộ ASP.NET Core SDK;

● Một môi trường phát triển ứng dụng tích hợp như Visual Studio, JetBrains Rider hoặc một code editor như Visual Studio Code

All the tools mentioned are available for free (or have free versions) from Microsoft's website You can download the latest version of the ASP.NET Core SDK for Windows at https://dotnet.microsoft.com/download Visual Studio Community (free) and Visual Studio Code (free, cross-platform) can be downloaded from https://visualstudio.microsoft.com/downloads/ JetBrains Rider does not offer a free version but provides a 30-day trial Overall, installing the development environment for ASP.NET Core on Windows is straightforward To simplify the guidance, all subsequent lessons will use Visual Studio 2019 Community If you prefer to use a different IDE, you can explore additional resources through the free documentation available online.

2.3.2 Cài đặt ASP.NET Core SDK trên Windows

ASP.NET Core được thiết kế để phát triển và tương thích đa nền tảng, giúp việc cài đặt trên các hệ điều hành trở nên dễ dàng Để chạy ứng dụng ASP.NET Core, cần cài đặt ASP.NET Core Runtime, trong khi để phát triển ứng dụng, bạn cần cài đặt ASP.NET Core SDK Khi cài đặt SDK, hệ thống sẽ tự động cài đặt Runtime Bạn có thể tải phiên bản SDK mới nhất từ đường link sau.

Tải bộ cài về và thực hiện tiến trình cài đặt như bất kỳ chương trình Windows bình thường nào [4]

2.3.3 Cài đặt ASP.NET Core SDK với Visual Studio 2019

Cài đặt NET Core Runtime và SDK trên Windows với Visual Studio rất dễ dàng Phiên bản mới nhất, NET Core 3.0, yêu cầu sử dụng Visual Studio 2019 (v16.3 trở lên).

If you don't have Visual Studio or are using an older version, install Visual Studio (Community) 2019 During the installation process, select the workloads for ASP.NET and web development, which covers both ASP.NET and ASP.NET Core, or choose the NET Core cross-platform development option for applications on NET Core and ASP.NET Core.

Để cài đặt môi trường phát triển ASP.NET Core trên Windows, bạn cần cập nhật Visual Studio 2019 lên phiên bản mới nhất Sau đó, mở Visual Studio Installer, chọn Modify, và vào tab Workloads để lựa chọn một trong hai mục cần thiết Việc chọn một trong hai workload này sẽ cài đặt tất cả các thành phần cần thiết cho phát triển và thực thi ứng dụng ASP.NET Core Khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra phiên bản bằng lệnh dotnet version trên Command Prompt hoặc PowerShell, từ đó xác nhận rằng bạn đã sẵn sàng cho việc phát triển và chạy ứng dụng ASP.NET Core.

Tổng quan về Angular 10

Angular 10 là một framework Javascript mã nguồn mở được sử dụng để xây dựng các ứng dụng web bằng HTML, Javascript và là 1 lựa chọn cho các lập trình viên phát triển các ứng dụng cho các thiết bị di động

Angular 10 được đưa ra vào tháng 4 năm 2020 nhằm thay thế AngularJS 1 với các khái niệm mới nhằm đơn giản hóa và tối ưu cho quá trình phát triển sử dụng framework này

Một số lợi ích của Angular 10:

● Hỗ trợ đa nền tảng và đa trình duyệt

● Cấu trúc code được tổ chức đơn giản hơn

● Sử dụng Dependency Injection để maintane ứng dụng

● Tất cả mọi thứ dựa vào component [5].

Môi trường phát triển Angular 10

Angular 10 sử dụng TypeScript để phục vụ cho quá trình phát triển ứng dụng Angular TypeScript là một ngôn ngữ có thể gọi là bao hàm Javascript được sử dụng để viết các ứng dụng Angular và một trình compiler cho phép chúng ta biên dịch thành file Javascript thuần tùy theo nhu cầu người dùng TypeScript giúp giảm thiểu các lỗi khi viết các ứng dụng Angular

Môi trường để phát triển ứng dụng angular cần có:

Ngoài ra có thể thêm một ngôn ngữ khác để làm phần server side, phục vụ cho việc lưu trữ dữ liệu nếu cần thiết [5].

Kiến trúc Angular

An Angular 10 application can consist of one or multiple modules, depending on its complexity A module serves as a code block that performs one or more tasks In Angular, each module comprises components, templates, metadata, and services that are injected into the module's components through Dependency Injection.

In Angular 10, a component functions similarly to a controller in AngularJS 1, working alongside a template to handle specific tasks and display data in the view Components are reusable throughout the application and can render their own views while configuring Dependency Injection Additionally, CSS manipulations can be applied to the component's template To utilize a component, it must be registered using the @Component decorator.

2.6.3 Templates Đây là phần view của component, được sử dụng để hiển thị data hay bất cứ gì mà component sinh ra Template có thể được định nghĩa trực tiếp trong Component hoặc có thể là một file html riêng và được liên kết với component thông qua url

Metadata là cách mô tả một class component bằng dữ liệu cụ thể, giúp Angular nhận diện đó là component thông qua decorator @Component Các thông tin cơ bản trong metadata bao gồm selector, là thẻ HTML tự định nghĩa mà component có hiệu lực, và template.

- đây là nơi định nghĩa template của component, directives - khai báo các component khác hoặc các directives

2.6.5 Data Binding Đây là quá trình chúng ta liên kết dữ liệu của ứng dụng với một element của view trong html để hiển thị hoặc thiết lập giá trị cho element đó Có 4 kiểu data binding:

● Interpolation: hiển thị một biến, giá trị của component một cách trực tiếp bằng các thẻ html

● Event Binding: khi tác thực hiện một thao tác lên một component method nó sẽ fire event và thực hiện thao tác tương ứng

● Two-way binding: sử dụng ngModel để binding các giá trị của component với view

Services are code blocks that perform specific tasks within Angular applications, operating on the principle of Dependency Injection These services encompass values, functions, and features that the application requires to function effectively.

Các directives là các class biểu diễn cho các metadata Có 3 kiểu directive:

2.6.8 Dependency Injection Đây là một cơ chế cho phép người dùng thêm vào các thành phần cần thiết cho component tùy theo nhu cầu người sử dụng Phương thức này sẽ tự động tạo các đối tượng của các class mà component yêu cầu, người dung chỉ cần khai báo và sử dụng

Sử dụng Dependency Injection cho phép chúng ta thêm các service, provider, component khác vào component để sử dụng một cách dễ dàng, nhanh chóng hơn [5].

Cài đặt môi trường Angular 10

2.7.1 Cài đặt Node trên Windows

Bước 1: Tải bản cài đặt của NodeJS trên trang chủ của NodeJS (v10.14.1 LTS) Bước 2: Chạy file cài đặt, làm theo các hướng dẫn trong tiến trình

Bước 3: Chọn đường dẫn cài đặt cho NodeJS

Bước 4: Chọn các component để cài đặt, khuyến khích chọn tất cả các bộ công cụ đi kèm

Bước 5: Nhấn Install để bắt đầu tiến trình cài đặt

Bước 6: Trình cài đặt hoàn tất, khởi động lại máy tính để hoàn tất [6]

2.7.2 Cài đặt Typescript và Angular

Bước 1: Cài đặt Typescript bằng lệnh npm install -g typescript và sau đó kiểm tra phiên bản Typescript cài đặt thành công bằng lệnh tsc -v

Để bắt đầu với Angular 10, bước đầu tiên là cài đặt Angular-cli, một công cụ quan trọng giúp sinh code và tạo kiến trúc cho ứng dụng Bạn có thể cài đặt Angular-cli bằng lệnh `npm install -g angular-cli` và kiểm tra phiên bản đã cài đặt bằng lệnh `ng -v`.

Bước 3: Tạo một Project Angular 10 bằng Angular-cli thông qua lệnh ng new project- name [5].

Tổng quan về React Native

React Native là một công cụ lập trình đa nền tảng, cho phép phát triển ứng dụng trên môi trường native cho cả Android và iOS Được phát triển bởi Facebook, React Native là một framework mã nguồn mở, sử dụng Javascript để xây dựng phần mềm Khác với React, React Native sử dụng các native components thay vì web components, do đó, để nắm vững cấu trúc của React Native, người dùng cần có kiến thức cơ bản về các khái niệm của React như JSX, components, props và state.

Một số lợi ích của React Native:

● Khả năng tái sử dụng code và các components đã được phát triển sẵn

● Sự tuyệt vời của Live and Hot reloading

● Tiết kiệm effort khi có thể code 1 mà có thể run cho cả IOS và Android [7].

Môi trường phát triển React Native

React Native sử dụng JavaScript để phục vụ cho quá trình phát triển ứng dụng di động

Môi trường để phát triển ứng dụng angular cần có:

Kiến trúc React Native

Component là một khối mã độc lập và tái sử dụng, giúp chia nhỏ giao diện người dùng (UI) thành nhiều phần Có thể so sánh các component với các khối LEGO, trong đó một cấu trúc LEGO được xây dựng từ nhiều khối nhỏ, tương tự như cách mà một trang web hoặc giao diện được tạo ra từ nhiều component.

React Native có 2 loại component: Funtional (Stateless) và Class (Stateful)

Functional components, also known as stateless components, are limited in their ability to manage React State and lifecycle methods However, with the introduction of React Hooks in version 16.8, developers can now utilize state and other features within functional components, enhancing their functionality and versatility.

Class Components phức tạp hơn functional components ở chỗ nó còn có: phương thức khởi tạo, life-cycle, hàm render() và quản lý state (data)

2.10.2 Component Đối với ios toàn bộ native code được viết bằng Objective C hoặc Swift, còn với Android sẽ được viết bằng Java Nhưng để viết một ứng dụng React Native, chúng ta sẽ không bao giờ phải viết bằng native code của Android hay IOS [8]

Props, viết tắt của Properties, là dữ liệu immutable mà bạn không nên thay đổi giá trị Các component nhận props từ component cha và chỉ được phép đọc giá trị, không được thay đổi Trong React, dữ liệu di chuyển theo một chiều từ component cha đến các component con Việc sử dụng props cho phép bạn trừu tượng hóa các component, giúp chúng có thể được sử dụng ở nhiều vị trí khác nhau trong ứng dụng.

State và props trong React có những điểm khác biệt quan trọng State là dữ liệu nội bộ của một Component, trong khi props là dữ liệu được truyền vào Chúng ta có thể thay đổi state, coi nó như một kiểu dữ liệu mutable, nhưng cần lưu ý không thay đổi trực tiếp biến this.state Thay vào đó, hãy sử dụng hàm setState để cập nhật giá trị, vì nó sẽ kích hoạt việc render lại Component và tất cả các Component con Ngoài ra, setState hoạt động bất đồng bộ, vì vậy nếu bạn đọc giá trị state ngay sau khi gọi setState, giá trị có thể chưa được cập nhật ngay lập tức.

Hooks là các hàm cho phép bạn kết nối với trạng thái và các tính năng vòng đời của React từ các hàm components Chúng không hoạt động trong các lớp (classes), giúp bạn sử dụng React mà không cần phải sử dụng class.

The Effect Hook, useEffect, enables functional components to perform side effects, serving the same purpose as componentDidMount, componentDidUpdate, and componentWillUnmount in React class components, but consolidating these functionalities into a single API.

React Native allows you to define components as either classes or functions Class-defined components offer numerous features, requiring you to extend the Component class when declaring a React component To render the view on the screen, you must call the mandatory render() method Each component has lifecycle methods that can be overridden to execute code for displaying content on mobile screens, which are typically divided into three main phases.

Cài đặt môi trường React native

Bước 2: Cài đặt React native CLI

Bước 3: Cài đặt Android Studio

Bước 4: Cài đặt Android SDK

Bước 5: Cấu hình ANDROID_HOME environment thay giá trị variable value bằng đường dẫn đến file SDK

KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

Khảo sát hiện trạng

3.1.1 Khảo sát nhu cầu người dùng

Hiện nay, sự phát triển của các trang web hướng dẫn tự học và thi thử Toeic cùng với các clip hướng dẫn từ Youtuber đã tạo ra nhu cầu học tập linh hoạt cho người dùng Do đó, các website liên quan đến sách cần phải có giao diện đẹp, dễ thao tác, và chức năng đa dạng, tiện lợi để đáp ứng nhu cầu học mọi lúc, mọi nơi.

Khảo sát hiện trạng một số trang web dạy học trực tuyến trên thị trường:

● Udemy: https://www.udemy.com/

Hình 3.1Khảo sát trang Udemy

○ Thanh menu đầy đủ yêu cầu, dễ dàng tìm kiếm theo nhiều từ khóa

○ Trang giới thiệu cung cấp thông tin rõ ràng

○ Cách phối màu hợp lý, đẹp

○ Bố cục rõ ràng, thể hiện đầy đủ thông tin về các khóa học

○ Giao diện quá nhiều chữ gây rối mắt

○ Giá khóa học khá đắt so với mặt bằng chung

● Coursera: https://www.coursera.org/

Hình 3.2Khảo sát trang Coursera

○ Thanh menu khá đầy đủ

○ Phần tìm kiếm thiết kế dễ dàng sử dụng

○ liên kết được với nhiều công ty và đại học danh tiếng

○ Có tín chỉ sau mỗi khóa học

○ Giao diện quá sơ sài

○ Thanh tiêu đề không đủ yêu cầu, khó khăn cho người mới

● SkillShare: https://www.skillshare.com/

Hình 3.3 Khảo sát trang SkillShare

○ Giao diện đơn giản dễ tiếp cận với người dùng

○ Đa dạng về số lượng hastag và các bài giảng

○ Người dùng có thể đăng ký premium để nhận được nhiều ưu đãi

○ Cho phép xem 1 số lượng bài giảng trước khi đăng ký mua khóa học

○ Sau khi đăng ký người dùng phải tốn phí để trải nghiệm dịch vụ tốt hơn

○ Số lượng khóa học miễn phí còn khá ít

○ Giao diện web còn chưa thực sự hấp dẫn

○ Chưa có tính năng tìm kiếm nâng cao

○ Trang Udemy đẹp hơn trang Coursera, SkillShare về mặt giao diện

○ Trang Coursera liên kết được với nhiều công ty và đại học danh tiếng

Giao diện của Udemy có quá nhiều chữ, gây khó chịu cho người dùng, trong khi đó, trang Coursera lại thiếu thông tin, tạo ra nhiều khoảng trống trắng Đồng thời, cách trình bày danh sách khóa học và trang chi tiết khóa học trên SkillShare cũng chưa được tối ưu.

○ Giá khóa học trang Udemy khá mắc so với mặt bằng chung còn bên

3.1.3 Tổng kết sau khi khảo sát

Người dùng cần một nền tảng học trực tuyến với nội dung được tổ chức rõ ràng theo hashtag và cấp độ, giúp dễ dàng theo dõi và tìm kiếm khóa học Các khóa học nên được đề xuất theo lộ trình phù hợp và cho phép người dùng đánh giá, bình luận, cũng như tương tác trực tiếp với giảng viên qua comment, nhắn tin và forum để giải quyết thắc mắc Bên cạnh đó, việc mở khóa một phần nội dung trước khi thanh toán giúp người dùng chọn lựa khóa học phù hợp Hệ thống cần có các bài kiểm tra củng cố kiến thức và các thành tích khích lệ người học Để trở thành giảng viên, quy trình đăng ký cần đơn giản, cùng với các công cụ quản lý khóa học, nội dung, bộ câu hỏi và đề thi dễ sử dụng Nhóm phát triển đã chọn framework Angular để phân chia giao diện và chức năng theo vai trò người dùng, API ASP.NET Core vì tính dễ tiếp cận và hỗ trợ tốt với NuGet Package, MS SQL Server cho quản lý dữ liệu hiệu quả, và React Native để xây dựng giao diện người dùng đẹp mắt và ổn định.

Xác định yêu cầu

3.2.1.1 Lược đồ usecase tổng quát (Web)

Hình 3.4 Sơ đồ use case tổng quát (Web)

3.2.1.2 Lược đồ usecase actor User (Web)

Hình 3.5 Sơ đồ use case actor User (Web)

3.2.1.3 Lược đồ usecase actor User (Mobile)

Hình 3.6: Sơ đồ Usecase actor User (Mobile)

3.2.1.4 Lược đồ usecase actor Admin (Web)

Hình 3.7 Sơ đồ Usecase actor Admin (Web) 3.2.2 Bảng Requirement dành cho Usecase

Bảng 3.1: Bảng yêu cầu dành cho Usecase Desktop

No Name Usecase Usecase id Actor

1 Đăng ký UC_01 Người dùng chưa có tài khoản trên hệ thống

2 Đăng nhập UC_02 Người dùng đã có tài khoản trên hệ thống

3 Đăng xuất UC_03 Người dùng đã đã đăng nhập vào hệ thống

4 Tìm kiếm khóa học UC_04 Người dùng chưa có tài khoản hoặc đã đăng nhập vào hệ thống

5 Xem thông tin khóa học UC_05 Người dùng đã đăng nhập hoặc người dùng chưa đăng nhập

5.1 Đăng ký khóa học UC_06 Người dùng đã đăng nhập

5.2 Xem chi tiết khóa học UC_07 Người dùng đã đăng nhập

5.2 Xem bài học UC_08 Người dùng đã đăng nhập

5.3 Thanh toán UC_09 Người dùng đã đăng nhập

6 Quản lý khóa học UC_10 Người dùng đã đăng nhập với quyền giảng viên

6.1 Tạo nội dung bài học UC_11 Người dùng đã đăng nhập với quyền giảng viên

6.2 Tạo bài Quiz UC_12 Người dùng đã đăng nhập với quyền giảng viên

7 Bình luận UC_13 Người dùng đã đăng nhập vào hệ thống 7.1 Chỉnh sửa nội dung bình luận UC_14 Người dùng đã đăng nhập vào hệ thống

7.2 Xóa bình luận UC_15 Người dùng đã đăng nhập vào hệ thống

8 Trở thành giảng viên UC_16 Người dùng đã đăng nhập với quyền học viên

9 Tạo phòng học trực tuyến UC_17 Người dùng đã đăng nhập với quyền giảng viên

10 Thực hiện Quiz UC_18 Người dùng đã đăng nhập

11 Xem lịch sử thực hiện Quiz UC_19 Người dùng đã đăng nhập

12 Đánh giá khóa học UC_20 Người dùng đã mua khóa học

13 Xem thông tin hóa đơn UC_21 Người dùng đã mua khóa học

14 Quản lý số dư giảng viên UC_22 Người dùng đã đăng nhập với quyền quản trị viên

15 Quản lý tài khoản trang web UC_23 Người dùng đã đăng nhập với quyền quản trị viên

15.1 Kích hoạt tài khoản bị vô hiệu hóa UC_24 Người dùng đã đăng nhập với quyền quản trị viên

15.2 Vô hiệu hóa tài khoản đang hoạt động

Người dùng đã đăng nhập với quyền quản trị viên

Bảng 3.2: Bảng yêu cầu danh cho Usecase Mobile

No Name Usecase Usecase id Actor

1 Đăng ký UCM_01 Người dùng chưa có tài khoản trên hệ thống

2 Đăng nhập UCM_02 Người dùng đã có tài khoản trên hệ thống

3 Đăng xuất UCM_03 Người dùng đã đăng nhập vào hệ thống

4 Tìm kiếm khóa học UCM_04 Người dùng chưa có tài khoản hoặc đã đăng nhập vào hệ thống

5 Xem thông tin khóa học UCM_05 Người dùng đã đăng nhập hoặc người dùng chưa đăng nhập

5.1 Đăng ký khóa học UCM_06 Người dùng đã đăng nhập vào hệ thống

5.2 Xem chi tiết khóa học UCM_07 Người dùng đã đăng nhập vào hệ thống

5.2 Xem bài học UCM_08 Người dùng đã đăng nhập vào hệ thống

5.3 Thanh toán UCM_09 Người dùng đã đăng nhập vào hệ thống

6 Thực hiện Quiz UCM_10 Người dùng đã đăng nhập vào hệ thống

3.2.3.1 Đặc tả Usecase actor User (Web)

Bảng 3.3: Đặc tả Usecase Đăng ký

Use Case No UC_01 Use case version 1.0

Use case name Đăng ký

● Người dùng chưa có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng ký tài khoản

● Người dùng có tài khoản hợp lệ có thể sử dụng trên hệ thống

● Người dùng chưa nhập tài khoản với mật khẩu của mình

● Người dùng bấm nút “Register”

● Người dùng chưa có tài khoản trên hệ thống

● Thành công: Người dùng đăng ký được với hệ thống

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

Người dùng khởi động ứng dụng và thấy màn hình "Đăng ký" Hệ thống yêu cầu nhập thông tin cá nhân, sau đó tiếp tục với việc nhập tài khoản và mật khẩu.

2 Người dùng nhập thông tin hệ thống yêu cầu

3 Người dùng nhấn nút “Register” Hệ thống chuyển sang màn hình đăng nhập [Exception 1] [Exception 2]

1 Lỗi mạng Không chuyển về trang chủ

2 -Thông tin đăng ký chưa hợp lệ

(thiếu trường thông tin, sai định dạng dữ liệu)

-Nhập xác nhận mật khẩu sai

Hệ thống sẽ hiện thông báo (alert) và có warning dòng dữ liệu cho người dùng

● Tên đăng nhập: không được để trống

● Mật khẩu: không được để trống, chiều dài tối thiểu 8 ký tự, phải bao gồm 1 chữ cái viết hoa, chữ số và 1 ký tự đặc biệt

● Email: có định dạng @gmail.com

● Trường họ tên, số điện thoại không được để trống

Bảng 3.4: Đặc tả Usecase Đăng nhập

Use Case No UC_02 Use case version 1.0

Use case name Đăng nhập

Author Châu Huỳnh Phước Toàn

● Người dùng đã có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng nhập vào hệ thống

● Người dùng có thể đăng nhập và sử dụng các chức năng với quyền tương ứng

● Người dùng chưa đăng nhập vào hệ thống

● Người dùng bấm nút “Log in”

● Người dùng chưa đăng nhập vào hệ thống và đã có tài khoản

● Thành công: Người dùng đăng nhập được với hệ thống và sử dụng được các chức năng với quyền tương ứng

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

Người dùng mở ứng dụng và được hiển thị màn hình "Đăng nhập" Tại đây, hệ thống yêu cầu người dùng nhập các thông tin cá nhân, bao gồm tài khoản và mật khẩu.

2 Người dùng nhập thông tin hệ thống yêu cầu

3 Người dùng nhấn nút “Login” Hệ thống chuyển sang trang chủ

1 Lỗi mạng Không chuyển về trang chủ

2 Sai tài khoản mật khẩu Hệ thống sẽ hiện thông báo (alert)

● Tên đăng nhập: không được để trống

● Mật khẩu: không được để trống

Bảng 3.5: Đặc tả Usecase Đăng xuất

Use Case No UC_03 Use case version 1.0

Use case name Đăng xuất

● Người dùng đã có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng xuất ra khỏi hệ thống

● Người dùng có thể đăng xuất khỏi hệ thống

● Người dùng đã đăng nhập và click chọn Sign out tại menu người dùng

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Màn hình chuyển về trang đăng nhập

STEP Actor Action System Response

1 Người dùng nhấp chọn Sign out tại menu người dùng

Hệ thống chuyển từ form hiện tại sang form đăng nhập

No Actor Action System Response

1 Lỗi mạng Không chuyển về trang đăng nhập

Bảng 3.6: Đặc tả Usecase Tìm kiếm khóa học

Use Case No UC_04 Use case version 1.0

Use case name Tìm kiếm khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng chưa có tài khoản hoặc đã đăng nhập vào hệ thống

● Use case này cho phép người dùng tìm kiếm danh sách khóa học theo yêu cầu

● Người dùng có thể tìm kiếm được khóa học mong muốn

● Người dùng nhập thông tin tìm kiếm

● Người dùng bấm nút “Search”

● Người dùng chưa đăng nhập vào hệ thống hoặc đã đăng nhập vào hệ thống

● Thành công: Người dùng tìm kiếm được khóa học mong muốn

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống sẽ hiển thị trang chủ trong đó có thanh tìm kiếm

2 Người dùng nhập thông tin cần tìm kiếm

3 Người dùng nhấn nút “Search” Hệ thống chuyển sang màn hình tìm kiếm với nội dung người dùng tìm kiếm [Exception 1]

1 Nhập nội dung không thể tìm kiếm Trả về hết sản phẩm

Hình 3.8 Sơ đồ use case xem thông tin khóa học

Bảng 3.7: Đặc tả Usecase Xem thông tin khóa học

Use Case No UC_05 Use case version 1.0

Use case name Xem thông tin khóa học

● Người dùng đã đăng nhập hoặc người dùng chưa đăng nhập

● Use case này cho phép người dùng xem thông tin khóa học

● Người dùng có thể xem thông tin tất cả khóa học

● Người dùng click vào khóa học trong danh sách

● Người dùng chưa đăng nhập vào hệ thống hoặc đã đăng nhập vào hệ thống

● Thành công: Show được thông tin tất cả khóa học

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng nhấn nút “Course” Hệ thống chuyển sang màn hình khóa học [Exception 1]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

Bảng 3.8: Đặc tả Usecase Đăng ký khóa học

Use Case No UC_06 Use case version 1.0

Use case name Đăng ký khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng đăng ký khóa học

● Người dùng có thể đăng ký khóa học mong muốn

● Người dùng bấm nút “Enroll”

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Đăng ký thành công được khóa học

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng click chọn khóa học tương ứng

Hệ thống chuyển sang màn hình khóa học

3 Người dùng chọn khóa học mong muốn

4 Người dùng bấm vào nút

Chuyển sang trang thanh toán [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Mạng yếu Quay liên tục không load được

Bảng 3.9: Đặc tả Usecase Xem chi tiết khóa học

Use Case No UC_07 Use case version 1.0

Use case name Xem chi tiết khóa học

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem thông tin chi tiết khóa học

● Người dùng có thể xem chi tiết khóa học

● Người dùng bấm nút “Find out more”, ảnh thumbnail hoặc tên khóa học

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Vào được trang chi tiết của đúng khóa học đó

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng bấm nút “Find out more”, ảnh thumbnail hoặc tên khóa học

Hệ thống chuyển sang màn hình khóa học

3 Người dùng chọn khóa học mong muốn

4 Người dùng bấm vào nút “View more detail”

Chuyển sang trang chi tiết khóa học [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Load sai trang Không load đúng được trang chi tiết khóa học đó

Bảng 3.10: Đặc tả Usecase Xem bài học

Use Case No UC_08 Use case version 1.0

Use case name Xem bài học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem thông tin chi tiết bài học

● Người dùng có thể xem chi tiết bài học

● Người dùng bấm nút “Study now”

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Vào được trang bài học chi tiết của đúng khóa học đó

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

Hệ thống chuyển sang trang danh mục khóa học

3 Người dùng chọn khóa học mong muốn

4 Người dùng bấm nút “Find out more”, ảnh thumbnail hoặc tên khóa học

Chuyển sang trang chi tiết khóa học [Exception 2]

5 Người dùng bấm vào nút “Study now”

Chuyển trang trang chi tiết bài học [Exception 3]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Load sai trang Không load đúng được trang chi tiết khóa học đó

3 Load sai trang Không load đúng được bài học chi tiết khóa học đó

● Danh sách các chương (Topic), chủ đề (Subtopic), bài giảng (Lesson) ở trạng thái khóa chỉ được kích hoạt sau khi người dùng đăng ký và thanh toán thành công

● Các bài thi ôn luyện kiến thức (Exam) ở trạng thái khóa chỉ được kích hoạt sau khi người dùng đăng ký và thanh toán thành công

Bảng 3.11: Đặc tả Usecase Thanh toán

Use Case No UC_09 Use case version 1.0

Use case name Thanh toán

● Người dùng đã đăng nhập

● Use case này cho phép người dùng thanh toán khóa học đã chọn

● Người dùng có thể thanh toán cho khóa học muốn đăng ký

● Người dùng bấm nút “Pay by Account Balance” hoặc “Paypal”

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Vào được trang thanh toán của Paypal hoặc số dư tài khoản được cập nhật

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

Hệ thống chuyển sang trang danh mục khóa học

3 Người dùng chọn khóa học mong muốn

4 Người dùng bấm nút “Find out more”, ảnh thumbnail hoặc tên khóa học

Chuyển sang trang chi tiết khóa học [Exception 2]

5 Người dùng bấm vào nút

“Enroll” hoặc “Add to Cart” tại trang danh mục Ấn chọn “My

Cart” và click “View Detail”

Chuyển trang trang thanh toán [Exception 3]

6 Người dùng bấm vào nút “Pay by Account Balance” hoặc

Thông báo thanh toán thành công [Exception 4] [Exception 5] [Exception 6]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Load sai trang Không load đúng được trang chi tiết khóa học đó

3 Load sai trang Không load đúng được bài học chi tiết khóa học đó

4 Mạng yếu Không load được trang thanh toán

5 Số dư tài khoản không đủ Hiện thông báo (alert) cho người dùng

6 “Pay by Account Balance” với người dung phân quyền học viên

Hiện thông báo (alert) cho người dùng

Hình 3.9 Sơ đồ use case quản lý khóa học

Bảng 3.12: Đặc tả Usecase Quản lý khóa học

Use Case No UC_10 Use case version 1.0

Use case name Quản lý khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập với quyền giảng viên

● Use case này cho phép giảng viên quản lý khóa học

● Giảng viên có thể tạo, chỉnh sửa, xóa khóa học; quản lý bộ câu hỏi (Questionpool) và bộ đề kiểm tra năng lực (Exam)

● Người dùng bấm nút “Publish”

● Người dùng đã đăng nhập vào hệ thống với quyền giảng viên

● Thành công: Thay đổi và cập nhật nội dung khóa học theo mong muốn người dùng

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng nhấn nút “Publish

Course” hoặc “Edit Course” tại trang quản lý khóa học đã xuất bản của giảng viên

Hệ thống chuyển sang màn hình Quản lý khóa học [Exception 1]

3 Người dùng thực hiện thao tác mong muốn

4 Người dùng bấm vào nút

Chuyển sang trang khóa học [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Load sai trang Không load đúng được trang chi tiết khóa học đó

Bảng 3.13: Đặc tả Usecase Tạo nội dung bài học

Use Case No UC_11 Use case version 1.0

Use case name Tạo nội dung bài học

● Người dùng đã đăng nhập với quyền giảng viên

● Use case này cho phép giảng viên tạo khóa học với bài học bên trong

● Giảng viên có thể tạo được khóa học với bài học bên trong

● Người dùng bấm nút “Publish Course”

● Người dùng đã đăng nhập vào hệ thống với quyền giảng viên

● Thành công: Tạo được khóa học thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Giảng viên mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng nhấn nút “Publish

Course” hoặc “Edit Course” tại trang quản lý khóa học đã xuất bản của giảng viên

Hệ thống chuyển sang màn hình Create Course

3 Người dùng bấm vào nút

Hiển thị form Tạo khóa học [Exception 2]

4 Người dùng nhập vào thông tin theo yêu cầu

3 Người dùng bấm vào nút “Add

Hiển thị dialog Tạo bài học [Exception 3]

4 Người dùng nhập vào thông tin theo yêu cầu

5 Người dùng bấm vào nút

Chuyển sang trang khóa học [Exception 4]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Lỗi hệ thống Không hiện được form

3 Lỗi hệ thống Không hiện được dialog

4 Load sai trang Không load đúng được trang chi tiết khóa học đó

Bảng 3.14: Đặc tả Usecase Tạo bài Quiz

Use Case No UC_12 Use case version 1.0

Use case name Tạo Quiz

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập với quyền giảng viên

● Use case này cho phép giảng viên tạo khóa học với Quiz bên trong

● Giảng viên có thể tạo được khóa học với Quiz bên trong

● Người dùng bấm nút “Publish Course”

● Người dùng đã đăng nhập vào hệ thống với quyền giảng viên

● Thành công: Tạo được Quiz thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Giảng viên mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng nhấn nút “Publish

Hệ thống chuyển sang màn hình Create Course

3 Người dùng bấm vào nút

Hiển thị dialog Tạo bộ câu hỏi [Exception 2]

4 Người dùng nhập vào thông tin theo yêu cầu

3 Người dùng bấm vào nút

Hiển thị dialog Tạo bài kiểm tra [Exception 3]

4 Người dùng nhập vào thông tin theo yêu cầu

5 Người dùng bấm vào nút

Chuyển sang trang khóa học [Exception 4]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học

2 Lỗi hệ thống Không tạo được Question Pool

3 Lỗi hệ thống Không tạo được Exam

4 Load sai trang Không load đúng được trang chi tiết khóa học đó

Hình 3.10 Sơ đồ use case bình luận

Bảng 3.15: Đặc tả Usecase Bình luận

Use Case No UC_13 Use case version 1.0

Use case name Bình luận

● Người dùng người dùng đã đăng nhập

● Use case này cho phép người dùng bình luận

● Người dùng có thể tạo được bình luận

● Người dùng nhập nội dung bình luận

● Người dùng bấm nút “Leave Your Comment”

● Người dùng chưa đăng nhập hoặc đã đăng nhập

● Thành công: Bình luận thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ với thanh bình luận ở dưới cùng của trang

2 Người dùng nhập nội dung bình luận

3 Người dùng bấm vào nút “Leave

Hiển thị bình luận vừa nhập [Exception 1]

No Actor Action System Response

1 Lỗi mạng Không hiện được bình luận vừa nhập

Bảng 3.16: Đậc tả Usecase Chỉnh sửa nội dung bình luận

Use Case No UC_14 Use case version 1.0

Use case name Chỉnh sửa nội dung bình luận

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng chỉnh sửa bình luận

● Người dùng có thể chỉnh sửa được bình luận

● Người dùng chưa đăng nhập hoặc đã đăng nhập

● Thành công: chỉnh sửa bình luận thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ với thanh bình luận ở dưới cùng của trang

2 Người dùng chọn bình luận muốn chỉnh sửa

3 Người dùng bấm vào nút Cho phép chỉnh sửa nội dung bình luận đã nhập [Exception 1]

4 Người dùng nhập vào nội dung muốn chỉnh sửa

5 Người dùng bấm vào nút “Edit

Hiển thị lại bình luận vừa chỉnh sửa [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không hiện chỉnh sửa bình luận

2 Lỗi mạng Không hiện được bình luận vừa chỉnh sửa

Bảng 3.17: Đặc tả Usecase Xóa bình luận

Use Case No UC_15 Use case version 1.0

Use case name Xóa bình luận

● Người dùng chưa đăng nhập hoặc người dùng đã đăng nhập

● Use case này cho phép người dùng xóa bình luận

● Người dùng có thể xóa được bình luận

● Người dùng chưa đăng nhập hoặc đã đăng nhập

● Thành công: xóa bình luận thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ với thanh bình luận ở dưới cùng của trang

2 Người dùng chọn bình luận muốn xóa

3 Người dùng bấm vào nút Hiển thị lại tất cả bình luận khác

No Actor Action System Response

1 Lỗi mạng Load lại vẫn hiện bình luận đã xóa

● Khi xóa bình luận các bình luận trả lời đi kèm (Reply) cũng sẽ bị xóa khỏi hệ thống

Bảng 3.18: Đặc tả Usecase Trở thành giảng viên

Use Case No UC_16 Use case version 1.0

Use case name Trở thành giảng viên

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập với quyền học viên

● Use case này cho phép người dùng đăng ký trở thành giảng viên trên hệ thống

● Người dùng có thể đăng ký tài khoản trở thành tài khoản giảng viên

● Người dùng bấm nút “Up to Instructor”

● Người dùng đã đăng nhập

● Thành công: cập nhận tài khoản trở thành tài khoản giảng viên thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ với nút

Up to Instructor trên thành nav

2 Người dùng bấm vào nút “Up to

Hệ thống chuyển sang trang đăng ký giảng viên

3 Người dùng bấm vào nút “Get

Hệ thống sẽ cập nhật tài khoản và chuyển sang trang chủ của giảng viên [Exception 2] [Exception 3]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang trở thành giảng viên

2 Lỗi mạng Không chuyển được sang trang chủ với quyền giảng viên

3 Cập nhật tài khoản thất bại Hệ thống sẽ cảnh báo (alert) người dùng

Bảng 3.19: Đặc tả Usecase Tạo phòng học trực tuyến

Use Case No UC_17 Use case version 1.0

Use case name Tạo phòng học trực tuyến

● Người dùng đã đăng nhập với quyền giảng viên

● Use case này cho phép giảng viên tạo phòng học trực tuyến

● Giảng viên có thể tạo được phòng họp mặt

● Giảng viên bấm nút “Create meeting”

● Người dùng đã đăng nhập với quyền giảng viên

● Thành công: tạo phòng học trực tuyến thành công

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Giảng viên mở ứng dụng lên Hệ thống hiển thị trang chủ với nút

“Create Meet” trên thành nav

2 Người dùng bấm vào nút

Hệ thống chuyển sang trang tạo phòng học trực tuyến

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang tạo phòng học trực tuyến hoặc không load được meeting room

Bảng 3.20: Đặc tả Usecase Thực hiện Quiz

Use Case No UC_18 Use case version 1.0

Use case name Thực hiện Quiz

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng thực hiện Quiz

● User hoàn thành được Quiz

● User click chọn vào tại bài thi muốn thực hiện

● Người dùng đã đăng nhập

● Thành công: chuyển đến trang thi và hoàn thành được đề thi ôn tập

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng bấm vào khóa học đã mua

Hệ thống hiển thị khóa học tương ứng

2 Người dùng bấm vào nút tại bài thi muốn thực hiện

Hệ thống chuyển sang trang thi [Exception 1]

3 Người dùng bấm “Summit” để hoàn thành

Hệ thống chuyển qua trang kết quả [Exception 2] [Exception 3]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang thi

2 Lỗi chuyển trang Không chuyển qua được trang kết quả

3 Lỗi cập nhật kết quả thi Hệ thống sẽ hiển thị cảnh báo (alert) cho người dùng

Bảng 3.21: Đặc tả Usecase Xem lịch sử thực hiện Quiz

Use Case No UC_19 Use case version 1.0

Use case name Xem lịch sử thực hiện Quiz

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem lịch sử thực hiện Quiz

● User xem được lịch sử thực hiện Quiz

● User bấm vào nút tại Quiz tương ứng

● Người dùng đã đăng nhập

● Thành công: Xem được lịch sử thực hiện Quiz

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng bấm vào khóa học đã mua

Hệ thống hiển thị khóa học tương ứng

2 Người dùng bấm vào nút Hệ thống chuyển sang trang lịch sử thi [Exception 1]

No Actor Action System Response

1 Lỗi mạng Không cập nhật được lịch sử thi

Bảng 3.22: Đặc tả Usecase Đánh giá khóa học

Use Case No UC_20 Use case version 1.0

Use case name Đánh giá khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng đánh giá khóa học

● User đánh giá được khóa học

● User bấm vào nút “Rating Course”

● Người dùng đã đăng nhập

● Người dung đã đăng ký và thanh toán thành công cho khóa học

● Thành công: Đánh giá được khóa học

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng bấm vào khóa học đã mua

Hệ thống hiển thị khóa học tương ứng [Exception 1]

2 Người dùng bấm vào đánh giá khóa học

Hệ thống hiển thị popup đánh giá khóa học

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang chi tiết khóa học

2 Lỗi hiển thị Không hiện được Popup

Bảng 3.23: Đặc tả Usecase Xem thông tin hóa đơn

Use Case No UC_21 Use case version 1.0

Use case name Xem thông tin hóa đơn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem thông tin hóa đơn

● User xem thông tin hóa đơn

● User bấm vào nút tại trang lịch sử thanh toán

● Người dùng đã đăng nhập

● Thành công: Xem được thông tin hóa đơn

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng bấm nút Invoice trên nav

Hệ thống hiển thị thông tin hóa đơn [Exception 1]

2 Người dùng bấm vào Hệ thống hiển thị popup hóa đơn

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang chi tiết khóa học

2 Lỗi hiển thị Không hiện được Pop up

3.2.3.2 Đặc tả Usecase actor Admin (Web)

Bảng 3.24: Đặc tả Usecase Quản lý số dư giảng viên

Use Case No UC_22 Use case version 1.0

Use case name Quản lý số dư giảng viên

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập với quyền quản trị viên

● Use case này cho phép quản trị viên xem được thu nhập của giảng viên

● Quản trị viên có thể xem được thu nhập của giảng viên

● Quản trị viên bấm nhãn trang “Instructor Balance”

● Người dùng đã đăng nhập với quyền quản trị viên

● Thành công: Hiện được trang xem thu nhập của giảng viên

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Quản trị viên mở trang web lên Hệ thống hiển thị trang chủ với nút mở sidebar bên trái

2 Quản trị viên bấm vào nhãn trang “Instructor Balance”

Hệ thống chuyển sang trang quản lý số dư giảng viên [Exception 1] [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang quản lý số dư giảng viên

2 Không cập nhật được dữ liệu Bảng số liệu hiển thị No Data

Hình 3.11 Sơ đồ use case quản lý tài khoản hệ thống

Bảng 3.25: Đặc tả Usecase Quản lý tài khoản hệ thống

Use Case No UC_23 Use case version 1.0

Use case name Quản lý tài khoản trang web

● Người dùng đã đăng nhập với quyền quản trị viên

● Use case này cho phép quản trị viên xem được tất cả tài khoản của trang web

● Quản trị viên có thể xem được tất cả tài khoản của trang web

● Quản trị viên bấm nút “Account”

● Người dùng đã đăng nhập với quyền admin

● Thành công: Hiện được trang xem tất cả tài khoản của trang

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Quản trị viên mở trang web lên Hệ thống hiển thị trang chủ với nút

Account trên thành nav bên trái

2 User bấm vào nút “Account” Hệ thống chuyển sang trang quản lý tài khoản [Exception 1]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang quản lý tài khoản

Bảng 3.26: Đậc tả Usecase Kích hoạt tài khoản bị vô hiệu hóa

Use Case No UC_24 Use case version 1.0

Use case name Kích hoạt tài khoản bị vô hiệu hóa

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập với quyền quản trị viên

● Use case này cho phép quản trị viên kích hoạt được tài khoản đã vô hiệu hóa

● Quản trị viên kích hoạt được tài khoản đã bị vô hiệu hóa

● Quản trị viên bấm nút

● Người dùng đã đăng nhập với quyền admin

● Thành công: Quản trị viên kích hoạt được tài khoản đã vô hiệu hóa

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Quản trị viên mở ứng dụng lên Hệ thống hiển thị trang chủ với nút manage course trên thành nav bên trái

2 Quản trị viên bấm vào nút Hệ thống chuyển sang trang quản lý tài khoản [Exception 1]

3 Quản trị viên gạt nút sang phải để kích hoạt lại tài khoản đã vô hiệu hóa

Hệ thống cập nhật lại [Exception 2] [Exception 3]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang quản lý tài khoản

2 Lỗi mạng Không gạt nút sang phải được

3 Không cập nhật được trạng thái tài khoản

Hệ thống sẽ hiện cảnh báo (alert) người dùng

Bảng 3.27: Đặc tả Uscase Vô hiệu hóa tài khoản đang hoạt đông

Use Case No UC_25 Use case version 1.0

Use case name Vô hiệu hóa tài khoản đang hoạt động

● Người dùng đã đăng nhập với quyền quản trị viên

● Use case này cho phép quản trị viên vô hiệu hóa được tài khoản đang hoạt động

● Quản trị viên vô hiệu hóa được tài khoản đang hoạt động

● Quản trị viên bấm nút

● Người dùng đã đăng nhập với quyền quản trị viên

● Thành công: Quản trị viên vô hiệu hóa được tài khoản đang hoạt động

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Quản trị viên mở trang web lên Hệ thống hiển thị trang chủ với nút manage course trên thành nav bên trái

2 Quản trị viên bấm vào nút Hệ thống chuyển sang trang quản lý tài khoản [Exception 1]

3 Quản trị viên gạt nút sang trái để vô hiệu hóa tài khoản đang hoạt động

Hệ thống cập nhật lại [Exception 2] [Exception 3]

No Actor Action System Response

1 Lỗi mạng Không chuyển được sang trang quản lý tài khoản

2 Lỗi mạng Không gạt nút sang trái được

3 Không cập nhật được trạng thái tài khoản

Hệ thống sẽ hiện cảnh báo (alert) người dùng

● Tài khoản bị vô hiệu hóa sẽ không thể đăng nhập và có cảnh báo cho người dùng

3.2.3.3 Đặc tả Usecase actor User (Mobile)

Bảng 3.28: Đặc tả Usecase mobile Đăng ký

Use Case No UCM_01 Use case version 1.0

Use case name Đăng ký

● Người dùng chưa có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng ký tài khoản

● Người dùng có tài khoản hợp lệ có thể sử dụng trên hệ thống

● Người dùng chưa nhập tài khoản với mật khẩu của mình

● Người dùng bấm nút “Sign Up”

● Người dùng chưa có tài khoản trên hệ thống

● Thành công: Người dùng đăng ký được với hệ thống

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên và nhấn vào nút sign up

Hệ thống hiển thị màn hình “Đăng ký” Hệ thống yêu cầu người dùng nhập vào các thông tin cá nhân, tài khoản, mật khẩu

2 Người dùng nhập thông tin hệ thống yêu cầu

3 Người dùng nhấn nút “SignUp” Hệ thống chuyển sang màn hình

1 Lỗi mạng Không chuyển về Home

2 Không tạo được tài khoản Hệ thống sẽ hiển thị thông báo (alert) cho người dùng

● Tài khoản: không được để trống

● Mật khẩu: không được để trống

Bảng 3.29: Đặc tả Usecase mobile Đăng nhập

Use Case No UCM_02 Use case version 1.0

Use case name Đăng nhập

Author Châu Huỳnh Phước Toàn

● Người dùng đã có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng nhập vào hệ thống

● Người dùng có thể đăng nhập và sử dụng các chức năng

● Người dùng chưa nhập tài khoản với mật khẩu của mình

● Người dùng bấm nút “Log in”

● Người dùng chưa đăng nhập vào hệ thống và đã có tài khoản

● Thành công: Người dùng đăng nhập được với hệ thống và sử dụng được các chức năng

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị màn hình “Đăng nhập” Hệ thống yêu cầu người dùng nhập vào tài khoản và mật khẩu

2 Người dùng nhập thông tin hệ thống yêu cầu

3 Người dùng nhấn nút “Sign In” Hệ thống chuyển sang trang chủ

1 Lỗi mạng Không chuyển về trang chủ

2 Sai thông tin đăng nhập Hệ thống sẽ hiện thị cảnh báo (alert) cho người dùng

● Tên đăng nhập: không được để trống

● Mật khẩu: không được để trống

Bảng 3.30: Đặc tả Usecase mobile Đăng xuất

Use Case No UCM_03 Use case version 1.0

Use case name Đăng xuất

● Người dùng đã có tài khoản trên hệ thống

● Use case này cho phép người dùng đăng xuất ra khỏi hệ thống

● Người dùng có thể đăng xuất khỏi hệ thống

● Người dùng đã đăng nhập và bấm Sign out ở trang Account

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Màn hình chuyển về form đăng nhập

STEP Actor Action System Response

1 Người dùng bấm nút Signout ở trang Account

Hệ thống chuyển từ trang Account sang trang Đăng nhập

No Actor Action System Response

1 Lỗi mạng Không chuyển về trang đăng nhập

Bảng 3.31: Đặc tả Usecase mobile Tìm kiếm khóa học

Use Case No UCM_04 Use case version 1.0

Use case name Tìm kiếm khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập vào hệ thống

● Use case này cho phép người dùng tìm kiếm thông tin khóa học

● Người dùng có thể tìm kiếm được khóa học mong muốn

● Người dùng nhập thông tin cần tìm kiếm

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Người dùng tìm kiếm được khóa học mong muốn

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống sẽ hiển thị trang Home có bottom Tab bên dưới

2 Người dùng bấm vào nút Search trong Bottom Tab

Hệ thống chuyển sang trang Search

3 Người dùng nhập nội dung tìm kiếm

Hệ thống từ động tìm kiếm nội dung theo từng ký tự người dùng nhập vào [Exception 1]

1 Nhập nội dung không thể tìm kiếm Không trả về sản phẩm nào

Bảng 3.32: Đặc tả Usecase mobile Xem thông tin khóa học

Use case name Xem thông tin khóa học

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem thông tin khóa học

● Người dùng có thể xem thông tin tất cả khóa học

● Người dùng đăng nhập thành công

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Hiển thị được thông tin tất cả khóa học

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị các khóa học trên trang chủ

No Actor Action System Response

1 Lỗi API Không hiển thị được khóa học

Bảng 3.33: Đặc tả Usecase mobile Xem thông tin chi tiết khóa học

Use Case No UCM_06 Use case version 1.0

Use case name Xem chi tiết khóa học

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng xem thông tin chi tiết khóa học

● Người dùng có thể xem chi tiết khóa học

● Người dùng bấm vào khóa học

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Chuyển được đến màn hình chi tiết của đúng khóa học đó

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng bấm vào khóa học Hệ thống chuyển sang màn hình chi tiết khóa học đó [Exception 1]

No Actor Action System Response

1 Lỗi API Không hiện được chi tiết khóa học mong muốn

Bảng 3.34: Đặc tả Usecase mobile Xem bài học

Use Case No UCM_07 Use case version 1.0

Use case name Xem bài học

● Người dùng đã mua khóa học

● Use case này cho phép người dùng xem thông tin chi tiết bài học

● Người dùng có thể xem chi tiết bài học

● Người dùng bấm vào khóa học trong tab MyCourse

● Người dùng đã đăng nhập vào hệ thống và đã mua khóa học đó

● Thành công: Vào được trang bài học chi tiết của đúng khóa học đó

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng bấm vào nút

Hệ thống chuyển sang màn hình khóa học đã mua

3 Người dùng chọn khóa học mong muốn

Hiển thị ra thông tin chi tiết khóa học

4 Người dùng bấm Topic muốn học

Chuyển sang trang chi tiết bài học thuộc topic đó

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang khóa học đã mua

2 Load sai trang Không load đúng được trang chi tiết bài học đó

Bảng 3.35: Đặc tả Usecase mobile Thanh toán

Use Case No UCM_08 Use case version 1.0

Use case name Thanh toán

Author Châu Huỳnh Phước Toàn

● Người dùng đã đăng nhập

● Use case này cho phép người dùng thanh toán khóa học đã chọn

● Người dùng có thể thanh toán

● Người dùng bấm nút “Buy now”

● Người dùng đã đăng nhập vào hệ thống

● Thành công: Vào được trang thanh toán của Paypal

● Thất bại: Hệ thống hiển thị lỗi

Step Actor Action System Response

1 Người dùng mở ứng dụng lên Hệ thống hiển thị trang chủ

2 Người dùng bấm vào khóa học muốn mua

Hệ thống chuyển sang màn hình chi tiết khóa học

3 Người dùng bấm vào nút “Buy

Chuyển trang trang thanh toán [Exception 2]

No Actor Action System Response

1 Lỗi mạng Không chuyển sang được trang chi tiết khóa học

2 Mạng yếu Không load được trang thanh toán

THIẾT KẾ ỨNG DỤNG

CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG

Ngày đăng: 05/06/2022, 17:38

HÌNH ẢNH LIÊN QUAN

Hình 3.3 Khảo sát trang SkillShare - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.3 Khảo sát trang SkillShare (Trang 28)
Hình 3.5 Sơ đồ use case actor User (Web) - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.5 Sơ đồ use case actor User (Web) (Trang 31)
Hình 3.6: Sơ đồ Usecase actor User (Mobile) - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.6 Sơ đồ Usecase actor User (Mobile) (Trang 32)
Hình 3.7 Sơ đồ Usecase actor Admin (Web)  3.2.2. Bảng Requirement dành cho Usecase - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3.7 Sơ đồ Usecase actor Admin (Web) 3.2.2. Bảng Requirement dành cho Usecase (Trang 33)
4.1.1. Sơ đồ thiết kế dữ liệu (Database Diagram) - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
4.1.1. Sơ đồ thiết kế dữ liệu (Database Diagram) (Trang 84)
4.2. Sơ đồ tuần tự - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
4.2. Sơ đồ tuần tự (Trang 98)
Hình 4.3 Sequence Đăng ký tài khoản - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.3 Sequence Đăng ký tài khoản (Trang 99)
Hình 4.5 Sequence Tạo nội dung chương - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.5 Sequence Tạo nội dung chương (Trang 100)
Hình 4.7 Sequence Tạo nội dung bài học - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.7 Sequence Tạo nội dung bài học (Trang 101)
Hình 4.8 Sequence Mua khóa học - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.8 Sequence Mua khóa học (Trang 102)
Hình 4.9 Sequence Thanh toán - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.9 Sequence Thanh toán (Trang 102)
Hình 4.12 Sequence Thực hiện bài thi - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.12 Sequence Thực hiện bài thi (Trang 104)
Hình 4.15 Sequence Chỉnh sửa/ xóa đề thi - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.15 Sequence Chỉnh sửa/ xóa đề thi (Trang 105)
Hình 4.16 Sequence Đăng bình luận - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.16 Sequence Đăng bình luận (Trang 106)
Hình 4.18: Sequence Quản lý tài khoản - Xây dựng website và ứng dụng mobile dạy học trực tuyến   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4.18 Sequence Quản lý tài khoản (Trang 107)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w