1. Trang chủ
  2. » Cao đẳng - Đại học

Đồ án tìm hiểu docker và xây dựng ứng dụng

46 284 7

Đ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

Định dạng
Số trang 46
Dung lượng 1,35 MB

Cấu trúc

  • Chương 1: Kiến thức về Docker (8)
    • 1.1. Giới thiệu sơ lược về Docker (8)
      • 1.1.1. Docker là gì? (8)
      • 1.1.2. Lịch sử ra đời (8)
      • 1.1.3. Roadmap phát triển (8)
    • 1.2. Kiến trúc tổng thể (9)
      • 1.2.1. Docker Engine (9)
      • 1.2.2. Docker Hub (10)
      • 1.2.3. Một số thuật ngữ (10)
    • 1.3. Cách thức hoạt động (11)
    • 1.4. Docker mang lại lợi ích gì? Cho ai? Trong hoàn cảnh nào? (13)
      • 1.3.1. Lợi ích và hoàn cảnh sử dụng (0)
      • 1.3.2. Ai sử dụng Docker (0)
    • 1.5. Một số công cụ phổ biến (13)
      • 1.5.1. Docker Compose (13)
      • 1.5.2. Docker Swarm (13)
    • 1.6. So sánh Docker với các công nghệ tương tự (14)
  • Chương 2: Áp dụng Docker (16)
    • 2.1. Setup Dockerfile (16)
      • 2.1.1. NestJs - backend (16)
      • 2.1.2. VueJs - frontend (17)
    • 2.2. Setup Docker-Compose (19)
      • 2.2.1. Quy trình cơ bản (19)
      • 2.2.2. Docker-compose file (19)
  • Chương 3: Phát triển Website học tiếng anh (21)
    • 3.1. Mô tả ứng dụng (21)
    • 3.2. Sơ đồ Use case (22)
      • 3.2.1. Tổng quát (22)
      • 3.2.2. Đặc tả Use Case (24)
    • 3.3. Sơ đồ Lớp (44)
  • Chương 4: Kết luận và Hướng phát triển (45)
    • 4.1. Kết quả đạt được (45)
    • 4.2. Hạn chế (45)
    • 4.3. Hướng phát triển (45)
  • Chương 5: Tài liệu tham khảo (46)

Nội dung

Kiến thức về Docker

Giới thiệu sơ lược về Docker

Docker là nền tảng lý tưởng cho các nhà phát triển và quản trị hệ thống, cho phép phát triển và triển khai ứng dụng qua công nghệ container Nó tạo ra các môi trường độc lập và tách biệt, giúp khởi chạy và phát triển ứng dụng một cách hiệu quả Khi cần triển khai ứng dụng lên bất kỳ máy chủ nào, chỉ cần chạy container của Docker, ứng dụng sẽ hoạt động ngay lập tức.

 Docker được thành lập bởi ông Solomon Hykes and Sebastien Pahl Nó là sản phẩm của nhóm startup Y Combinator phát triển và được công bố năng 2011

 Lúc đầu Docker project là dự án nội bộ của công ty dotCloud, platform-as-a- service ở Pháp

 Lần đầu tiên docker được công bố dưới dạng open-source là tháng 3 năm 2013

 Từ phiên bản 0.9 thì docker đã dùng những component riêng được biết bằng Go ( Golang ) để thay thế cho việc dùng LXC(linux system) làm môi trường thực thi

 Vào năm 2017 thì docker đã tạo ra Moby project để phát triển vấn đề đa nhân thay cho việc dùng docker engine

 Tháng 9-2013 Red hat và docker công bố hợp tác xoay quanh Fedora, RHEL, OpenShift

 Tháng 10-2014 công bố tích hợp Docker engine vào windows server và hỗ trợ native cho docker client trong windows

In November 2014, Docker announced a partnership with Stratoscale, a company specializing in data center operating systems, with VMware being one of its products Additionally, Docker containers gained support for Amazon's EC2.

 Tháng 12-2014, IBM công bố hợp tác với Docker và tích hợp docker vào Cloud của IBM

 Tháng 6-2015, Docker và 1 số công ty như: CoreOS, Google, Microsoft,

