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

đồ án 2 ứng dụng luyện tập và dinh dưỡng

45 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Ứng Dụng Luyện Tập Và Dinh Dưỡng
Tác giả Lưu Lê Bá Chính, Nguyễn Ngọc Quang Huy
Người hướng dẫn Thạc Sỹ Nguyễn Công Hoan
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại báo cáo đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 45
Dung lượng 4,73 MB

Nội dung

Giới thiệu React Native là một framework mã nguồn mở được sáng tạo bởi Facebook Nó được sử dụng để phát triển ứng dụng di động Android, iOS, Web và UWP bằng cách chophép các nhà phát tri

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 LUYỆN TẬP VÀ DINH DƯỠNG

Giảng viên hướng dẫn:

Thạc sỹ Nguyễn Công Hoan

Sinh viên thực hiện:

20521133 - Lưu Lê Bá Chính

20521401 - Nguyễn Ngọc Quang Huy

Trang 2

LỜI CẢM ƠN

Lời đầu tiên cho phép nhóm em gửi lời cảm ơn chân thành và lòng biết ơn sâu sắcđến quý tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – ĐHQG TPHCM vàquý Thầy Cô khoa Công nghệ phần mềm, đặc biệt là Thầy Nguyễn Công Hoan đã truyềndạy những kiến thức cơ bản làm nền tảng để thực hiện đề tài và đã trực tiếp hướng dẫn,tận tình sửa chữa, đóng góp nhiều ý kiến, kinh nghiệm quý báu cho nhóm hoàn thành tốtbáo cáo môn học

Trong suốt quá trình thực hiện đề tài, nhóm em đã vận dụng tối đa những kiếnthức nền tảng đã tích lũy đồng thời nghiên cứu những kiến thức mới để phục vụ làm đồ

án Tuy nhiên, chúng em cũng gặp nhiều khó khăn nhất định nên những hạn chế, thiếu sót

là điều khó tránh khỏi Chính vì vậy chúng em rất mong nhận được sự góp ý, nhận xét từphía Thầy để bổ sung kiến thức không chỉ để hoàn thiện cho chính bản thân mình Nhóm

em xin chân thành cảm ơn

Tp.HCM, ngày 25 tháng 12 năm 2023

Nhóm sinh viên thực hiện

Lưu Lê Bá ChínhNguyễn Ngọc Quang Huy

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 6

CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề

Trong thời kì mà đời sống con người ngày càng được cải thiện thì con người có xu hướngchăm sóc bản thân Đặc biệt là sau đợt dịch Covid-19 bùng phát từ năm 2020 thì đến naycon người ngày càng quan tâm sức khoẻ và thấy vai trò của nó đối với cuộc sống Mộtứng dụng liên quan đến tập luyện và dinh dưỡng sẽ là một công cụ cho bất kì ai đang theođuổi một lối sống khoa học, khỏe mạnh Cùng với sự phát triển của công nghệ và kỹthuật, các ứng dụng phải ngày phức tạp với nhiều chức năng được tích hợp Việc lựachọn ứng dụng cho người dùng cũng ngày càng khó khăn vì số lượng ứng dụng ngày mộtlớn Nutrition Warrior ra đời như một giải pháp ưu việt để đem đến mọi thứ tiện lợi, thiếtthực và hữu dụng nhất đến với người dùng Nutrition Warrior sẽ theo dõi sức khoẻ củabạn thông qua 2 tiêu chí: luyện tập và chế độ dinh dưỡng Ứng dụng sẽ bao gồm nhữngbài tập thể dục, được thiết kế để sắp xếp phù hợp cho từng đối tượng cũng như nhữngthông tin về dinh dưỡng, món ăn giúp bạn tracking, điều chỉnh thói quen ăn uống trở nênkhoa học hơn bao giờ hết

1.2 Mục tiêu

Ứng dụng luyện tập và dinh dưỡng Nutrition Warrior sẽ là ứng dụng đi đầu trong việcứng dụng “Detection” để kiểm soát món ăn cũng như quản lý lượng calo nạp vào cơ thể.Thêm vào đó là hệ thống tập luyện khoa học và chế độ tập luyện, hỗ trợ tối đa cho ngườidùng Nutrition Warrior đem lại cảm giác thoải mái khi sử dụng, bỏ qua chướng ngại vềtâm lý phải ép mình theo một khuôn khổ Nutrition Warrior sẽ thay đổi con người từ thểchất đến tinh thần

