HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA ĐA PHƯƠNG TIỆN
BÁO CÁO
THỰC TẬP TỐT NGHIỆP
Đề tài: Xây dựng sản phẩm game “Mô phỏng
lái xe chở rác” phân phối trên chợ Google Store
Nơi thực tập
:
CÔNG TY DASHBIT
INTERACTIVE
Giảng viên
Ths Nguyễn Thị Thanh Tâm
:
hướng dẫn
Sinh viên thực hiện
:
Lê Anh Quân
Mã sinh viên
:
B17DCPT163
Lớp
:
B17PTDPT2
Hà Nội, 2021
1
LỜI CẢM ƠN
Thực tập tốt nghiệp là quá trình thử sức, làm quen với môi trường làm việc
chuyên nghiệp, là bước đầu để xây dựng phát triển sự nghiệp tương lai của mỗi
sinh viên.
Trong thời gian lựa chọn và tìm nơi thực tập cho riêng mình, cơng ty Dashbit
Interactive là nơi hoàn hảo và phù hợp với đinh hướng và con đường mà em sẽ
theo đuổi trong tương lai – Ngành lập trình game .Trong thời gian thực tập tuy có
ít ỏi tại đây, em cơ bản đã được tiếp xúc với các anh chị có kinh nghiệm lâu trong
ngành, em rất vui khi có cơ hội trải nghiệm thực tế như vậy.
Em xin chân thành cảm ơn !
2
MỤC LỤC
Contents
..........................................................................................................................................................1
..........................................................................................................................................................1
LỜI CẢM ƠN..................................................................................................................................2
MỤC LỤC........................................................................................................................................3
MỤC LỤC HÌNH ẢNH..................................................................................................................4
Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP................................................................................5
I. Chức năng...........................................................................................................................................5
III. Các lĩnh vực hoạt động...................................................................................................................8
Phần B : NỘI DUNG THỰC TẬP.................................................................................................9
I. Giới thiệu chung về sản phẩm...........................................................................................................9
II. Phương pháp tiếp cận giải quyết vấn đề.......................................................................................11
III. Công cụ xây dựng sản phẩm.........................................................................................................14
IV. Sản phẩm........................................................................................................................................16
V. Một số kĩ thuật xây dựng trong game............................................................................................22
Phần C. Kết luận...........................................................................................................................25
I. Kết quả đạt được trên sản phẩm.....................................................................................................25
II. Hướng phát triển tiếp theo của sản phẩm.....................................................................................25
III. Kết luận thực tập...........................................................................................................................26
MỤC LỤC HÌNH ẢNH
Ảnh 1: Giao diện người dùng...........................................................................................16
Ảnh 2 : Chức năng mua bán lựa chọn xe của game.........................................................17
Ảnh 3 : Chức năng Custom phụ kiện cho xe....................................................................17
Ảnh 4 : Gameplay............................................................................................................18
Ảnh 5 : Tiếp thêm nhiên liệu cho xe................................................................................18
Ảnh 6 : Cinemachine cảnh thu gom rác cho xe................................................................19
Ảnh 7 : Góc nhìn thứ nhất................................................................................................19
Ảnh 8 : Screenshot trên chợ ứng dụng.............................................................................20
Ảnh 9 : Screenshot trên chợ ứng dụng.............................................................................20
Ảnh 10 : Web sản phẩm trên chợ Google Play.................................................................21
Ảnh 11: Các node được đặt thủ công...............................................................................22
Ảnh 12: Code data Scriptable Object lưu thông tin của xe..............................................23
Ảnh 13: Data được hiển thị trên Editor để kéo thả data...................................................24
Ảnh 14: Ví dụ data của engine xe rác..............................................................................24
Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP
I. Chức năng, nhiệm vụ
Công ty Dashbit Interactive được thành lập vào tháng 5 năm 2020 bởi những
người Việt trẻ tuổi, hoạt động trong lĩnh vực phát triển và phát hành Game.
Với phương châm "Tận hưởng niềm hạnh phúc trong việc áp dụng công nghệ để
kết nối, phục vụ và phát triển con người" và mục tiêu "Tạo ra các sản phẩm kết nối
hàng triệu con người với nhau, với mọi tuổi tác, nền văn hóa và quốc gia", hiện cơng
ty khơng chỉ phát triển những sản phẩm thật chất lượng, mang đậm dấu ấn Việt, mà
còn tập trung vào việc phát triển cộng đồng, xây dựng một hệ sinh thái chơi vui sống đẹp.
Hiện tại, Dashbit Interactive tự hào là công ty cung cấp dịch vụ cho hơn 6 triệu
người dùng, là nhà phát triển, phát hành Game uy tín và chất lượng trong khu vực
Đông Nam Á.
II. Tổ chức
Để đảm bảo tính linh hoạt cao yêu cầu các hoạt động có hiệu quả thì phải tổ
chức bộ máy hoạt động với quy mô hợp lý nhất, tối ưu nhất, mọi khó khăn sai lầm
phải được khắc phục kịp thời. Các bộ phận chức năng phải có sự liên kết hỗ trợ lẫn
nhau để thực hiện các mục tiêu đặt ra. Phương pháp quản lý theo phương pháp trực
tuyến. Giám đốc quản lý toàn bộ hoạt động có kế hoạch điều chỉnh kịp thời và các
bộ phận chức năng chịu sự chỉ đạo trực tuyến từ giám đốc. Mối quan hệ quản lý này
có ưu điểm là gọn nhẹ về tổ chức thông tin được đảm bảo thơng suốt, đường đi của
thơng tin là ngắn do đó sai lệch của thông tin là không lớn phù hợp với chế độ một
thủ trưởng lãnh đạo. Nhiệm vụ được quy định theo nguyên tắc tập trung dân chủ
trong quản lý. Cơ cấu này đảm bảo nguồn lực để giải quyết các vấn đề trọng tâm. Bộ
máy tổ chức được thể hiện qua sơ đồ sau .
Cơ cấu nhân sự của cơng ty bao gồm:
Giám đốc: 1 người (Ơng Chu Thế Anh)
Bộ phận 3D, hình họa mĩ thuật: 5 người (Ơng Ngơ Quốc Hồn : Quản lý)
Bộ phận kĩ thuật, kĩ sư phát triển: 7 người (Ông Nguyễn Bảo Việt : Quản lý)
Giám đốc
Bộ phận kĩ
thuật
Bộ phận hình
họa
Giám đốc: Người trực tiếp quản lý và lãnh đạo Công ty Dashbit Interactive, đề
ra các chiến lược phát triển, dự án và các kế hoạch đào tạo, hoạt động của công ty.
Bộ phận hình họa: Bộ phận hình họa 3D đảm nhiệm các công việc thiết yếu
như sản xuất ra các mơ hình 3D để đưa vào trong game cho đội kĩ thuật lập trình.
Cơng việc của đội 3D bao gồm dựng hình model, cắt ghép 2D bằng Photoshop để
làm da thịt cho Model 3D.
Bộ phận kĩ thuật: Bộ phận kĩ thuật đảm nhiệm các cơng việc liên quan đến lập
trình, các quy trình thiết yếu trong phát triển game nói chung để ra được sản phẩm
cuối cùng và đăng tải trên các chợ ứng dụng.
Đội ngũ nhân viên: Đội ngũ nhân viên là các nhân viên dưới sự giám sát của
các quản lý của từng team, trực tiếp nhận nhiệm vụ và thực hiện công việc kết hợp
với nhau, để ra được sản phẩm cuối cùng.
III. Các lĩnh vực hoạt động
Công ty Dashbit Interactive hoạt động trong lĩnh vực xây dựng úng dụng game
lái xe mô phỏng, phân phối cho game mobile cho người dùng toàn cầu….Phát hành
ứng dụng trên các nền tảng như Google Play Store và AppStore. Cơng ty phát triển
và duy trì cập nhật các game trên chợ ứng dụng, game có hơn 5 triệu lượt tải mỗi
năm.
Những sản phẩm nổi bật công ty đang làm là Cargo Truck Simulator (Mô phỏng
lái xe chở hàng). Trash Truck Simulator (Mô phỏng xe đổ rác). Fire Truck (Mơ
phỏng lái xe cứu hoả)
Trong trị chơi, người dùng có thể tương tác và điều khiển các loại xe tương
ứng, thay thế đồ trang trí cho xem, nâng cấp xe của mình, làm nhiệm vụ để mở ra
thế giới tiếp theo.
Phần B : NỘI DUNG THỰC TẬP
I. Công việc
ĐỀ TÀI:
Xây dựng sản phẩm game “Mô phỏng lái xe chở rác” phân phối trên chợ Google
Store
Nội dung công việc:
- Công việc 1: Khảo sát sơ bộ về môi trường làm việc nơi thực tập
- Cơng việc 2: Tìm hiểu tổng quan về quy trình sản xuất game lên chợ ứng dụng
- Công việc 3: Nhận công việc, trao đổi yêu cầu với người hướng dẫn
- Công việc 4: Thiết kế và lập trình hồn thiện sản phẩm
Nội dung thực tập
Thời
Mục tiêu
gian
1
Khảo sát sơ bộ về mơi
trường làm việc nơi thực tập
2
Tìm hiểu tổng quan về
Từ
Tìm hiểu về mơi
ngày
trường làm việc, cơ
19/7 đến
cấu tổ chức của cơng
ngày
ty, chức năng, nhiệm
24/7
vụ các team,…
Từ
Tìm hiểu về quy
quy trình sản xuất game lên
ngày
trình xây dựng phần
chợ ứng dụng
25/7 đến
mềm của cơng ty,
ngày
quy trình code base,
27/7
các quy tắc báo cáo
và phong cách làm
việc của công ty.
3
Nhận công việc, trao đổi
yêu cầu với người hướng dẫn
Từ
Lên
ý
tưởng,
ngày
thiết kế code, nhận
28/7 đến
các module, bàn về
ngày
cách thức lập trình
31/7
với sản phẩm được
giao.
4
Lập trình hồn thiện sản
phẩm
Từ
Thực
hiện
và
ngày 1/8
hồn thiện các công
đến ngày
việc
27/8
công, trao đổi công
được
phân
việc liên tục với
người hướng dẫn và
nhóm làm việc.
5
Hồn thiện báo cáo thực
tập
Từ
ngày
28/8 đến
ngày
31/8
Kết quả cần đạt:
-
Hiểu và tham gia vào quy trình sản xuất game và phân phối trên chợ ứng dụng.
-
Hoàn thành tốt các trách nhiệm được giao.
-
Có sự trao đổi về các nội dung cơng việc với nhóm thực hiện.
-
Thích nghi với mơi trường làm việc chuyên nghiệp.
-
Rút ra những bài học kinh nghiệp sau thời gian thực tập tại đơn vị.
-
Có sản phẩm hồn thiện và phân phối trên chợ ứng dụng
II. Phương pháp tiếp cận giải quyết vấn đề
1. Phương pháp hướng đối tượng
Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết
tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm "cơng nghệ đối tượng", mà
trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là
các thuộc tính; và mã nguồn, được tổ chức thành các phương thức. Phương thức
giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng
khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức
"this" hoặc "self"). Trong lập trình hướng đối tượng, chương trình máy tính được
thiết kế bằng cách tách nó ra khỏi phạm vi các đối tượng tương tác với nhau. Ngơn
ngữ lập trình hướng đối tượng khá đa dạng, phần lớn là các ngơn ngữ lập trình theo
lớp, nghĩa là các đối tượng trong các ngôn ngữ này được xem như thực thể của
một lớp, được dùng để định nghĩa một kiểu dữ liệu.
Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu
mà chúng được nhìn nhận như là một đơn vị duy nhất. Mỗi đối tượng có một tên
riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó.
Như vậy, mỗi đối tượng có khả năng nhận vào các thơng báo, xử lý dữ liệu (bên
trong của nó), và gửi ra hay trả lời đến các đối tượng khác hay đến môi trường.
Đa phần các ngơn ngữ lập trình thơng dụng nhất hiện nay (như C++, Delphi,
Java, Python etc.) là các ngôn ngữ lập trình đa mẫu hình và đều hỗ trợ lập trình
hướng đối tượng ở nhiều mức độ khác nhau, thường được kết hợp với lập trình
mệnh lệnh, lập trình thủ tục. Các ngơn ngữ lập trình hướng đối tượng đáng chú ý
gồm
có Java, C++, C#, Python, PHP, Ruby, Perl, Object
Pascal, Objective-
C, Dart, Swift, Scala, Common Lisp, và Smalltalk.
Tăng năng suất, đơn giản hóa độ phức tạp của phần mềm khi bảo trì, nâng cấp
Dễ tiếp thu
Đa phần ngơn ngữ lập trình đều hỗ trợ lập trình hướng đối tượng ở nhiều mức
độ khác nhau
Hiện tại sản phẩm sử dụng ngơn ngữ lập trình C#.
2. Mơ hình phát triển thác nước
Mơ hình thác nước (tiếng Anh: waterfall model) là một mơ hình của quy
trình phát triển phần mềm, trong đó quy trình phát triển trơng giống như một dòng
chảy, với các pha được thực hiện theo trật tự nghiêm ngặt và khơng có sự quay lui
hay nhảy vượt pha là: phân tích yêu cầu, thiết kế, triển khai thực hiện, kiểm thử, liên
kết và bảo trì. Người ta thường dẫn bài báo được Winston W. Royce xuất bản vào
năm 1970 để giải thích nguồn gốc cho tên gọi "thác nước"; nhưng có điều thú vị là
chính Royce đã dùng mơ hình phát triển lặp chứ khơng hề dùng thuật ngữ "mơ hình
thác nước".
Mơ hình thác nước bao gồm 6 giai đoạn:
Requirement gathering: Thu thập và phân tích yêu cầu được ghi lại vào tài liệu
đặc tả yêu cầu trong giai đoạn này.
System Analysis: Phân tích thiết kế hệ thống phần mềm, xác định kiến trúc hệ
thống tổng thể của phần mềm.
Code: Hệ thống được phát triển theo từng unit và được tích hợp trong giai
đoạn tiếp theo. Mỗi Unit được phát triển và kiểm thử bởi dev được gọi là Unit Test.
Test: Cài đặt và kiểm thử phần mềm. Công việc chính của giai đoạn này là
kiểm tra và sửa tất cả những lỗi tìm được sao cho phần mềm hoạt động chính xác và
đúng theo tài liệu đặc tả yêu cầu.
Implementation: Triển khai hệ thống trong môi trường khách hàng và đưa ra
thị trường.
Maintenance: Bảo trì hệ thống khi có bất kỳ thay đổi nào từ phía khách hàng,
người sử dụng.
Ưu nhược điểm của mơ hình thác nước
Ưu điểm
Dễ hiểu, dễ tiếp cận và áp dụng
Sản phẩm được phát triển theo các giai đoạn được xác định rõ ràng
Xác nhận ở mỗi giai đoạn, dễ dàng phát hiện và sửa lỗi
Nhược điểm
Kém linh hoạt, phạm vi điều chỉnh hạn chế
Việc đo lường sự phát triển trong mỗi giai đoạn gặp khó khăn
Khơng thích hợp áp dụng cho các dự án lâu dài, đang diễn ra hoặc các dự án
cần sự thay đổi liên tục trong vòng đời phát triển
Rất khó để quay lại các giai đoạn trước đó
III. Cơng cụ xây dựng sản phẩm
Unity Game Engine
Tổng quan về Unity
Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies mà chủ
yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó
được cơng bố chạy trên hệ điều hành OS X, tại Apple's Worldwide Developers
Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng.
Những ưu điểm của Unity Game Engine:
Chức năng cốt lõi đa dạng: cung cấp cơng cụ dựng hình (kết xuất đồ họa) cho
các hình ảnh 2D hoặc 3D, cơng cụ vật lý (tính tốn và phát hiện va chạm), âm thanh,
mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dò ng dữ liệu xử lý, quản
lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng. Nhờ có các engine mà cơng việc làm
game trở nên ít tốn kém và đơn giản hơn.
Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng hỗ
trợ gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360, Wii U,
iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và cả Flash.
Nói cách khác, chỉ với một gói engine, các studio có thể làm game cho bất kỳ hệ
điều hành nào và dễ dàng convert chúng sang những hệ điều hành khác nhau. Đồng
thời, đây cũng là giải pháp cho các game online đa nền tảng – có thể chơi đồng thời
trên nhiều hệ điều hành, phần cứng khác nhau như Web, PC, Mobile, Tablet….
Dễ sử dụng: Unity3D được built trong một mơi trường phát triển tích hợp,
cung cấp một hệ thống tồn diện cho các lập trình viên, từ soạn thảo mã nguồn, xây
dựng cơng cụ tự động hóa đến trình sửa lỗi. Do được hướng đến đồng thời cả lập
trình viên khơng chun và studio chun nghiệp, nên Unity3D khá dễ sử dụng.
Hơn nữa, đây là một trong những engine phổ biến nhất trên thế giới, người dùng có
thể dễ dàng tìm kiếm kinh nghiệm sử dụng của “tiền bối” trên các forum cơng nghệ.
Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine
Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000
USD/năm. Với bản Pro, người dùng phải trả 1.500 USD/năm – một con số rất khiêm
tốn so với những gì engine này mang lại.
IV. Sản phẩm
Sản phẩm game (Link cũ trên chợ Google Play) :
/>Nội dung trò chơi :
-
Người chơi điều khiển các loại xe chở rác trên góc nhìn thứ 3 trong thành phố
mô phỏng qua joystick và các nút bấm tương tác.
-
Trong game, người chơi sẽ đi tìm các trạm lấy rác, thu thập xong đó tìm đến
địa điểm đổ rác, địa điểm được xuất hiện ở bản đồ thu nhỏ của game
-
Sau khi hoàn thanh các nhiệm vụ thu rác và đổ rác, người chơi sẽ hoàn thành
các nhiệm vụ, thành tích, nhận được tiền thưởng trong game.
-
Người chơi dùng tiền đó để mua phụ kiện trang trí xe, update động cơ, sức
mạnh của xe để hoàn thiện nhiệm vụ nhanh chóng hơn, mở ra các thành phố và
nhiệm vụ mới.
1 số Screenshot trong game :
Ảnh 1: Giao diện người dùng
Ảnh 2 : Chức năng mua bán lựa chọn xe của game
Ảnh 3 : Chức năng Custom phụ kiện cho xe
Ảnh 4 : Gameplay
Ảnh 5 : Tiếp thêm nhiên liệu cho xe
Ảnh 6 : Cinemachine cảnh thu gom rác cho xe
Ảnh 7 : Góc nhìn thứ nhất
Ảnh 8 : Screenshot trên chợ ứng dụng
Ảnh 9 : Screenshot trên chợ ứng dụng
Ảnh 10 : Web sản phẩm trên chợ Google Play
V. Một số kĩ thuật xây dựng trong game
1. Hệ thống tìm đường (Navigation)
-
Sử dụng thuật tốn A* để giải quyết bài tốn tìm đường đi ngắn nhất (Bài tốn thực
tế tìm đường từ vị trí xe rác đến vị trị gần nhất như Trạm xăng, Nhà máy, Điểm đổ
rác, etc..
-
Thực hiện sử dụng công cụ ITS (Intelligent Traffic System) trên Unity AssetStore
để đặt các “node” thủ công trên map.
-
Các node đặt thủ cơng sau đó sẽ đưa vào đồ thị (Graph) để giải quyết bài tốn tìm
đường ngắn nhất.
-
Hệ thống tìm đường cịn dùng để lập trình AI di chuyển theo các node, tạo ra hệ
thống đường giao thông cho xe tải, người đi bộ AI của game.
Ảnh 11: Các node được đặt thủ công
2. Hệ thống quản lý data của xe rác
-
Thực hiện quản lý toàn bộ input đầu vào data của xe bao gồm
+ Tên hiển thị, tên prefab, ID, giá tiền.
+ Tốc độ, mức tiêu tốn gas, sức chưa bình gas, sức chứa rác trong xe.
+ Thực hiện lưu trữ các bộ phận Customize cho xe có thể được mua như bánh xe,
ống xả khí, thanh chắn bùn,etc.
-
Data được lưu trữ dưới dạng Scriptable Object (1 dạng data container của Unity
Editor)
-
Tát cả data sẽ được quản lý và được gọi lên bởi script CustomizationController, là
code để lấy data đầu vào từ thư viện. Các scripts khác như hiển thị UI, gameplay sẽ
truy cập vào để load model xe rác theo tên trong thư viện, load data thông số của
xe.
Ảnh 12: Code data Scriptable Object lưu thông tin của xe
Ảnh 13: Data được hiển thị trên Editor để kéo thả data
Ảnh 14: Ví dụ data của engine xe rác
Phần C. Kết luận
I. Kết quả đạt được trên sản phẩm
- Sử dụng công cụ Unity Engine để phát triển game mobile
- Xây dựng các thành phần cho game như giao diện người dùng (UI), lập trình
logic tương ứng cho sản phẩm game.
- Sử dụng các kĩ thuật lập trình để phát triển game.
- Sử dụng các công cụ, tool hỗ trợ để đẩy nhanh giai đoạn phát triển.
- Xây dựng hệ thống game, đảm bảo khơng có lỗi, người chơi chạy game ổn
định,.
- Kết hợp với các thành viên team 3D để đưa model 3D vào game, kết hợp với
thành viên khác để yêu cầu 3D đồ họa hiển thị đúng với code.
- Test game và debug tìm các lỗi ẩn trong quá trình phát triển để ra được sản
phẩm cuối hoàn thiện.
- Xây dựng các hệ thống cho game (Hệ thống mua bán, hệ thống thành tích, hệ
thống Custom đồ, hệ thống Control)
- Lập trình frontend, lấy API từ Server để hiển thị logic trên UI (Công ty sử
dụng Playfab)
- Sử dụng các thuật tốn tìm đường đi ngắn nhất, các cơng cụ tốn học, vật lý để
tính tốn, lập trình logic cho game.
- Sử dụng cơng cụ để mô phỏng giao thông đô thị, người đi bộ qua đường,..
Bản chơi thử, cài đặt file .apk cho điện thoại Android :
/>
II. Hướng phát triển tiếp theo của sản phẩm
- Đưa vào thêm các loại xe mới, đồ trang trí 3D cho xe.
- Thêm map mới, thêm chế đồ chơi nghề nghiệp (Career mode)
- Thêm hệ thống thuê đồ, người dùng xem quảng cáo để được dùng thử item.
- Thêm chức năng người chơi có thể rời xe, điều khiển nhân vật người khám phá
và tương tác với thành phố.
- Cải thiện bổ sung các chức năng trên xe (Gương chiếu hậu, cịi, cần gạt nước
mưa)
- Thêm hệ thống mơ phỏng ngày đêm cho game. Hệ thống nắng, mưa.
III. Kết luận thực tập
Hồn thiện một sản phẩm game là 1 q trình rất dài và khó khăn, bao gồm rất
nhiều các cơng đoạn xử lý từ lên ý tưởng, khảo sát thị trường, prototype, test, hồn
thiện sản phẩm. Trong q trình dù không nhiều khi thực tập ở công ty, bản thân cá
nhân em đã học được rất nhiều trong cách làm việc, cũng như quy trình sản xuất,
nhiệm vụ của các thành viên trong công ty.
Với kết quả sản phẩm là 1 ứng dụng có thể chơi được, phát triển cho cơng ty,
em rất vui vì đã có cơ hội tuyệt vời này. Cuối cùng, em xin cảm ơn giảng viên
hướng dẫn, cơ giáo, Ths Nguyễn Thị Thanh Tâm vì đã hướng dẫn, nhiệt huyết chỉ
bảo trong suốt giai đoạn thực tập của chúng em.