AWS, đã công bố liên kết với nhau để cung cấp giải pháp tiêu chuẩn của hệ điều hành cho software containers

 Tháng 5-2016 nghiên cứu cho thấy những tổ chức chính tham gia đónng góp cho docker là: The Docker Teamm Cisco, Google, Huawei,IBM, Microsoft and Red Hat

 Tháng 6-2016, Microsoft công bố docker có thể sử dụng trên Windown 10

 Tháng 5-2019 WSL2 của windows có thể hỗ trợ chạy Docker.

Kiến trúc tổng thể

Docker consists of two main components: Docker Engine and Docker Hub Docker Engine is a virtualization solution based on container technology, while Docker Hub serves as a Software-as-a-Service platform for sharing images.

Docker Engine là ứng dụng dựa trên kiến trúc client-server với các thành phần chính:

 Docker daemon đóng vai trò như một server Docker daemon có thể build, run và distribute docker container

 Một REST API đóng vai trò như interface để giao tiếp với docker daemon

 Một command line interface (CLI) đóng vai trò như một client

Docker client giao tiếp với Docker daemon thông qua REST API, kết nối qua UNIX socket hoặc giao tiếp mạng Phương thức này cho phép Docker Client và Docker Daemon hoạt động trên cùng một hệ thống hoặc khác hệ thống.

Docker Hub là nền tảng lưu trữ các hình ảnh (image) cả công khai và riêng tư, cho phép người dùng chia sẻ các hình ảnh tùy chỉnh Ngoài ra, người dùng có thể dễ dàng tìm kiếm và tải về các hình ảnh thông qua Docker Client.

Hình ảnh (image) là một gói chứa tất cả thông tin, thư viện và framework cần thiết để tạo ra một container Thông thường, các hình ảnh này được xây dựng dựa trên các hình ảnh cha (base image) đã được cung cấp sẵn bởi Docker.

Container là một công nghệ ảo hóa chia sẻ hệ điều hành với máy chủ, khác với VMware, nơi giả lập phần cứng Điều này giúp tối ưu hóa tài nguyên và giảm thiểu độ trễ khi triển khai ứng dụng.

Các container trong Docker hoạt động độc lập với nhau và với hệ thống host, cho phép người dùng dễ dàng thêm, xóa hoặc sửa đổi container Người dùng cũng có thể kết nối các container với mạng và tạo hình ảnh mới dựa trên trạng thái hiện tại của container mà không làm ảnh hưởng đến hệ thống hoặc các container khác.

Hình 1.3: So sánh kiến trúc của container và Virtual Machines

 Daemon: là một loại chương trình trên các hệ điều hành Like-Unix hoạt động ẩn mà không cần sự kiểm soát bởi user

A Docker Registry serves as a private storage solution for Docker Images, allowing users to push images to the registry and pull them as needed You can utilize your own registry or opt for those provided by cloud service providers such as AWS, Google Cloud, or Microsoft Azure.

Cách thức hoạt động

Docker sử dụng kiến trúc phân lớp để mỗi container hoạt động như một process độc lập và tiết kiệm không gian Các layer này, hay còn gọi là layer trung gian, được tạo ra từ các câu lệnh trong Dockerfile trong quá trình xây dựng một docker image.

Mỗi câu lệnh trong Docker tạo ra một lớp (layer) chồng lên hình ảnh container, và các lớp này sẽ được hash để lưu vào bộ nhớ cache Điều này giúp tối ưu thời gian xây dựng cho những lớp không thay đổi giữa các lần build, cho phép người dùng không cần phải rebuild và sao chép các tệp ở bước COPY nếu câu lệnh không thay đổi.

Sau khi hoàn tất việc xây dựng các câu lệnh, Docker sẽ tạo ra một lớp mới Người dùng có thể truy cập lớp này thông qua câu lệnh docker exec –it Bằng cách này, người dùng có khả năng thay đổi hình ảnh và lưu lại những thay đổi đó bằng câu lệnh docker commit.

Hình 1.4: Kiến trúc phân lớp của container

Docker mang lại lợi ích gì? Cho ai? Trong hoàn cảnh nào?

1.4.1 Lợi ích và hoàn cảnh sử dụng

Sử dụng Docker giúp tăng tốc độ vận chuyển mã, chuẩn hóa hoạt động của ứng dụng, di chuyển mã một cách mượt mà và tiết kiệm chi phí bằng cách tối ưu hóa khả năng sử dụng tài nguyên.