1.3 Phạm vi

❖ Lên kế hoạch luyện tập:

➢ Tạo và theo dõi kế hoạch luyện tập dựa trên mục tiêu cá nhân và cấp độ thể chất của người dùng

➢ Cung cấp bài tập và chương trình tập luyện đa dạng

❖ Theo dõi hoạt động vận động:

➢ Ghi lại thông tin về các hoạt động vận động hàng ngày

❖ Quản lý dinh dưỡng:

➢ Theo dõi lịch sử ăn uống và cung cấp gợi ý về chế độ dinh dưỡng dựa trên mục tiêu cá nhân

Trang 7

➢ Tính toán lượng calo tiêu thụ và cung cấp thông tin dinh dưỡng của các thực phẩm.

❖ Nhắc nhở và lịch trình:

➢ Gửi thông báo nhắc nhở về việc tập luyện và ăn uống

➢ Tạo lịch trình hợp lý cho các buổi tập và bữa ăn

❖ Theo dõi tiến trình và đạt được mục tiêu:

➢ Hiển thị biểu đồ và thống kê về tiến trình luyện tập và dinh dưỡng

➢ Đặt mục tiêu và theo dõi việc đạt được chúng

❖ Đánh giá sức khỏe:

➢ Cung cấp các công cụ đánh giá sức khỏe như đo chỉ số BMI

1.4 Yêu cầu chức năng

Đảm bảo tất cả chức năng từ cơ bản đến nâng cao:

+ Xem các bài tập luyện

+ Tra cứu thông tin món ăn

+ Nhận diện món ăn và thành phần dinh dưỡng

+ Quản lý lượng calo nạp vào

+ Đặt lịch trình ăn uống và tập luyện

+ Biểu đồ theo dõi quá trình

+ Quản lý thông tin cá nhân

+ Chia sẻ thông tin lên mạng xã hội

1.5 Yêu cầu phi chức năng

1 Hiệu suất:

Ứng dụng phải có thời gian phản hồi nhanh chóng khi người dùng tương tác với nó, đặc biệt là trong việc theo dõi và ghi lại thông tin về luyện tập và dinh dưỡng

2 Dễ sử dụng và Giao diện người dùng:

Giao diện người dùng phải được thiết kế sao cho dễ hiểu và thân thiện với người dùng

3 Bảo mật và Quyền riêng tư:

Đảm bảo an toàn thông tin cá nhân của người dùng, đặc biệt là thông tin liên quan đến sức khỏe và dinh dưỡng

4 Đa nền tảng:

Trang 8

Cung cấp hỗ trợ cho nhiều ngôn ngữ để thuận tiện cho người sử dụng trên khắp thế giới.

Đảm bảo ứng dụng hoạt động mượt mà trên nhiều nền tảng, chẳng hạn như iOS và Android

5 Khả năng mở rộng:

Cung cấp cập nhật định kỳ để bổ sung tính năng mới và sửa lỗi

Hỗ trợ quá trình nâng cấp mà không làm mất dữ liệu cá nhân của người dùng

Trang 9

CHƯƠNG 2: CÔNG NGHỆ

1 1 React Native

1.1 Giới thiệu

React Native là một framework mã nguồn mở được sáng tạo bởi Facebook Nó

được sử dụng để phát triển ứng dụng di động Android, iOS, Web và UWP bằng cách chophép các nhà phát triển sử dụng React cùng với môi trường ứng dụng gốc (native) Trêncác phiên bản hệ điều hành Windows đều được trang bị sẵn tính năng Remote Desktop.Tuy nhiên để có thể sử dụng tính năng này bạn sẽ phải kích hoạt chúng trước tiên

● Native App là tên gọi của những ứng dụng được xây dựng và phát triển bằngnhững công cụ do chính nhà phát triển cung cấp cho lập trình viên Hai nhà pháttriển App hàng đầu là Android và iOs

● Hybrid App là sự kết hợp giữa ứng dụng Web và ứng dụng mobile Người dùng cóthể cài đặt lên điện thoại của mình giống như những ứng dụng Native bình thường,vừa có thể tìm thấy ở những kho ứng dụng trả phí

