ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜ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 FULL-STACK SOFTWARE ENGINEER Công ty thực tập: KMS Techn
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 THỰC TẬP FULL-STACK SOFTWARE ENGINEER
Công ty thực tập:
KMS Technology Việt Nam – UpStar
Labs Người phụ trách:
NGUYỄN XUÂN HÙNG
Thực tập sinh:
Hồ Chí Minh, 07/2020
-Trang 2-
Trang 2Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 3-
LỜI MỞ ĐẦU
Trong thời đại hiện nay, Công nghệ thông tin nói chung và ngành Công nghệ phần mềm nói riêng vẫn luôn là một trong những nhân tố thiết yếu và đóng vai trò quan trọng nhất trong
sự phát triển chung của cả xã hội
Công nghệ Web - hay hiểu đơn giản là các trang web giao tiếp với người dùng ngày càng
đa dạng và phong phú, phục vụ cho mọi nhu cầu của con người từ việc bán hàng, cung cấp kiến thức, thông tin liên lạc… đã đặt ra một vấn đề chung chính là hình thức và chất lượng! Làm thế nào để cân bằng được 2 yếu tố chính yếu nói trên và tăng tính trải nghiệm của người dùng chính là bài toán mà bất kì một đội ngũ phát triển website nào cũng cần phải suy nghĩ đau đầu!
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học trên lớp và học hỏi thêm những kinh nghiệm trong môi trường làm việc thực tế, cũng như muốn được tự trải nghiệm bản thân trong việc tham gia phát triển các sản phẩm của
ngành Công nghệ phần mềm Vì vậy, em đã quyết định chọn KMS Technology Việt Nam –
UpStar Labs với vị trí Full-stack Software Engineer Intern là nơi để thực hiện được dự
định này!
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
Trang 3-Trang 4-
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn tới Công ty KMS Technology Việt Nam – UpStar Labs đã tạo điều kiện cho em có cơ hội thực tập trong dịp này!
Đặc biệt gửi lời cảm ơn đến anh Nguyễn Xuân Hùng, là người đã trực tiếp hướng dẫn, giúp đỡ em một cách tận tình, người đã sắp xếp và giao những task với mức độ phù hợp với trình độ của bản thân em, cùng những kiến thức, chia sẻ kinh nghiệm bổ ích cho quá trình thực tập!
Cảm ơn các anh chị trong bộ phận Marketing của team Katalon (UpStar Labs) đã cho em hiểu được cách mà một Website Landing Page vận hành như thế nào, cách phối hợp giữa những thành phần tạo nên nó: Design, Content, Developer, và Marketing ra làm sao, trong một môi trường làm việc thân thiện, thoải mái
Em cũng xin gửi lời cảm ơn tới các Thầy Cô trong Khoa Công nghệ phần mềm đã hỗ trợ, tạo điều kiện để em làm bài báo cáo này
Một lần nữa, em xin chân thành cảm ơn!
Tp.Hồ Chí Minh, ngày 27 tháng 07 năm 2020
Sinh viên thực hiện Nguyễn Thành Luân
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 5-
Trang 4NHẬN XÉT CỦA KHOA
.
.
.
.
.
.
.
.
.
, ngày tháng ……… năm 2020
Người nhận xét (Ký và ghi rõ họ tên)
Trang 5Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 6-
MỤC LỤC
LỜI MỞ ĐẦU 3
LỜI CẢM ƠN 4
NHẬN XÉT CỦA KHOA 5
Phần I – GIỚI THIỆU CÔNG TY THỰC TẬP 7
1 TỔNG QUAN VỀ KMS TECHNOLOGY 7 2 TỔNG QUAN VỀ UPSTAR LABS 9 3 WEBSITE KATALON STUDIO 11
Phần II – NỘI DUNG VÀ QUÁ TRÌNH THỰC TẬP 13
Phần III – KẾT QUẢ THỰC TẬP 18 1 TỰ ĐÁNH GIÁ 18 2 NHÌN NHẬN VỀ THUẬN LỢI VÀ KHÓ KHĂN 18
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
Trang 6-Trang 7-
Phần I – GIỚI THIỆU CÔNG TY THỰC TẬP
1 TỔNG QUAN VỀ KMS TECHNOLOGY
Hình 1.1 Logo của công ty KMS Technoly
KMS Technology là nhà cung cấp hàng đầu về phát triển phần mềm, dịch vụ kiểm thử và
tư vấn các giải pháp phần mềm Có trụ sở tại Atlanta, GA với các văn phòng ở California và Việt Nam, KMS đẩy mạnh việc cung cấp các giải pháp phần mềm sáng tạo thông qua
phương pháp lấy khách hàng làm trung tâm, tập trung và phát triển các giá trị kinh doanh cốt lõi
Các số liệu thống kê:
- Hơn 11 năm vận hành trong lĩnh vực
- Phục vụ trên 80 công ty khách hàng
- Hiện tại có hơn 1000 nhân viên
- Với tổng doanh số 4.7 tỷ dollars các sản phẩm được bán ra và tiết kiệm được 139 triệu dollars cho các giải pháp phần mềm
Khách hàng của KMS:
- Các công ty cổ phần
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
Trang 7-Trang 8-
KMS là chuyên gia trong việc hoạt động với các công ty cổ phần Vì cũng là một nhà đầu tư, KMS biết cách cung cấp các dịch vụ làm tăng giá trị đầu tư và giá trị sản phẩm bán ra của những công ty đó
- Các công ty phần mềm
Phát triển phầm mềm và đảm bảo chất lượng là tiêu chỉ của KMS, cung cấp các tài nguyên cần thiết để cải tiến thời gian đưa sản phẩm ra thị trường, cải thiện chất lượng
và giảm chi phí chung
Lĩnh vực kinh doanh:
- Software Outsourcing
Hình 1.2 Logo KMS Technoly
- Startup Incubator
Hình 1.3 Logo UpStar Labs
- Solution Provider
Hình 1.4 Logo KMS Solutions
Điểm khác biệt của KMS:
KMS vừa là một “Doanh nhân”, vừa là một “Nhà vận hành” và một “Nhà đầu tư” Điều này làm cho KMS khác biệt so với các nhà cung cấp dịch vụ và giải pháp phần mềm khác KMS biết chính xác những điều làm nên một nền tảng dẫn đầu trong ngành công nghiệp
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 9-
Trang 8này bởi lẽ chính KMS đã tự mình làm ra điều đó với vườn ươm UpStar Labs cùng những sản phẩm của riêng mình
Hình 1.5 Các sản phẩm của KMS Technology
Thông tin khác:
- Website: https://www.kms-technology.com/
- Location:
➢ Việt Nam:
• Cộng Hoà
• Tản Viên
• UpStar Labs
• Đà Nẵng
➢ US:
• Atlanta
2 TỔNG QUAN VỀ UPSTAR LABS
UpStars Labs là startup đầu tư và ươm mầm khởi nghiệp của KMS Technology Được hướng dẫn bởi một đội ngũ lãnh đạo toàn cầu, UpStar Labs xây dựng các sản phẩm phần mềm nổi tiếng thế giới bằng việc sử dụng nguồn nhân lực chất lượng cao ở Việt Nam và đầu
tư vào các công ty khởi nghiệp có ảnh hưởng lớn ở Mỹ và Việt Nam
Các số liệu thống kê:
- Hơn 100 nhân viên
- 5 sản phẩm
- 6 danh mục đầu tư
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 10-
Các danh mục sản phẩm gồm có:
- QASymphony (2011) Nền tảng quản lý kiểm thử hàng đầu giúp đẩy nhanh quá trình
Trang 9tung sản phẩm ra thị trường của team agile
- Katalon (2015) Giải pháp toàn diện automation testing hỗ trợ Web, Mobile, và API,
cung cấp các giải pháp tích hợp CI/CD, test scheduling, reporting và monitoring -
Kobiton (2016) Nền tảng kiểm thử trên thiết bị di động, cung cấp manual và automated
testing trên thiết bị thực
- Sprynkl (2019) Ứng dụng giúp cải thiện các giá trị cốt lõi và nét đặc trưng của một team
- Grove (Coming soon)
Hình 1.6 Các sản phẩm của UpStar Labs
Các danh mục đầu tư:
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 11-
Hình 1.7 Các danh mục đầu tư của UpStar Labs
Thông tin khác:
- Website: https://www.upstarlabs.com/
3 WEBSITE KATALON STUDIO
Trang 10Website: https://www.katalon.com/
Trang web chính thức của Katalon, một sản phẩm trong vườn ươm UpStar Labs của KMS Technology Bao gồm các trang landing page nhằm định hướng người dùng tới sản phẩm, các trang Blog, Support, Forum và Company Info… Là sự kết hợp của tất cả các bộ phận trong team Katalon, kể từ Product, Sales, Design, Content và Marketing, website Katalon chính là “bộ mặt” của sản phẩm, mang trong mình tầm quan trọng và trọng trách cực
kì lớn lao khi là “trang mở đầu” trong một “cuốn sách” giao tiếp với khách hàng Vậy nên việc thay đổi về các thành phần giao diện, cải thiện hiệu suất, tăng trải nghiệm người dùng và nâng cao hệ thống tracking giúp mang lại một cái nhìn tổng quan, để từ đó có những định hướng phát triển sản phẩm hoàn thiện và phù hợp với nhu cầu người dùng luôn là công việc hàng ngày của cả một đội ngũ phát triển sản phẩm nói riêng, và website Katalon nói riêng
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 12-
Trang 11Hình 1.8 Homepage của website Katalon
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 13-
Trang 12Phần II – NỘI DUNG VÀ QUÁ TRÌNH THỰC TẬP
Thời gian thực tập: 13/04 đến 13/08 (4 tháng, đang diễn ra)
Hình thức thực tập: Partime (tối thiểu 20 tiếng 1 tuần)
Nội dung thực tập: Tham gia xây dựng và phát triển các tính năng, giao diện của website
Katalon bằng việc sử dụng Wordpress với ngôn ngữ lập trình PHP và MySQL database Đồng thời tiếp cận với hệ thống tracking của sản phẩm được hiện thực bằng NodeJS
Nhật ký thực tập:
Thời gian Nội dung công việc Thực hiện và Kết quả đạt được
Tuần 1
(13/04
đến 19/4)
1 st day on-boarding session Được cấp máy tính riêng, được hướng dẫn
về tài khoản KMS và cách kết nối vào mạng nội bộ thông qua VPN của công ty
Tìm hiểu, build server local cho 2 project katalon
websites (Wordpress)
và katalon-backend-nodejs
• Tải IDE, applications, tools… hỗ trợ cho công việc về máy tính công ty
• Tìm hiểu được cấu trúc của một project Wordpress với custom theme
• Tìm hiểu được cách dựng một server dưới local thông qua XAMPP
• Nắm được cơ chế hoạt động của certificate SSL để dùng cho giao thức HTTPS trong một project wordpress
• Biết được cách import database, config các file có liên quan để dựng local cho website Katalon
• Config được project tracking sử dụng NodeJS để run dưới local và test thử một vài API thông qua Postman
Security Awareness Course Nắm được các chính sách về bảo mật thông
tin của công ty
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 14-
Tuần 2
và 3
(20/04
Tham gia các buổi Daily meeting
Bước đầu hiểu khái quát được các công việc cần làm của bộ phận Marketing, cũng như vai trò và nhiệm vụ của bản thân trong team
Trang 13đến
03/05)
Viết email template để gửi cho khách hàng theo
design
Biết được cách viết một email template sử dụng HTML và những hạn chế trong việc hiển thị email trên Outlook
Hiện thực trang
Selenium Landing Page
• Biết cách tạo ra một trang Landing Page trong wordpress theme và thêm vào wordpress admin
• Làm quen với các công cụ hỗ trợ trong việc phát triển website như InVision, Trello, Slack, TinyPNG, S3 Browser (Amazon Web Service)
• Nắm được các bước thực hiện trước khi deploy một website (test local -> test staging -> build production)
• Nâng cao khả năng CSS và responsive • Hạn chế: Vì là task đầu tiên phối hợp với mọi người nên là vẫn chưa chủ động được thời gian cũng như bám sát vào tiến độ dẫn tới bị trễ hạn 2 ngày
Tuần 4 –
giữa
tuần 8
(04/05
đến
03/06)
Cập nhật trang Partner Hiểu được một số vấn đề gặp phải trong
việc hiển thị ở các browser khác nhau (đặc biệt là Internet Explorer) và cách khắc phục
Optimize website Katalon Task lớn nhất và được xem là quan trọng
nhất trong thời gian thực tập
• Sử dụng Google Pagespeed Insight để audit và tiếp cận các cách có thể optimize website Nhận ra vấn đề lớn nhất nằm ở việc render-blocking resources, compressed images và content quá nhiều, dẫn tới DOM Tree lớn
• Các giải pháp tiềm năng:
✓ Eliminate render-blocking resources ✓ Compress images
✓ Remove unused CSS
✓ Cache and cookie
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 15-
Trang 14✓ Minify JS/CSS file
✓ Reduce server response time
• Tìm hiểu được các plugin hỗ trợ optimize website Tiến hành cài đặt và so sánh điểm hiệu suất chênh lệch, đồng thời kiểm tra về các lỗi xảy ra sau khi cài plugin
• Sử dụng máy ảo Linux để cài đặt Apache ModPagespeed với mục đích là kiểm tra kết quả giả lập việc optimize lên trực tiếp server Apply các filter của tool và report chi tiết sự thay đổi về hiệu suất của website
• Sử dụng tool optimize-image của anh Nguyễn Xuân Hùng để nén một lượng lớn image assets của websites
Viết tool crawl data
Pagespeed Insight sử
dụng NodeJS
• Mục tiêu là để giám sát các biến động về điểm số của Pagespeed Insight cho website Katatalon để tìm kiếm các giải pháp thích hợp
• Sử dụng cronjob scheduler để lập lịch và highchartjs để visualize data
Cập nhật giao diện trang
Search
Nâng cao khả năng đọc hiểu và maitain code
Fix lỗi thumbnail bị vỡ trên
trang
testautomationresources.com
Nắm được các bước để fix một vấn đề liên quan tới theme
Tà Hine trip với mọi người
trong team.
Giữa
tuần 8 –
tuần
12
(04/06
đến
05/07)
Update version package
backend NodeJS vì vấn
đề security
Sử dụng Postman và list API có sẵn của anh Nguyễn Xuân Hùng để test kết quả trả
về sau khi cập nhật version của package Vì liên quan tới hệ thống tracking của cả sản phẩm nên cần test rất kĩ
Katalon Studio Roadmap • Hiện thực trang Katalon Studio
Roadmap
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 16-
Trang 15• Viết plugin Manage Data Roadmap để có thể tuỳ chỉnh dữ liệu của roadmap trong wordpress admin Hiểu được cấu trúc code của một plugin trong wordpress
• Hiểu được cơ chế backup server bằng cách sử dụng nhiều server khác nhau, khi một server bị down thì truy cập vào website vẫn không bị ảnh hưởng Tuy nhiên tồn đọng một vấn đề đó là việc đồng bộ dữ liệu nếu như dữ liệu đó được lưu ở server chứ không phải trong database (plugin Manage Data Roadmap
là một ví dụ điển hình)
Cập nhật trang Sign Up Tuy chỉ thay đổi một ít trong design nhưng
do sử dụng chung template tổng của cả theme, cần hết sức cảnh giác để tránh xảy
ra những lỗi không lường trước được Nâng cao được khả năng đọc hiểu và maintain, reuse code
Tìm kiếm lỗi của
plugin
wordpress-defender
Hiểu được cách tracking một lỗi của plugin
Fix lỗi hiển thị của icon Hiểu thêm được các vấn đề trong việc hiển
thị website trên IE browser và cách khắc phục
Tuần 13
– hiện
tại
(06/07
đến hiện
tại)
Blog post revamp – Cập
nhật toàn bộ trang blog
• Thay đổi toàn bộ giao diện của trang Blog với fixed data (vì chưa quen với hàm ajax load dữ liệu từ database nên sẽ viết trước với dữ liệu tự set cố định)
• Thay đổi giao diện và xử lí của header navigation
• Thêm chức năng Set Popular cho một bài post trong wordpress admin Tìm hiểu
về Wordpress Action Hook
• Viết mới và chỉnh sửa các function load
dữ liệu từ database phù hợp với design
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 17-
Trang 16mới sử dụng wpquery và ajax-load more
• Viết thêm các tuỳ chọn trong Theme Settings để thay đổi các thông số liên quan của trang blog Hiểu thêm được cấu trúc của một custom theme trong wordpress
• Tạo phân trang và xử lí cho list blogs • Viết CSS và hiệu chỉnh responsive trên nhiều thiết bị Sử dụng VNC Viewer để có thể test trên MacOS
• Sửa lại script xử lí scroll event cho các nội dung được yêu cầu
• Nắm rõ được cơ chế render của javascript để từ đó khắc phục vấn đề của box-shadow
• Hạn chế:
• Chưa thống nhất về bộ font của design
và font hiển thị trên web dẫn tới khó khăn trong việc code theo design
• Sự khác biệt hiển thị giữa Chrome và Safari
• Miss-comunication dẫn tới việc hiểu lầm
về design idea
Thêm Customer
Success Story của
Rekencentra
Tăng khả năng đọc hiểu code và sử dụng lại template có sẵn
Fix lỗi trang Webinars
bị gắn link sai
Sau khi có kinh nghiệm từ task Blog post revamp, ngay lập tức xác định được vị trí gây ra vấn đề và cách giải quyết
Viết tool export user từ
MySQL
Bước đầu suy nghĩ tới các vấn đề đặt ra về hiệu suất khi query đến một lượng lớn dữ liệu ở database
Làm quen với hệ
thống tracking của
Katalon
[Private]
Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 18-