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

Back-End Developer (Báo Cáo Thực Tập).Doc

26 1 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 đề Back-End Developer
Tác giả Nguyễn Đăng Khoa
Người hướng dẫn ThS. Lê Thanh Trọng
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 26
Dung lượng 878,5 KB

Nội dung

Backend Developer đóng vai trò then chốt trong việc phát triển ứng dụng để đảm bảo tính ổn định, bảo mật và hiệu suất cho các hệ thống và dịch vụ trực tuyến.Nhiệm vụ của Backend Develope

Trang 1

ĐẠI HỌC QUỐC GIA TP 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 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 : Nguyễn Đăng Khoa

Trang 2

Với sự gia tăng đột phá của ứng dụng, đặc biệt là trên nền tảng website và di động, cùng với sự phổ cập của các thiết bị thông minh, nhu cầu của người dùng đối với các ứng dụng và phần mềm không ngừng tăng cao Backend Developer đóng vai trò then chốt trong việc phát triển ứng dụng để đảm bảo tính ổn định, bảo mật và hiệu suất cho các hệ thống và dịch vụ trực tuyến.

Nhiệm vụ của Backend Developer không chỉ là sự thành thạo về ngôn ngữ lập trình và công nghệ, mà còn bao gồm 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ỉ đơn thuần là về chức năng

mà còn đòi hỏi tuân thủ các tiêu chuẩn phát triển, để đáp ứng yêu cầu ứng dụng và hỗ trợ tương tác với nhiều nhóm phát triển khác, đồng thời đảm bảo khả năng bảo trì hệ thống

Với mong muốn góp phần vào sự phát triển và chất lượng của các hệ thống và ứng dụng, tôi đã chọn hướng nghiệp Backend Developer Tham gia vào môi trường làm việc chuyên nghiệp như Vitalify Asia, tôi hy vọng sẽ có cơ hội áp dụng kiến thức đã học và phát triển bản thân trong 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 3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty Vitalify Asia vì đã tạo điều kiện cho em có cơ hộithực tập tại công ty Trong khoảng thời gian ngắn đó, nhờ sự chỉ dẫn nhiệt tình của các nhómtrainer, em đã nắm được những kiến thức quan trọng, giúp em trực tiếp tham gia vào dự án vàlàm việc cùng với các thành viên khác Tham gia vào dự án, em đã hiểu rõ hơn về quy trình pháttriển phần mềm, từ 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ế

Em muốn bày tỏ lòng biết ơn đặc biệt đến anh Võ Ngọc Trọng và các thành viên trong

dự án đã hướng dẫn và giúp đỡ tận tình, từ việc giải quyết khó khăn trong công việc đến việclàm quen với môi trường mới Nhờ sự hướng dẫn tận tâm và giúp đỡ, em đã có thể hoàn thànhnhiệm vụ được giao 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ần mềm đã mang đến cho em Nhờ những trải nghiệm này, em đã không chỉnắm bắt kiế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ếtvấ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

Nguyễn Đăng KhoaTpHCM, ngày 01 tháng 01 năm 2023

Trang 4

TRƯỜ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: Nguyễn Đăng Khoa

Mã số sinh viên: 20521470

Đánh giá quá trình thực tập của sinh viên:

TP HCM, ngày …… tháng …… năm ……

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

Trang 6

MỤ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ệ 9

1.2.1 Các công nghệ hiện tại mà Vitalify sử dụng chính: 9

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 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 15

Chương 3: Chi tiết về project 19

3.1 Thông tin về dự án 19

3.1.1 Dự án Rakuten Investment Management 19

3.1.2 Cơ cấu thành viên dự án 20

3.1.3 Công nghệ sử dụng trong dự án 21

3.2 Các công việc đã thực hiện 22

3.2.1 Nghiên cứu tài liệu mô tả API hoặc màn hình và hiện tượng bất thường để điều tra lỗi 22 3.2.2 Tái hiện lỗi 23

3.2.3 Trình bày nguyên nhân và đề xuất hướng giải quyết 24

3.2.4 Thực hiện Fix lỗi cho các API hoặc màn hình 26

3.2.5 Xác định các testcase sau khi đã fix lỗi và tạo dữ liệu giả để mô phỏng và tạo Evidence 26

3.2.6 Review Evidence và Code 26

3.2.7 Tạo Merge Request và Release 26

Trang 7

Chương 4: Tổng kết 27

4.1 2.4.2 Kết quả 27

4.2 2.4.3 Thuận lợi 27

4.3 Khó khăn 27

TÀI LIỆU THAM KHẢO 28

Trang 8

Chương 1: Giới thiệu công ty thực tập

Logo công ty

1.1 Thông tin công ty.

 Tên công ty: Công ty TNHH Vitalify Á Châu

 Hiện đang hoạt động tại Việt Nam, Vitalify Asia không ngừng nỗ lực để đóng gópvào việc nâng cao năng lực nhân sự trong lĩnh vực Công nghệ thông tin (IT) Với gần

10 năm kinh nghiệm, công ty không chỉ làm mạnh mẽ nguồn nhân lực IT, mà còn hỗtrợ các doanh nghiệp Nhật Bản đầu tư vào Việt Nam Đồng thời, Vitalify Asia cũng

hỗ trợ trong lĩnh vực marketing và kinh doanh tại thị trường nội địa Việt Nam