1.2 Nguyên lý hoạt động

React Native được viết bằng sự kết hợp của JavaScript và JXL, một mã đánh dấu

Trang 10

đặc biệt giống với XML Framework có khả năng thao tác với cả hai thread là mainthread và JS thread Mỗi thread đều có vai trò riêng biệt.

● Main thread: Đảm nhiệm vai trò cập nhật giao diện người dùng và xử lý tương tácngười dùng

● JS thread: Đảm bảo hệ thống hoạt động hiệu quả thông qua việc thực thi và xử lýcode JavaScript

Nguyên lý hoạt động của RN gần như tương tự với React React Native không sử

dụng thao tác với DOM và HTML mà chạy một quá trình xử lý nền với nền tảng

gốc

React Native sử dụng Bridge (cầu nối) Mặc dù các thread JavaScript và native

được viết bằng các ngôn ngữ hoàn toàn khác nhau, nhưng Bridge là tính năng cầu

nối giúp thao tác hai chiều có thể thực hiện dễ dàng hơn

1.3 Ưu điểm

Một số ưu điểm mà có thể nhìn thấy ngay được khi mới bắt đầu tìm hiểu về nó như là:

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

● Vẫn đòi hỏi native code

● Hiệu năng sẽ thấp hơn với app thuần native code

● Bảo mật không cao do dựa trên JS

● Quản lý bộ nhớ

● Khả năng tùy biến cũng không thực sự tốt đối với một vài module

Trang 11

2 Django Rest Framework

Django REST framework là một bộ công cụ mạnh mẽ và linh hoạt để xây dựng các APIweb

Một số lý do bạn có thể muốn sử dụng REST framework:

● Web browsable API là một ưu điểm lớn về tính sử dụng cho các nhà phát triển của bạn

Trang 12

● Các chính sách xác thực bao gồm các gói cho OAuth1a và OAuth2.

● Serialization hỗ trợ cả nguồn dữ liệu ORM và không phải ORM

● Tùy chỉnh linh hoạt - chỉ cần sử dụng các chế độ xem dựa trên hàm thông thường nếu bạn không cần những tính năng mạnh mẽ hơn

● Tài liệu mở rộng và hỗ trợ cộng đồng tốt

● Được sử dụng và tin cậy bởi các công ty được công nhận quốc tế bao gồm

Mozilla, Red Hat, Heroku và Eventbrite

3 MongoDB

MongoDB là một database hướng tài liệu (document), một dạng NoSQL database Vì

thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với cáctài liệu như JSON có một schema rất linh hoạt gọi là BSON MongoDB sử dụng lưu trữ

dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và cácdocument khác nhau Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn

sẽ rất nhanh

Các feature của MongoDB gồm có:

● Các ad hoc query: hỗ trợ search bằng field, các phép search thông thường,

regular expression searches, và range queries

● Indexing: bất kì field nào trong BSON document cũng có thể được index.

● Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản

đang tồn tại, đang sử dụng Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở

dữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao

Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố

● Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả về

kết quả đã được tính toán Các phép toán tập hợp nhóm các giá trị từ nhiều

Trang 13

Document lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm đó để trả về một kết quả duy nhất Trong SQL, count(*) và GROUP BY là tương đương với Aggregation trong MongoDB.

● Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những

function trên và hoạt động như một cách phân phối qua sharding

Ưu điểm của MongoDB

● Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, toàn vẹn nên tính sẵn sàng cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ

● Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứng nên tốc

độ đọc và ghi cao

Nhược điểm của MongoDB

● Không ứng dụng được cho các mô hình giao dịch nào có yêu cầu độ chính xác cao do không có ràng buộc

● Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng

● Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộnhớ RAM lớn

● Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức

vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao

4 Yolo

YOLO (You Only Look Once - Nhìn một lần duy nhất) là một thuật toán phát hiện đối

Trang 14

tượng (object detection algorithm) sử dụng một neural network đơn để dự đoán đồng thờicác bounding box cùng với xác suất lớp cho mỗi đối tượng trong ảnh.

YOLO được giới thiệu vào năm 2015 bởi Joseph Redmon, Santosh Divvala, RossGirshick và Ali Farhadi trong nghiên cứu nổi tiếng của họ "You Only Look Once:Unified, Real-Time Object Detection"