Docker mang đến một đối tượng duy nhất có khả năng hoạt động ổn định trên mọi nền tảng Cú pháp đơn giản và dễ hiểu của Docker cho phép người dùng kiểm soát toàn bộ quá trình triển khai ứng dụng.

 Thứ tư là dễ dàng automate (tự động hóa) việc quản lý các docker container thông qua Kubernetes hoặc Docker Swarm

Container Docker giúp tối ưu hóa việc chạy nhiều mã trên mỗi máy chủ, nâng cao khả năng tận dụng tài nguyên và tiết kiệm chi phí, đồng thời hỗ trợ khả năng mở rộng cho dự án.

 Business Analysist: thường dùng docker để chạy môi trường demo cho khách hàng

 QA & QC: thường dùng docker để chạy môi trường test để kiểm thử sản phầm

 Software Architect dùng để kiểm thử những công nghệ và tính ổn định của các công nghệ trên nhiều nền tảng khác.

Một số công cụ phổ biến

Docker Compose là một công cụ được dùng để quản lý và chạy các Docker

Container Docker Compose cho phép ta cấu hình các container trong một file YAML duy nhất và chạy tất cả các container chỉ với một câu lệnh

Docker Swarm là một công cụ quản lý giúp kết hợp nhiều Docker Engine thành một Docker Engine "ảo" Công cụ này cho phép người dùng dễ dàng quản lý và triển khai các ứng dụng container hóa trong một cụm, nâng cao tính linh hoạt và khả năng mở rộng của hệ thống.

14 công cụ nào giao tiếp với Docker Engine thì cũng có thể giao tiếp với Docker Swarm như bình thường

So sánh Docker với các công nghệ tương tự

Mô phỏng trải nghiệm vận hành

Máy ảo nhưng về vùng chứa và làm như vậy mà không tốn chi phí mô phỏng tài nguyên phần cứng Mặc dù daemon LXD yêu cầu nhân

Linux, nó có thể được cấu hình để truy cập bằng máy khách

Một phần mở rộng của nhân Linux cung cấp công cụ ảo hóa cho người dùng, sử dụng Môi trường ảo để lưu trữ các hệ thống Khách Điều này có nghĩa là nó sử dụng vùng chứa cho toàn bộ hệ điều hành thay vì chỉ cho các ứng dụng và quy trình riêng lẻ.

Sử dụng nhân được vá để cung cấp tính năng ảo hóa cấp hệ điều hành, mỗi máy chủ riêng ảo hoạt động như một quy trình riêng biệt trên cùng một hệ thống máy chủ lưu trữ, mang lại hiệu quả cao mà không cần mô phỏng Tuy nhiên, phương pháp này đã lâu không có bản cập nhật, với lần phát hành cuối cùng vào năm 2007.

Docker Engine trên Windows Server 2016 cho phép truy cập trực tiếp vào nhân Windows, nhưng điều này khiến cho các vùng chứa Docker gốc không thể hoạt động trên Windows Container Thay vào đó, định dạng vùng chứa WSC (Windows Server Container) sẽ được áp dụng.

Quyền truy cập phần cứng trần cho

VPS, nhiều bản phân phối Linux trên cùng một máy chủ

CI / CD và DevOps, Vùng chứa và dữ liệu lớn, Bộ Ứng dụng Người dùng Biệt lập Lưu trữ, Hợp nhất máy chủ

Nhiều VPS lưu trữ và quản trị, và hỗ trợ Legacy

Khả năng tích hợp dễ dễ trung bình

Các công ty sử dụng

FastVPS, Parallels, Pixar Animation Studios, Yandex

DreamHost, Amoebasoft, OpenHosting Inc., Lycos, Pháp, Mosaix Communications, Inc

Áp dụng Docker

Setup Dockerfile

FROM node:12.13-alpine As development WORKDIR /usr/src/app

RUN npm install –onlyelopment COPY

RUN npm run build FROM node:12.13-alpine as production

ARG NODE_ENV=production ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app COPY package*.json /

RUN npm install –only=production COPY

COPY –fromelopment /usr/src/app/dist /distCMD [“node”, “dist/main”]

FROM — chỉ định image gốc: python, unbutu, alpine…

LABEL — cung cấp metadata cho image Có thể sử dụng để add thông tin maintainer Để xem các label của images, dùng lệnh docker inspect