Trang 9

 Các hoạt động chính của Vitalify Asia bao gồm hỗ trợ tổng thể về phát triển offshore,phát triển Labo, và hỗ trợ đầu tư vào Việt Nam, cũng như tham gia vào các chiếnlược marketing và kinh doanh tại thị trường nội địa Việt Nam.

 NodeJS (TypeScript, hoặc JavaScript) với NestJS framework

 PHP với Laravel framework

 Python

 Ruby với Ruby on Rails framework

Trang 10

c Application (Mobile Apps)

 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

d 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 11

1.3 Sản phẩm công ty

1.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 12

b Giới thiệu về ứng dụng

Ứ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 13

Thống kê cảm xúc của nhân viên khi thực hiện đăng ký

Hỗ trợ động lự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,

bạn có thể hiểu được tâm trạng chung của đội bạn Dựa vào đó, bạn có thể cải thiện môi trường làm việc

và hoạt động nội bộ

Trang 14

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

NikoNiko hỗ trợ checkin mọi lúc mọi nơi

NikoNiko 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

Trang 15

Chương 2: Nội dung thực tập

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

 Đọ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ộ, 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

Trang 16

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:

o Thực hiện report vào cuối mỗi ngày làm việc nội dung bao gồm cáctask được giao, thời gian ước tính cho mỗi task, số thời gian đã thựchiện, số thời gian còn lại cho mỗi task, vấn đề gặp phải và kế hoạchcủa ngày là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.

Tuần 3:

16/08/2023

23/08/2023

 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

Trang 17

 Tiếp tục được Assign Task và thực hiện tương tự.

Kết qu ả: Hoàn thành công việc được giao Tuần 5:

01/09/2023

07/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 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:  Tiếp tục được Assign Task và thực hiện

Trang 18

 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 12:

26/10/2023

01/11/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

Trang 19

Chương 3: Chi tiết về project

3.1 Thông tin về dự án

3.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 20

Vitalify 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

3.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ếpvớ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ó vaitrò 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: Nhiệm vụ chính là phát triển phần mềm, nhận công việc từ BPM hoặcLeader và tiến hành thực hiện, tự kiểm tra, sau đó kiểm tra chéo với các lập trình viênkhác Tham gia vào quá trình phân tích yêu cầu với BPM, cũng như tư vấn các vấn đềliên quan đến công nghệ

Trang 21

3.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

 Website: sử dụng framework VueJs

 Triển khai và các dịch vụ khác: AWS, Microsoft Azure

Trang 22

3.2 Các công việc đã thực hiện

3.2.1 Nghiên cứu tài liệu mô tả API hoặc màn hình và hiện tượng bất thường để điều tra lỗi

o Bởi vì dữ liệu được thu thập thông qua thiết bị là chiếc vòng cổ sẽ được thu thập liên tục

và cứ 5 giây sẽ gửi dữ liệu về 1 lần, vì với 1 dòng dữ liệu nếu xử lý trên phía code NestJsthì phải xử lý rất nhiều từ việc phân tích và định dạng data theo giờ, và thay đổi dữ liệucủa bảng liên quan Và sẽ liên tục phải cập nhật database như vậy việc phía logic servergọi và cập nhật sẽ làm chậm đi việc xử lý dữ liệu

o Yêu cầu viết trigger ở database để khi có data được cập nhật mới vào một bảng dữ liệuthô (vitals) thì database sẽ tự động trigger thay đổi data của các bảng khác(hoursStatictis) cho phù hợp mà không cần phía server tính toán và cập nhật

 Hướng giải quyết:

o Tạo thêm vào cơ sở dữ liệu 2 bảng đó là vitals chứa dữ liệu mà server IoT gửi đến để cậpnhật và bảng hoursStatictis chứa dữ liệu được phân tích từ vitals

o Viết trigger trên bảng vitals, cụ thể sẽ trigger 3 sự kiện là sau khi thêm dữ liệu vào vitals,sau khi cập nhật dữ liệu đã có sẵn của vitals và cuối cùng sau khi xoá dữ liệu trong vitals

Trang 23

 Triển khai:

o Trigger sau khi insert data

3.2.3 Trình bày nguyên nhân và đề xuất hướng giải quyết

 Yêu cầu từ phía BPM:

o Phát triển các API liên quan đến việc nhật ký khám bệnh của vật nuôi

o Cập nhật API nhật ký hoạt động của vật nuôi (hoạt động hằng ngày, thức ăn, đi dạo, ….)

o Cập nhật API getHomeData, vì thông tin ở màn hình trang chủ có nhiều thông tin khácnhau từ nhiều bảng của cơ sở dữ liệu nên các dữ liệu được mặc định là số cần phải ánh

xạ thành thông tin được định nghĩa sẵn để phía lập trình di động không cần phải tốn thờigian và tốc độ tải trên màn hình này được nhanh hơn

o Cập nhật lại logic xử lý gửi thông báo cho người dùng, có thể gửi theo nhiều điều kiệnkhác nhau, theo nhiều người dùng có cùng điều kiện,

o Và các API lấy danh sách, thông tin chi tiết, cũng như xoá một đối tượng cụ thể,

 Hướng giải quyết:

o Xác nhận lại rõ các yêu cầu mà BPM muốn thay đổi, góp ý đưa ra giải pháp phù hợp

o Dựa vào độ phức tạp cũng như sự đổi đổi nhiều hay ít của yêu cầu mà estimate thời gianhoàn thành công việc

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

TỪ KHÓA LIÊN QUAN

w