4.1 Ưu điểm của YOLO:

2 Độ chính xác cao trong nhận diện:

YOLO vượt xa các mô hình tiên tiến khác về độ chính xác với rất ít lỗi nền

3 Tính Tổng quát Cao hơn:

Trang 15

YOLO đã có một bước tiến nhỏ so với các phiên bản trước bằng cách cung cấp một tổngthể tốt hơn cho các lĩnh vực mới, điều này làm cho nó trở thành lựa chọn tuyệt vời chocác ứng dụng dựa vào việc nhận diện đối tượng một cách nhanh chóng và mạnh mẽ.

4 Mã nguồn mở:

Việc làm cho YOLO trở thành mã nguồn mở đã đưa cộng đồng liên tục cải thiện môhình Điều này là một trong những lý do khiến YOLO có nhiều cải tiến trong thời gianngắn

Yolo Architecture

Kiến trúc hoạt động như sau:

1 Điều chỉnh kích thước ảnh đầu vào thành 448x448 trước khi đi qua mạng tích chập(convolutional network)

2 Một tích chập 1x1 được áp dụng trước để giảm số lượng channels, sau đó là mộttích chập 3x3 để tạo ra đầu ra hình hộp chữ nhật (cuboidal)

3 Hàm kích hoạt được sử dụng là ReLU (Rectified Linear Unit), trừ lớp cuối cùng,nơi sử dụng hàm kích hoạt tuyến tính

4 Một số kỹ thuật bổ sung, chẳng hạn như chuẩn hóa hàng loạt và loại bỏ, tương ứng

Trang 16

sẽ chuẩn hóa mô hình và ngăn không cho mô hình khớp quá mức (overfitting) 4.2 Cách hoạt động của YOLO:

Thuật toán hoạt động dựa trên bốn phương pháp sau đây:

● Residual blocks

● Bounding box regression

● Intersection Over Unions or IOU for short

● Non-Maximum Suppression

1 Residual blocks

Bước đầu tiên này bắt đầu bằng cách chia ảnh gốc (A) thành lưới ô hình vuông NxN cóhình dạng đồng đều, trong đó N trong trường hợp của chúng ta là 4 như được hiển thị trênhình ảnh bên phải Mỗi ô trong lưới này có trách nhiệm định vị và dự đoán lớp của đốitượng mà nó bao phủ, cùng với giá trị xác suất/độ tin cậy

2 Bounding box regression

Bước tiếp theo là xác định các bounding box tương ứng với các hình chữ nhật làm nổi bậttất cả các đối tượng trong ảnh Chúng ta có thể có nhiều bounding box bằng số lượng đốitượng trong một hình ảnh nhất định

Trang 17

YOLO xác định các thuộc tính của các hộp giới hạn này bằng cách sử dụng một mô-đunhồi quy duy nhất theo định dạng sau, trong đó Y là biểu diễn vectơ cuối cùng cho mỗihộp giới hạn.

Y = [pc, bx, by, bh, bw, c1, c2]

Điều này đặc biệt quan trọng trong giai đoạn training của mô hình

pc tương ứng với điểm xác suất của lưới chứa một đối tượng Chẳng hạn, tất cả các lướimàu đỏ sẽ có điểm xác suất cao hơn 0 Hình ảnh bên phải là phiên bản đơn giản hóa vìxác suất của mỗi ô màu vàng bằng 0 (không đáng kể)

bx, by là tọa độ x và y của tâm bounding box đối với ô lưới bao quanh

bh, bw tương ứng với chiều cao và chiều rộng của bounding box đối với ô lưới baoquanh

c1 và c2 tương ứng với hai lớp Người chơi và Bóng Chúng ta có thể có nhiều lớp tùytheo yêu cầu của trường hợp sử dụng

3 Intersection Over Unions or IOU

Trong hầu hết các trường hợp, một đối tượng trong ảnh có thể có nhiều hộp lưới (grid

Trang 18

boxes) để dự đoán, mặc dù không phải tất cả chúng đều phù hợp Mục tiêu của IOU (giátrị từ 0 đến 1) là loại bỏ các hộp lưới như vậy để chỉ giữ lại những hộp có liên quan Đây

là logic đằng sau nó:

Người dùng xác định ngưỡng IOU của mình, ví dụ: có thể là 0,5

Sau đó, YOLO tính toán IOU của mỗi ô lưới là Intersection area chia cho Union Area

Cuối cùng, nó bỏ qua dự đoán về các ô lưới có ngưỡng IOU bé hơn và xem xét những ô

có ngưỡng IOU lớn hơn ngưỡng đã đề ra ở trên (ví dụ 0,5)

Dưới đây là hình minh họa việc áp dụng quy trình chọn lưới cho đối tượng phía dưới bêntrái Chúng ta có thể quan sát rằng đối tượng ban đầu có 2 lưới được dự đoán, sau đó chỉ

có “Lưới 2” được chọn ở cuối

4 Non-Max Suppression or NMS

Việc đặt ngưỡng cho IOU không phải lúc nào cũng đủ vì một đối tượng có thể có nhiềuhộp có IOU vượt quá ngưỡng và việc để lại tất cả các hộp đó có thể gây ra nhiễu Đây lànơi chúng ta có thể sử dụng NMS để chỉ giữ lại những hộp có điểm xác suất phát hiệncao nhất

Trang 19

4.3 Yolov8

YOLOv8 là phiên bản mới nhất của thuật toán YOLO, vượt trội hơn các phiên bản trước

đó bằng cách giới thiệu các sửa đổi khác nhau như mô-đun chú ý không gian, hợp nhấttính năng và tổng hợp ngữ cảnh

Những cải tiến này dẫn đến việc phát hiện đối tượng nhanh hơn và chính xác hơn, khiếnYOLOv8 trở thành một trong những thuật toán phát hiện đối tượng quan trọng trong lĩnhvực này

4.3.1 Các Tính Năng Quan Trọng của YOLOv8

Trong YOLOv8, có nhiều tính năng quan trọng cần tập trung Dưới đây là một số điểmnổi bật của YOLOv8:

● Tăng Cường Độ Chính Xác: YOLOv8 nâng cao độ chính xác trong việc nhận diệnđối tượng so với các phiên bản trước thông qua việc tích hợp các kỹ thuật và tối ưuhóa mới

● Tăng Tốc Độ Mạnh Mẽ: YOLOv8 đạt được tốc độ suy luận nhanh hơn so với các

mô hình nhận diện đối tượng khác trong khi vẫn duy trì độ chính xác cao

● Nhiều Backbones: YOLOv8 hỗ trợ nhiều backbones khác nhau như EfficientNet,ResNet và CSPDarknet, mang lại sự linh hoạt cho người dùng để lựa chọn mô

Trang 20

hình phù hợp nhất cho trường hợp sử dụng cụ thể của họ.

● Huấn Luyện Linh Hoạt: YOLOv8 sử dụng huấn luyện linh hoạt để tối ưu hóa tỷ lệhọc và cân bằng hàm mất mát trong quá trình huấn luyện, từ đó cải thiện hiệu suấtcủa mô hình

● Tăng Cường Dữ Liệu: YOLOv8 sử dụng các kỹ thuật tăng cường dữ liệu tiên tiếnnhư MixUp và CutMix để cải thiện tính đồng nhất và tổng quát của mô hình

● Kiến Trúc Có Thể Tùy Chỉnh: Kiến trúc của YOLOv8 có tính tùy chỉnh cao, chophép người dùng dễ dàng điều chỉnh cấu trúc và các tham số của mô hình phù hợpvới nhu cầu cụ thể của họ

● Mô Hình Đã Được Huấn Luyện Trước: YOLOv8 cung cấp các mô hình đã đượchuấn luyện sẵn để sử dụng dễ dàng và có thể chuyển giao cho nhiều bộ dữ liệukhác nhau

4.3.2 Potential Applications

YOLOv8 có nhiều trường hợp sử dụng khác nhau trong cả nhiệm vụ phát hiện đối tượng

và phân loại hình ảnh Dưới đây là một số ví dụ:

● Xe tự lái: YOLOv8 có thể được sử dụng để phát hiện vật thể theo thời gian thựctrong xe tự lái nhằm phát hiện và theo dõi các phương tiện khác, người đi bộ và tínhiệu giao thông

● Giám sát: YOLOv8 có thể được sử dụng trong các hệ thống giám sát để phát hiện