ENV — thiết lập một biến môi trường

RUN — Có thể tạo một lệnh khi build image Được sử dụng để cài đặt các package vào container

COPY — Sao chép các file và thư mục vào container

ADD — Sao chép các file và thư mục vào container

CMD — Cung cấp một lệnh và đối số cho container thực thi Các tham số có thể được ghi đè và chỉ có một CMD

WORKDIR — Thiết lập thư mục đang làm việc cho các chỉ thị khác như: RUN, CMD, ENTRYPOINT, COPY, ADD,…

ARG — Định nghĩa giá trị biến được dùng trong lúc build image

ENTRYPOINT — cung cấp lệnh và đối số cho một container thực thi

EXPOSE — khai báo port lắng nghe của image

VOLUME — tạo một điểm gắn thư mục để truy cập và lưu trữ data

Bước 2: docker build –t

Bước 3: docker run –p 8080:8080 app-name

Bước 1: docker build –t

Hình 2.1: Build dockerfile cho VueJs

Bước 2: docker run -it -p 8080:8080 -v /app/node_modules rm test:latest

Setup Docker-Compose

Cơ bản quy trình dùng docker compose gồm ba bước:

1 Xác định môi trường ứng dụng của bạn bằng Dockerfile để nó có thể được lưu trữ ở mọi nơi

2 Xác định các dịch vụ tạo nên ứng dụng của bạn trong docker-compose.yml để chúng có thể chạy cùng nhau trong một môi trường biệt lập

3 Chạy docker-compose up và bắt đầu chạy toàn bộ ứng dụng của bạn

2.2.2 Docker-compose file version: "3.7" services: my_service: container_name: my_service build: /back_end volumes:

- db_service_name=my_service_db

- db_retry_time000 my_service_db: container_name: my_service_db image: mongo volumes:

In Docker Compose, the 'services' section is used to declare the services included in the configuration The 'build' directive specifies the path to the service and can include the location of the Dockerfile To ensure automatic recovery from database issues, the 'restart' policy is set to 'always.' The 'image' field indicates the name of the image during the build process, while 'container_name' allows you to define a specific name for the container being built Additionally, the 'ports' setting maps container ports to local machine ports for effective communication.

20 environment: tương tự như file env để setup môi trường links: để chỉ ra liên kết của các image với nhau volumes: là nơi chứa data

Phát triển Website học tiếng anh

Mô tả ứng dụng

Website đóng vai trò là cầu nối giữa giáo viên và học viên, cho phép người học dễ dàng tìm kiếm và đăng ký khóa học phù hợp với trình độ của mình Học viên có thể theo dõi bài học qua video hoặc tham gia livestream giảng dạy trực tiếp nếu sử dụng gói tài khoản cao cấp hơn.

Sơ đồ Use case

Hình 3.1: Sơ đồ Use case tổng quát

Hình 3.2: Đặc tả Use case quản lý học viên

Use case name Quản lý học viên

Description Là admin, tôi muốn Quản lý các thông tin học viên, thực hiện chuyển đổi các loại tài khoản

Trigger Khi có nhu cầu chỉnh sửa thông tin học viên

Khi muốn thống kê số lượng học viên để báo cáo cuối năm

Pre-Condition(s)  Admin đã đăng nhập vào tài khoản admin

 Đối với chức năng thăng cấp, tài khoản, học viện phải có tài khoản trong cơ sở dữ liệu

Post-Condition(s)  Hệ thống ghi nhận lại hoạt động

 Admin có thể chỉnh sửa thông tin học viên

 Admin có thể xuất báo cáo về số lượng học viên

Basic Flow 1 Admin truy cập vào phần quản lý học viên

2 Admin chọn lệnh tùy theo nhu cầu

3 Admin xác nhận lại thông tin đã chỉnh sửa

4 Hệ thống ghi lại hoạt động

Alternative Flow 2a Admin chọn lệnh thêm, xóa, sửa thông tin học viên

2a.1 Admin tiến hành chỉnh sửa thông tin học viên Use case tiếp tục bước 3

Admin thực hiện quy trình thăng cấp tài khoản bằng cách xác nhận học viên đã thanh toán, sau đó nhập thời hạn hiệu lực cho tài khoản Student Pro và cuối cùng chuyển đổi tài khoản từ Student Free sang Student Pro.

