Tham gia vào môi trường làm việc chuyênnghiệp như Vitalify Asia, em hy vọng có cơ hội áp dụng kiến thức đã học và phát triển bản thântrong môi trường thực tế, góp phần vào sự thành công
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP BACK-END DEVELOPER
Công ty thực tập : Vitalify Asia Người phụ trách : Võ Ngọc Trọng Thực tập sinh : Hoàng Văn Phúc
Thành phố Hồ Chí Minh, tháng 12 năm 2023
Trang 2LỜI MỞ ĐẦU
Trong thời đại của Cuộc cách mạng Công nghiệp 4.0, lĩnh vực Công nghệ thông tin, đặcbiệt là ngành phần mềm, đóng vai trò then chốt trong sự phát triển toàn diện của xã hội Trongbối cảnh sự tiến bộ mạnh mẽ của công nghệ và quá trình số hóa, vai trò của Backend Developer
- những người chịu trách nhiệm xây dựng và duy trì hệ thống server, cơ sở dữ liệu và logic xử
lý dữ liệu - ngày càng trở nên quan trọng
Với sự tăng cường mạnh mẽ của ứng dụng, phần mềm, đặc biệt là các ứng dụng trên nềntảng website và di động cũng như sự phổ cập của các thiết bị thông minh, nhu cầu của ngườidùng đối với các ứng dụng, phần mềm không ngừng tăng cao Trong bối cảnh này, BackendDeveloper đóng vai trò quan trọng trong việc phát triển ứng dụng để đảm bảo tính ổn định, bảomật và hiệu suất cho các hệ thống và dịch vụ trực tuyến
Backend Developer không chỉ đòi hỏi sự thành thạo về ngôn ngữ lập trình và các côngnghệ liên quan, mà còn đòi hỏi khả năng tối ưu hóa hiệu suất hệ thống, quản lý cơ sở dữ liệu và
xử lý các yêu cầu từ phía Frontend Việc xây dựng ứng dụng không chỉ dừng lại ở việc có đầy
đủ chức năng mà còn phải đảm bảo các quy tắc trong quá trình phát triển, tuân thủ các tiêuchuẩn đặc ra để vừa đáp ứng yêu cầu ứng dụng, vừa hỗ trợ sự tương tác với nhiều nhóm pháttriển khác trong quá trình phát triển và đảm bảo khả năng bảo trì hệ thống
Với mong muốn đóng góp vào sự phát triển và chất lượng của các hệ thống và ứng dụng,
em đã chọn hướng nghiệp Backend Developer Tham gia vào môi trường làm việc chuyênnghiệp như Vitalify Asia, em hy vọng có cơ hội áp dụng kiến thức đã học và phát triển bản thântrong môi trường thực tế, góp phần vào sự thành công và phát triển của các dự án công nghệ
Trang 3Trân trọng gửi lời cảm ơn Công ty Vitalify Asia đã tạo điều kiện cho em có cơ hội đượcthực tập tại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các nhóm trainer, em
đã tiếp thu được những kiến thức quan trọng để có thể trực tiếp tham gia vào dự án, nơi em có
cơ hội làm việc cùng với các thành viên khác Qua việc tham gia vào dự án, em đã hiểu rõ hơn
về quy trình phát triển phần mềm, từ việc xây dựng cấu trúc dữ liệu, thiết kế cơ sở dữ liệu, xử lýlogic nghiệp vụ cho đến triển khai ứng dụng trên môi trường thực tế
Đặc biệt cảm ơn anh Võ Ngọc Trọng và các thành viên trong dự án đã hướng dẫn, giúp
đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen vớimôi trường mới Nhờ sự hướng dẫn tận tâm và giúp đỡ, em đã có thể hoàn thành nhiệm vụ đượcgiao một cách hiệu quả và đạt được mục tiêu của dự án
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này
Em biết ơn những cơ hội quý giá mà Công ty Vitalify Asia và khoa Công nghệ phầnmềm đã mang đến cho em Nhờ những trải nghiệm này, em đã không chỉ nắm bắt được nhữngkiến thức chuyên môn mà còn phát triển kỹ năng làm việc nhóm, giao tiếp và giải quyết vấn đề.Điều này sẽ góp phần quan trọng trong sự nghiệp và phát triển tương lai của em
Một lần nữa, em xin gửi lời cảm ơn chân thành đến Công ty Vitalify Asia, các thành viêntrong dự án và toàn thể thầy cô trong khoa Công nghệ phần mềm Em rất biết ơn sự tận tâm và
sự giúp đỡ của mọi người, và em sẽ luôn ghi nhớ những kinh nghiệm và bài học quý báu mà em
đã học được từ thời gian thực tập này
Hoàng Văn PhúcTpHCM, ngày 01 tháng 01 năm 2023
Trang 4TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Họ và tên sinh viên: Hoàng Văn Phúc
Mã số sinh viên: 20521760
Đánh giá quá trình thực tập của sinh viên:
TP HCM, ngày …… tháng …… năm ……
Trang 5MỤC LỤC
Chương 1: Giới thiệu công ty thực tập 8
1.1 Thông tin công ty 8
1.2 Nền tảng công nghệ sử dụng chính 9
1.2.1 FrontEnd 9
1.2.2 BackEnd 9
1.2.3 Application (Mobile Apps) 10
1.2.4 Infrastructure / Database / Tools 10
1.3 Sản phẩm công ty 11
1.3.1 NikoNiko (HRM System) 11
Chương 2: Nội dung thực tập 15
2.1 Thông tin tuyển dụng 15
2.2 Lịch thực tập và nội dung thực tập 16
Chương 3: Chi tiết về project 20
3.1 Thông tin về dự án 20
3.1.1 Dự án Rakuten Investment Management 20
3.1.2 Cơ cấu thành viên dự án 21
3.1.3 Công nghệ sử dụng trong dự án 22
3.2 Các công việc đã thực hiện 22
3.2.1 Yêu cầu từ BPM 22
3.2.2 Nghiên cứu API, màn hình và hiện tượng bất thường của lỗi 22
3.2.3 Tái hiện lỗi 23
3.2.4 Trình bày nguyên nhân và đề xuất hướng giải quyết 23
Trang 63.2.5 Thực hiện Fix lỗi cho các API hoặc màn hình 23
3.2.6 Review Evidence và Code 24
3.2.7 Tạo Merge Request và Release 24
Chương 4: Tổng kết 25
4.1 Kết quả 25
4.2 Thuận lợi 25
4.3 Khó khăn 25
4.4 Kế hoạch tương lai 26
4.5 Chuẩn đạt được 27
TÀI LIỆU THAM KHẢO 28
Trang 7Danh mục hình ảnh
Hình 1 1 Logo công ty 8
Hình 1 2 Danh sách các công nghệ 9
Hình 1 3 Ứng dụng NikoNiko 12
Hình 1 4 Thống kê cảm xúc của nhân viên khi thực hiện đăng ký 13
Hình 1 5 NikoNiko hỗ trợ xuất file chấm công theo định dạng CSV 14
Hình 1 6 NikoNiko hỗ trợ checkin mọi lúc mọi nơi 14
Trang 8Chương 1: Danh mục bảng
Bảng 2 1 Thông tin tuyển dụng thực tập 15Bảng 2 2 Bảng nội dung thực tập 19Bảng 4 1 Chuẩn đầu ra môn học 27
Trang 9Chương 2: Giới thiệu công ty thực tập
Hình 1 1 Logo công ty
2.1 Thông tin công ty.
Tên công ty: Công ty TNHH Vitalify Á Châu
là các công ty Nhật Bản, các thành viên của Vitalify Asia luôn có cơ hội tham gia vàocác dịch vụ CNTT mới nhất tại Nhật Bản Hiện diện tại Việt Nam, với những nỗ lựckhông ngừng, Vitalify Asia góp phần nâng cao năng lực nhân sự IT tại đây Với kinhnghiệm gần 10 năm, Vitalify Asia không ngừng nỗ lực để hỗ trợ các doanh nghiệp NhậtBản muốn đầu tư sang Việt Nam cũng như hỗ trợ việc marketing, kinh doanh ở thịtrường nội địa Việt Nam Vitalify Asia đang hỗ trợ tổng thể về phát triển offshore, phát
Trang 10triển Labo, hỗ trợ đầu tư đến Việt Nam, marketing kinh doanh ở thị trường nội địa ViệtNam.
NodeJS (TypeScript, hoặc JavaScript) với NestJS framework
PHP với Laravel framework
Python
Ruby với Ruby on Rails framework
Trang 11 TypeScript, hoặc JavaScript với React Native framework
TypeScript, hoặc JavaScript với Capacitor framework
Dart với Flutter framework
C# với Unity 3D/2D engine
2.2.4 Infrastructure / Database / Tools
Code Hosting: GitHub, Bitbucket, GitLab
Unit / E2E Testing: Jest, Cypress, Detox
CI Service: CircleCI, Travis CI, AWS Code Pipeline, Git Actions
IaC (Infrastructure as code): Docker, Terraform
Cloud Server: AWS (Amazon Web Service), Azure, GCP (Google CouldPlatform)
Database: Amazon RDS, MongoDB, MySQL, MariaDB, DynamoDB,RealmDB
Deployment: DeployGate
Trang 122.3 Sản phẩm công ty
2.3.1 NikoNiko (HRM System)
Link sản phẩm/ dịch vụ: https://www.nikoniko.vn/
NikoNiko là một hệ thống quản lý chấm công mới dành cho thời đại làm việc từ
xa (Hybrid-work) Nó cung cấp khả năng quản lý chấm công đơn giản, không phụ thuộcvào địa điểm và thời gian trong SaaS
Các tính năng bao gồm đăng ký và đăng xuất dễ dàng từ ứng dụng, cơ sở dữ liệu tổchức mạnh mẽ và khả năng hiển thị sức khỏe tâm thần của nhân viên Hiện chúng tôiđang bán sản phẩm này cho thị trường Việt Nam
a Những tính năng chính
Bảng điều khiển
Cơ sở dữ liệu nhân viên
Bối cảnh chung của công ty
Đăng ký vào / ra (Web & Di động)
Thông báo đẩy
Quản lý làm việc ngoài giờ
Trang 13Hình 1 3 Ứng dụng NikoNiko
Chức năng nhận diện khuôn mặt sẽ phân tích ảnh khuôn mặt được camera chụp và so sánh với
dữ liệu khuôn mặt đã đăng ký để xác thực chính xác và nhanh chóng
NikoNiko cung cấp tính năng quản lý chấm công và chấm công đơn giản ở định dạng SaaSkhông bị ràng buộc với địa điểm làm việc hoặc giờ làm việc NikoNiko cung cấp khả năng đăng ký vàđăng xuất dễ dàng từ ứng dụng, cơ sở dữ liệu tổ chức mạnh mẽ và trực quan hóa sức khỏe tâm thần củanhân viên
Trang 14Hình 1 4 Thống kê cảm xúc của nhân viên khi thực hiện đăng ký
Hỗ trợ nhận biết động lực làm việc của nhân viên bằng chức năng nhận dạng khuôn mặt
Bằng cách đọc được cảm xúc trên khuôn mặt nhân viên khi nhân viên đi làm mỗi ngày,
Và người dùng có thể hiểu được tâm trạng chung của đồng nghiệp Dựa vào đó có thể cải thiện môi trường làm việc và hoạt động nội bộ
Trang 15Hình 1 5 NikoNiko hỗ trợ xuất file chấm công theo định dạng CSV
NikoNiko hỗ trợ xuất dữ liệu thời gian chấm công của nhân viên ở định dạng CSV
Hình 1 6 NikoNiko hỗ trợ checkin mọi lúc mọi nơi
Trang 16NikoNiko hỗ trợ việc truy cập và đăng ký trên nhiều thiết bị ở mọi lúc, mọi nơi.
Chương 3: Nội dung thực tập
3.1 Thông tin tuyển dụng.
Cơ hội ứng tuyển https://www.vitalify.asia/recruitment
Bảng 2 1 Thông tin tuyển dụng thực tập
Trang 17Tuần Nội dung và kết quả
Đọc hiểu development guideline như:
o Development Guideline Overview
o Definition & Rule
Kết qu ả: Nắm bắt tổng quan về cơ cấu hoạt động của công ty, quy trình phát
triển phần mềm, cách tham gia các cuộc họp nội bộ và với khách hàng, cách tiếp nhận nhiệm vụ và báo cáo hàng ngày Hoàn thành ứng dụng demo
Được training quy trình Git mà team đang áp dụng:
o Các môi trường triển khai trên git (Dev, Staging, Production)
o Quy trình Assign và nhận Task thông qua các Issue
o Quy tắc đặt tên branch, commit theo yêu cầu dự án
Được training quy trình làm việc, meeting và report:
Trang 18o Thực hiện report vào cuối mỗi ngày làm việc nội dung bao gồm các taskđược giao, thời gian ước tính cho mỗi task, số thời gian đã thực hiện, sốthời gian còn lại cho mỗi task, vấn đề gặp phải và kế hoạch của ngàylàm việc tiếp theo.
o Cách để ước tính thời gian hoàn thành cho các công việc được giao
o Quy trình tham gia các cuộc meeting
Tham gia và tìm hiểu về dự án mà team đang thực hiện, Tải source code, càiđặt các môi trường cần thiết để chạy ứng dụng
Đọc và nghiên cứu mã nguồn
Kết qu ả: Nắm bắt được quy trình của dự án và có thể tham gia vào dự án.
Tiếp tục nghiên cứu mã nguồn và được assign task đầu tiên
Nghiên cứu task được assign và thực hiện:
o Điều tra lỗi trong ứng dụng
o Phân tích nghiệp vụ và logic xử lý dựa trên các file tài liệu (tiếng Nhật)
o Thực hiện tái hiện lỗi (chuẩn bị dữ liệu cần thiết để tái hiện)
o Nghiên cứu mã nguồn và tìm lỗi
o Đề xuất hướng giải quyết
o Thực hiện sửa lỗi trên mã nguồn
o Tạo file báo cáo chứng minh lỗi đã được sửa (Evidence)
o Commit code và chờ review mã nguồn sau đó tiến hành merge code vàrelease lên môi trường develop
Kết qu ả: Hoàn thành công việc được giao.
Tuần 4: Tiếp tục nghiên cứu mã nguồn của ứng dụng (Ứng dụng có nhiều source
Trang 19 Tiếp tục được Assign Task và thực hiện.
Kết qu ả: Hoàn thành công việc được giao
Tuần 6:
08/09/2023
–
15/09/2023
Tiếp tục được Assign Task và thực hiện
Kết qu ả: Hoàn thành công việc được giao
Tuần 7:
16/09/2023
–
23/09/2023
Tiếp tục được Assign Task và thực hiện
Kết qu ả: Hoàn thành công việc được giao
Tuần 8:
24/09/2023
–
01/10/2023
Tiếp tục được Assign Task và thực hiện
Kết qu ả: Hoàn thành công việc được giao
Tuần 9:
02/10/2023
–
09/10/2023
Tiếp tục được Assign Task và thực hiện
Kết qu ả: Hoàn thành công việc được giao
Tuần 10:
10/10/2023
–
17/10/2023
Tiếp tục được Assign Task và thực hiện
Kết qu ả: Hoàn thành công việc được giao
Tuần 11: Tiếp tục được Assign Task và thực hiện
Trang 20 Tiếp tục được Assign Task và thực hiện.
Kết qu ả: Hoàn thành công việc được giao
Bảng 2 2 Bảng nội dung thực tập
Trang 21Chương 4: Chi tiết về project
4.1 Thông tin về dự án
4.1.1 Dự án Rakuten Investment Management
"Rakuten", là một công ty thương mại điện tử và Internet của Nhật Bản có trụ sở tạiTokyo, được thành lập vào năm 1997 bởi Mikitani Hiroshi Cho đến hiện nay, Rakuten
sử hữu hàng chục loại doanh nghiệp và một lượng lớn các công ty con, trong đó phải kểđến như:
Trang 22giáo dục trực tuyến, và nhiều lĩnh vực khác Dự án Rakuten Investment Management tạiVitalify Asia là một dự án thuộc doanh nghiệp Rakuten Investment Management Inc và
nó đã được hoàn thành và đang trong quá trình hoạt động, tới thời điểm hiện tại đối tácphía Rakuten đã chuyển đổi hệ thống và công nghệ sang một nền tảng mới với hệ thốngtương tự với phiên bản trước đó Tuy nhiên trong quá trình chuyển đổi, hệ thống mớiđang gặp một số các kết quả không mong muốn trên hệ thống, do đó mong muốn đượcđiều tra nguyên nhân và sửa đổi
Các đối tác trong dự án bảo trì và phát triển Rakuten Investment Management baogồm các thành viên khách hàng tại Nhật Bản Một nhóm các thành viên chính trong quátrình xây dựng dự án đang làm việc tại Trung Quốc và nhóm đối tác tại Việt Nam vàVitalify Asia
4.1.2 Cơ cấu thành viên dự án
Project Manager (PM): Người đảm nhận quản lý dự án cao nhất, làm việc trực tiếp
với khách hàng và BPM
Bridge Project Manager (BPM): Là cầu nối giữa khách hàng và lập trình viên, có
vai trò nhận các yêu từ khách hàng, phân tích và truyền đạt lại cho các lập trình viên
Là người trực tiếp giao các công việc đã được phân tích, chia nhỏ cho lập trình viên,cũng như đảm nhận việc kiểm thử các sản phẩm của người dùng cuối Khách hàngcủa Rakuten là người Nhật, do đó BPM thường sẽ đảm nhận việc giao tiếp với kháchhàng, nắm bắt yêu cầu của khách hàng và truyền đạt với lập trình viên, đồng thời đưa
ra các phân tích số liệu và thời gian hoàn thành các công việc
Leader: Người đảm nhận quản lý các thành viên trong nhóm dự án, là người trực tiếp
hỗ trợ các thành viên thực hiện các công việc, đồng thời đưa ra quyết định cho cáccuộc họp và các đề xuất, giải pháp từ các thành viên trong nhóm
Lập trình viên (Dev): Nhiệm vụ chính là phát triển phần mềm, nhận công việc từ
BPM hoặc Leader và tiến hành thực hiện, tự kiểm tra, sau đó kiểm tra chéo với các
Trang 23vấn các vấn đề liên quan đến công nghệ.
4.1.3 Công nghệ sử dụng trong dự án
Phía server: sử dụng NodeJs với framework NestJs, Restful API và DatabasePostgreSQL
Ứng dụng Website: sử dụng framework VueJs
Triển khai và các dịch vụ khác: AWS, Microsoft Azure
4.2 Các công việc đã thực hiện
4.2.1 Yêu cầu từ BPM
BPM nhận các Task hoặc tài liệu mô tả hiện tượng lỗi phát sinh từ khách hàng và tiến hànhphân tích, dịch tài liệu tiếng Nhật cho và assign cho Dev
Dev cần phải điều tra nguyên nhân và tìm ra lỗi và khắc phục lỗi
Dev cần đưa ra các testcase và xác nhận với BPM để chứng minh lỗi đã được sửa chính xác
và không ảnh hưởng đến các tính năng đã có khác
Dev cần tạo File tài liệu mô tả các testcase và chứng minh lỗi đã được sửa hoặc tính năng đãđược cập nhật
4.2.2 Nghiên cứu API, màn hình và hiện tượng bất thường của lỗi
Việc đầu tiên sau khi được giao Task là đọc mô tả hiện tượng lỗi hoặc yêu cầu của kháchhàng (Được BPM dịch từ tiếng Nhật sang Việt)
Tìm các tài liệu liên quan đến chức năng hoặc màn hình hoặc các API liên quan đang được
đề cập hoặc có khả năng liên quan
Tìm kiếm source code có thể chứa phần mã của tính năng (Vì dự án được chia thành rấtnhiều repository khác nhau trên GitLab, do đó cần xác định phần mã liên quan thuộcrepository nào để thực hiện điều tra)