và theo dõi các đối tượng và con người trong thời gian thực

● Bán lẻ: YOLOv8 có thể được sử dụng trong các cửa hàng bán lẻ để theo dõi mứctồn kho, phát hiện kẻ trộm và theo dõi hành vi của khách hàng

● Hình ảnh y tế: YOLOv8 có thể được sử dụng trong hình ảnh y tế để phát hiện vàphân loại các dị thường và bệnh khác nhau, chẳng hạn như ung thư, khối u và gãyxương

● Nông nghiệp: YOLOv8 có thể theo dõi sự phát triển của cây trồng, phát hiện bệnhcây trồng và xác định sâu bệnh

● Robotics: YOLOv8 có thể được sử dụng trong robot để giúp robot nhận biết và

Trang 21

tương tác với các vật thể trong môi trường của chúng.

Source YOLOv8: https://github.com/ultralytics/ultralytics

5 Docker

5.1 Tại sao lại chọn Docker?:

Lúc chúng ta phát triển ứng dụng trên môi trường phát triển và mục tiêu cuối cùng củachúng ta là release sản phẩm, mục tiêu của chúng ta là sản phẩm chạy tốt trên môi trườngproduction Nhưng có 1 vấn đề nảy sinh là môi trường phát triển thực sự khác với môitrường thử nghiệm (testing) và thực sự khác với môi trường production, khi đó chúng ta lấy

gì đảm bảo rằng code chúng ta chạy tốt trên môi trường dev thì cũng chạy tốt trên môitrường testing và cũng sẽ chạy tốt trên production?

Từ đó Docker ra đời:

● Docker là một nền tảng mở cho phát triển, vận chuyển và chạy ứng dụng

● Docker cho phép bạn tách các ứng dụng ra khỏi cơ sở hạ tầng của mình để có thể cung cấp phần mềm một cách nhanh chóng

● Với Docker, bạn có thể quản lý cơ sở hạ tầng theo cùng cách quản lý ứng dụng của mình

● Bằng cách tận dụng các phương pháp của Docker để vận chuyển, thử nghiệm và triển khai code một cách nhanh chóng, bạn có thể làm giảm đáng kể sự chậm trễ giữa việc viết code và chạy nó trong môi trường thực tế

Trang 22

● Images: là một khuôn mẫu để tạo một container Thường thì image sẽ dựa trên 1image có sẵn với những tùy chỉnh thêm Ví dụ bạn build 1 image dựa trên imageCentos mẫu có sẵn để chạy Nginx và những tùy chỉnh, cấu hình để ứng dụng webcủa bạn có thể chạy được Bạn có thể tự build một image riêng cho mình hoặc sửdụng những image được chia sẽ từ cộng đồng Docker Hub Một image sẽ đượcbuild dựa trên những chỉ dẫn của Dockerfile

● Container: là một instance của một image Bạn có thể create, start, stop, move ordelete container dựa trên Docker API hoặc Docker CLI

● Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host

● Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượngnhư Container, Image, Network và Volumes thông qua REST API Các DockerDaemon cũng giao tiếp với nhau để quản lý các Docker Service

● Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image

● Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo

6 Appium

Appium là một “mobile app testing framework” mã nguồn mở hoàn toàn miễn phí sử dụng.Chúng ta có thể sử dụng nó để kiểm tra tất cả các loại ứng dụng di động, cho dù chúng đượcviết bằng Kotlin hay Java cho Android hay Swift hay Objective-C cho iOS Thậm chí có thểthử nghiệm các ứng dụng di động được viết bằng các ngôn ngữ như React Native hoặcFlutter, sử dụng chế độ xem web để tạo ứng dụng trên nhiều thiết bị di động

Appium là một máy chủ web sử dụng giao thức WebDriver Giao thức này được phát minh bởi Selenium, một phần mềm tự động cũng được sử dụng cho tự động hóa thiết bị

Ngày đăng: 15/05/2024, 09:24

HÌNH ẢNH LIÊN QUAN

Hình phù hợp nhất cho trường hợp sử dụng cụ thể của họ. - đồ án 2 ứng dụng luyện tập và dinh dưỡng
Hình ph ù hợp nhất cho trường hợp sử dụng cụ thể của họ (Trang 20)

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w