Use case tiếp tục bước 3 2b.4 Hệ thống gửi mail thông báo đến người dùng

Use case tiếp tục bước 4

2c Admin chọn lệnh giáng cấp tài khoản 2c.1 Admin chuyển loại tài khoản từ Student Pro thành Student Free

Use case tiếp tục bước 3 2c.2 Hệ thống gửi mail thông báo đến người dùng Use case tiếp tục bước 4

2d Admin chọn lệnh thống kê 2d.1 Hệ thống xuất ra bản báo cáo theo định dạng cho trước Use case tiếp tục bước 4

Exception Flow 1 Admin dùng lệnh quay lại

2b.1 Học viên chưa thanh toán

Admin gửi email thông báo nhắc nhở

3 Admin dùng lệnh quay lại

Use case quay lại bước 2

Business Rules BR1: Khi học viên Student Pro hết thời hạn thì hệ thống tự chuyển về Student Free theo quy trình trên

Hình 3.3: Đặc tả Use case quản lý khóa học

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

Description Là Admin, tôi muốn quản lý các thông tin liên quan đến khóa học

Trigger Khi có yêu cầu tạo khóa học từ speaker hoặc nhu cầu xóa khóa học

Pre-Condition(s)  Người dùng đăng nhập vào tài khoản admin

 Trong trường hợp Duyệt yêu cầu tạo khóa học, phải có phiếu yêu cầu tạo khóa học trong cơ sở dữ liệu

Post-Condition(s)  Khóa học có thể được tạo ra hoặc bị xóa

 Hệ thống ghi lại hoạt động

Basic Flow 1 Admin truy cập vào phần quản lý khóa học

2 Admin chọn lệnh tùy theo nhu cầu

4 Hệ thống ghi lại hoạt động

Alternative Flow 2a Admin chọn lệnh Duyệt yêu cầu khóa học

2a.1 Admin điền thông tin khóa học mới

Use case thực hiện bước 3

2a.2 Hệ thống thêm khóa học vào cơ sở dữ liệu

Use case thực hiện bước 4

2b Admin chọn lệnh disable khóa học

Use case tiếp tục bước 3

Exception Flow 1 Admin dùng lệnh quay lại

2a Admin từ chối yêu cầu khóa học Hệ thống gửi thông báo đến speaker tạo yêu cầu khóa học

3 Admin dùng lệnh quay lại

Use case quay lại bước 2

3.2.2.3 Quản lý tài khoản người dùng

Hình 3.4: Đặc tả Use case quản lý tài khoản người dùng

Use case name Quản lý tài khoản người dùng

Description Là admin, tôi muốn quản lý thông tin tài khoản người dùng

Trigger Khi có yêu cầu chỉnh sửa tài khoản người dùng

Pre-Condition(s)  Người dùng đăng nhập vào tài khoản admin

 Có tài khoản người dùng trong cơ sở dữ liệu

Post-Condition(s)  Tài khoản người dùng được chỉnh sửa

 Hệ thống ghi lại hoạt động

Basic Flow 1 Admin truy cập vào phần quản lý người dùng

2 Admin chọn lệnh tùy theo nhu cầu

4 Hệ thống ghi lại hoạt động

Alternative Flow 2a Admin chọn lệnh Thay đổi role

2a.1 Admin chuyển speaker thành user

Use case thực hiện bước 3

2a.2 Admin duyệt phiếu yêu cầu trở thành speaker 2a.3 Admin chuyển user thành speaker

2a.4 Hệ thống gửi thông báo đến user

Use case thực hiện bước 3

2b Admin chọn lệnh Khóa tài khoản

2b.1 Admin chọn tài khoản muốn khóa

Use case thực hiện bước 3

2b.2 Hệ thống sẽ chặn người dùng đăng nhập vào tài khoản user này

2b.3 Hệ thống gửi thông báo đến cho người dùng bị chặn

2c Admin chọn lệnh Bỏ khóa tài khoản

2c.1 Admin chọn tài khoản muốn bỏ khóa

Use case thực hiện bước 3

2c.2 Hệ thống sẽ ngưng chặn người dùng đăng nhập vào tài khoản user này

2c.3 Hệ thống gửi thông báo đến cho người dùng bị chặn

Exception Flow 1 Admin dùng lệnh quay lại

3 Admin dùng lệnh quay lại

Use case quay lại bước 2

Hình 3.5: Đặc tả Use case quản lý speaker

Use case name Quản lý Speaker

Description Là admin, tôi muốn quản lý các thông tin liên quan đến speaker

Trigger Khi Admin có nhu cầu thay đổi thông tin Speaker

Pre-Condition(s)  Người dùng đăng nhập vào tài khoản admin

Post-Condition(s)  Thông tin speaker được chỉnh sửa thành công

 Hệ thống ghi lại hoạt động

Basic Flow 1 Admin truy cập vào phần quản lý người dùng

2 Admin chọn lệnh tùy theo nhu cầu

4 Hệ thống ghi lại hoạt động

Alternative Flow 2a Admin chọn lệnh thêm, xóa, sửa thông tin học viên

2a.1 Admin tiến hành chỉnh sửa thông tin học viên Use case tiếp tục bước 3

2b Admin chọn lệnh thống kê 2d.1 Hệ thống xuất ra bản báo cáo theo định dạng cho trước

Use case tiếp tục bước 4

Exception Flow 1 Admin dùng lệnh quay lại

3 Admin dùng lệnh quay lại

Use case quay lại bước 2

Hình 3.6: Đặc tả Use case tìm kiếm khóa học

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

Description Là User, tôi muốn tìm kiếm các khóa học để tìm hiểu thông tin về khóa học mà tôi muốn

Là User, tôi muốn tìm kiếm các khóa học liên quan đến từ khóa mà tôi muốn

Trigger Khi người dùng muốn tìm kiếm về 1 khóa học nào đó

Pre-Condition(s)  Người dùng đã đăng nhập vào tài khoản (Admin, Student

Post-Condition(s)  Hệ thống thể hiện các thông tin liên quan đến khóa học dựa vào từ khóa người dùng nhập vào hoặc qua lệnh tìm kiếm nâng cao

Basic Flow 1 Người dùng nhấn vào tìm kiếm khóa học

2 Người dùng thực hiện tìm kiếm

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

4 Người dùng chọn lệnh tùy theo nhu cầu

5 Hệ thống ghi lại thông tin hoạt động

Alternative Flow 2a Người dùng chọn tìm kiếm nâng cao

2a.1 Người dùng chọn sử dụng 1 hoặc nhiều các tiêu chí đã được định trước

2a.2 Hệ thống hiện danh sách các khóa học theo tiêu chí mà người dùng chọn

Use case tiếp tục thực hiện bước 3

2b Người dùng chọn tìm kiếm theo từ khóa

2b.1 Người dùng nhập vào từ khóa 2b.2 Hệ thống hiện danh sách các khóa học theo từ khóa mà người dùng nhập

Use case tiếp tục thực hiện bước 3

4a Người dùng chọn lệnh đăng ký khóa học

4a.1 Hệ thống lưu thông tin về yêu cầu đăng ký khóa học người dùng

Use case tiếp tục thực hiện bước 5

4b Người dùng chọn xem thông tin khóa học

4b.1 Hệ thống thể hiện thông tin về khóa học mà người dùng chọn

Exception Flow 4b.1 Nếu người dùng chọn đăng ký khóa học

Use case thực hiện bước 4a

1 + 2 + 3 + 4: Nếu người dùng lệnh hủy hoặc quay lại

Business Rules Các tiêu chí trong tìm kiếm nâng cao sẽ được nhập bởi chủ hệ thống

Hình 3.7: Đặc tả Use case quản lý khóa học cho User

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

Description Là User, tôi muốn quản lý thông tin các khóa học mà mình đã đăng ký

Trigger Người dùng muốn xem các thông tin khóa học mà người dùng đã đăng ký

Pre-Condition(s)  Người dùng đã đăng nhập thành công

 Các khóa học mà người dùng muốn xem thông tin phải được đăng ký học bởi người dùng

Post-Condition(s)  Hệ thống thể hiện các thông tin liên quan đến khóa học

 Hệ thống ghi nhận hoạt động

Basic Flow 1 Người dùng nhấn vào quản lý khóa học

2 Hệ thống sẽ hiện các tin tức về video bài học mới nhất cho người dùng

3 Người dùng chọn các lệnh tùy theo nhu cầu

4 Hệ thống ghi lại thông tin hoạt động

Alternative Flow 3a Người dùng chọn lệnh xem thông tin khóa học

3a.1 Hệ thống thể hiện danh sách các khóa học mà người dùng đã đăng ký

3a.2 Người dùng chọn 1 khóa học 3a.3 Hệ thống hiện tất cả các video buổi học 3a.4 Người dùng chọn 1 video

3a.5 Hệ thống hiện video cho người dùng xem

Use case thực hiện tiếp bước 4

3b Người dùng chọn lệnh xóa khóa học

3b.1 Người dùng chọn khóa học cần hủy 3b.2 Người dùng nhập lý do hủy

3b.3 Hệ thống xử lý yêu cầu hủy khóa học

Use case thực hiện tiếp bước 4

Exception Flow 1 + 3: Người dùng dùng lệnh hủy hoặc quay lại

Business Rules Khi Speaker đăng video bài học mới, người dùng sẽ nhận được mail thông báo

Hình 3.8: Đặc tả Use case quản lý khóa học cho Speaker

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

Description Là Speaker, tôi muốn quản lý thông tin các khóa học mà do tôi dạy

Trigger Speaker có nhu cầu chỉnh sửa thông tin khóa học

Pre-Condition(s)  Speaker phải đăng nhập thành công

Post-Condition(s)  Các khóa học chỉnh sửa thành công

 Hệ thống ghi nhận hoạt động

Basic Flow 1 Speaker nhấn vào quản lý khóa học

2 Speaker chọn lệnh tùy theo nhu cầu

3 Hệ thống ghi lại thông tin hoạt động

Alternative Flow 2a Speaker chọn lệnh Yêu cầu tạo khóa học

2a.1 Speaker điền thông tin cần thiết cho khóa học mới 2a.2 Speaker gửi yêu cầu lên hệ thống

Use case thực hiện tiếp bước 3

2b Speaker chọn lệnh Xóa khóa học

2b.1 Speaker chọn 1 khóa học 2b.2 Hệ thống yêu cầu xác nhận 2b.3 Speaker xác nhận

2b.4 Hệ thống xử lý yêu cầu xóa khóa học 2b.5 Hệ thống gửi thông báo đến các học viên tham gia vào khóa học

Use case thực hiện tiếp bước 3

2c Speaker chọn lệnh Sửa khóa học

2c.1 Speaker chọn 1 khóa học 2c.2 Speaker sửa thông tin khóa học 2c.3 Hệ thống yêu cầu xác nhận 2c.4 Speaker xác nhận

Use case thực hiện tiếp bước 3

Exception Flow 1 + 2 + 3: Speaker dùng lệnh hủy hoặc quay lại

Business Rules Speaker chỉ có quyền khởi tạo yêu cầu tạo khóa học

Hình 3.9: Đặc tả Use case quên mật khẩu

Use case name Quên mật khẩu

Description Là người dùng, tôi muốn khi quên mật khẩu, hệ thống có phương thức thay đổi mật khẩu

Trigger Khi người dùng quên mật khẩu

Post-Condition(s)  Người dùng thay đổi mật khẩu

Basic Flow 1 Người dùng nhấn quên mật khẩu

2 Người dùng nhập mail reset mật khẩu

3 Hệ thống xác nhận mail có trong cơ sở dữ liệu

4 Hệ thống gửi mail reset mật khẩu

5 Người dùng nhấn đường link reset mật khẩu

6 Người dùng tạo mật khẩu mới

7 Hệ thống cấp nhật thông tin vào cơ sở dữ liệu

Exception Flow 2 Người dùng nhập mail không có trong hệ thống

Business Rules Người dùng nhập mật khẩu sai quá 3 lần thì hiện thông báo khuyến khích dùng chức năng quên mật khẩu

3.2.2.8 Cập nhật thông tin tài khoản

Hình 3.10: Đặc tả Use case cập nhật thông tin tài khoản

Use case name Cập nhật thông tin tài khoản

Description Là người dùng, tôi muốn mình có thể chỉnh sửa thông tin tài khoản

Trigger Khi người dùng có nhu cầu thay đổi thông tin tài khoản

Pre-Condition(s)  Người phải đăng nhập thành công

Post-Condition(s)  Thông tin tài khoản được chỉnh sửa thành công

 Hệ thống ghi lại thông tin hành động

Basic Flow 1 Người dùng nhấn Cập nhật thông tin tài khoản

2 Người dùng chỉnh sửa các thông tin cần thiết

3 Hệ thống yêu cầu xác nhận

5 Hệ thống cập nhật thông tin mới vào cơ sở dữ liệu

6 Hệ thống ghi lại thông tin hành động

Exception Flow 1->5: Người dùng dùng lệnh hủy

Hình 3.11: Đặc tả Use case livestream

Description Là speaker, tôi muốn tổ chức buổi livestream trực tuyến để giảng dạy độc quyền cho các Student Pro

Trigger Speaker muốn tổ chức buổi livestream

Pre-Condition(s)  Speaker phải đăng nhập thành công

Post-Condition(s)  Speaker đã livestream thành công

Basic Flow 1 Speaker nhấn Livestream

2 Speaker dùng lệnh bắt đầu livestream

3 Hệ thống xử lý yêu cầu bắt đầu livestream

4 Hệ thống gửi thông báo đến các học viên có loại tài khoản Student Pro

5 Speaker dùng lệnh kết thúc livestream

6 Hệ thống xử lý yêu cầu kết thúc livestream

Exception Flow 1 Người dùng dùng lện quay lại

Hình 3.12: Đặc tả Use case quản lý buổi học

Use case name Quản lý buổi học

Description Là speaker, tôi muốn quản lý thông tin các buổi học của các khóa học của mình

Trigger Speaker có nhu cầu thay đổi thông tin buổi học

Pre-Condition(s)  Speaker đăng nhập thành công

Post-Condition(s)  Thông buổi học được chỉnh sửa thành công

Basic Flow 1 Speaker nhấn Quản lý buổi học

2 Speaker chọn lệnh chỉnh sửa thông tin buổi học

3 Speaker tiến hành chỉnh sửa thông tin buổi học

4 Hệ thống yêu cầu xác nhận lại

6 Hệ thống xử lý yêu cầu chỉnh sửa

Alternative Flow 1 Speaker nhấn Quản lý buổi học

Use case thực thiện Use case USC-09

Exception Flow Người dùng lệnh hủy

Hình 3.13: Đặc tả Use case xem livestream

Use case name Xem livestream

Description Là Student Pro, tôi muốn xem speaker trực tiếp livestream và có thể tương tác trực tiếp với giảng viên thông qua chat

Trigger Người dùng muốn xem livestream của 1 buổi học nào đó

Pre-Condition(s)  Người dùng đăng nhập thành công

 Tài khoản phải là Student Pro

Post-Condition(s)  Student Pro có thể xem livestream

 Student Pro có thể chat với speaker

Basic Flow 1 Student Pro nhấn xem livestream

2 Hệ thống xử lý yêu cầu xem livestream

3 Hệ thống hiện buổi livestream lên người dùng

Alternative Flow 1 Student Pro nhấn xem livestream

2 Hệ thống xử lý yêu cầu xem livestream

3 Hệ thống hiện buổi livestream lên người dùng

4 Student Pro nhập phần bình luận

5 Hệ thống xử lý yêu cầu bình luận

6 Hệ thống hiện phần bình luận

Exception Flow 2 Hệ thống xử lý yêu cầu không thành công

Người dùng dùng lệnh hủy hoặc quay lại:

3.2.2.12 Đăng ký trở thành Speaker

Hình 3.14: Đặc tả Use case đăng ký trở thành speaker

Use case name Đăng ký trở thành Speaker

Description Là học viên, tôi muốn mình có thể đăng ký trở thành Speaker cho hệ thống

Trigger Học viên có yêu cầu trở speaker

Pre-Condition(s)  Student Free đăng nhập thành công

Post-Condition(s)  Hệ thống ghi nhận yêu cầu trở thành speaker

Basic Flow 1 Học viên nhấn đăng ký trở thành speaker

2 Học viên điền các thông tin cần thiết

3 Hệ thống yêu cầu xác nhận

5 Hệ thống ghi nhận yêu cầu

Exception Flow Nếu người dùng dùng lệnh hủy hoặc quay lại

Sơ đồ Lớp

Ngày đăng: 05/09/2021, 20:46

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

TÀI LIỆU LIÊN QUAN

w