Để thử thách bản thân trong ngành công nghiệp web, em đã lựa chọnBackend web developer là định hướng cho việc học cũng như nghề nghiệp trongtương lai.. Sau những năm tháng trong môi trườ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Người phụ trách: Lê Dương Khang
Thực tập sinh: Lê Đoàn Đại Lợi
TP Hồ Chí Minh, tháng 12 năm 2023
Trang 2LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, công nghệ thông tin nói chung và ngành Côngnghệ phần mềm nói riêng luôn là nhân tố đóng vai trò quan trọng trong quá trìnhphát triển của xã hội
Công nghệ Web, hay công nghệ sản xuất các trang web đã phục vụ hầu hết các nhucầu của con người từ bán hàng, cung cấp kiến thức đến thông tin liên lạc, Hiện nay
đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫnchưa có dấu hiệu giảm
Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng được yếu tốhình thức và nội dung Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở hai yếu
tố trên luôn là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 Để thử thách bản thân trong ngành công nghiệp web, em đã lựa chọnBackend web developer là định hướng cho việc học cũng như nghề nghiệp trongtương lai
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ếnthức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết địnhtham gia vào Công ty TNHH Du lịch Mekong Leisure (VLeisure) – một môi trường
lý tưởng và chuyên nghiệp để thực hiện dự định
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn anh Huỳnh Tấn Khang (Technical Director) và anh LêDương Khang (Backend Leader) đã tạo điều kiện cho em cơ hội được thực tập tạicông ty Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của hai anh, em đãtiếp thu những kiến thức quan trọng để có thể tham gia các dự án thực tế
Chân thành cảm ơn các anh chị trong team Vleisure đã bỏ ra nhiều thời gian, côngsức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trườngmới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tư duysản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gian qua
Em 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ều kiện em làm báo cáo này
TP HCM, ngày 31 tháng 12 năm 2023
Lê Đoàn Đại Lợi
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.3 Lịch làm việc khi thực tập tại công ty 7
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2.3 Thực hiện dự án cá nhân 10
2.4 Tham gia dự án thực tế 17
Trang 63.3 Chuẩn đạt được 21
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu về VLeisure
Hình 1.1 Logo Vleisure
Thành lập năm 2011, Công ty TNHH Du lịch Mekong Leisure hay được biết đến làVLeisure, là nền tảng mạng du lịch toàn cầu B2B, trao quyền cho các đại lý quản lý vàphân phối các sản phẩm và dịch vụ du lịch cho các đối tác trực tuyến của họ Vớimạng lưới các nhà cung cấp dịch vụ du lịch toàn cầu của Vleisure, bạn có thể truy cập
cơ sở dữ liệu sản phẩm phong phú
Website công ty: vleisure.com
Địa chỉ công ty: 544A/16 đường Lạc Long Quân, phường 5, quận 11, thành phố HồChí Minh
Trang 81.2 Sản phẩm công ty
● Property Management System Project: Hệ thống quản lý khách sạn
● Point Of Sale Project: Hệ thống quản lý nhà hàng cho khách sạn
● Price Suggestion System: Đề xuất giá bán OTA
● Booking Integration System: Hệ thống liên kết Booking API
1.3 Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ ngày 1-9-2023 tới 1-12-2023, các ngàylàm việc trong tuần là 2, 4, 6 Công việc hằng ngày bắt đầu từ lúc 9 giờ đến 17 giờ.Thời gian nghỉ trưa khoảng 1 tiếng Sau mỗi ngày làm việc em sẽ báo cáo tiến độcông việc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặtmục tiêu cho ngày làm việc tiếp theo Mỗi ngày sẽ họp tiến độ tuần 1 lần vào 11h đến11h30, mọi người sẽ cùng họp và bàn bạc về các vấn đề đã giải quyết, tồn đọng, bàihọc, giải pháp và mục tiêu cho tuần tiếp theo với nhau hoàn toàn bằng tiếng Anh.Mỗi cuối sprint cách 2 tuần sẽ tổ chức sprint review, grooming, planning, cho cảteam một lần để tổng kết sprint, lên kế hoạch và phân chia công việc cho sprint mớitheo mô hình Agile
Trang 9CHƯƠ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
Thời gian: 1 ngày
Nội dung: giới thiệu về công ty, cách tổ chức của công ty, được nghe người phụ tráchgiới thiệu về công ty, quá trình thành lập và phát triển, quy trình làm việc từ caoxuống thấp, cách thức tổ chức của công ty, các phòng ban về IT, HR, … Ngoài ra, thựctập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi làm,các quy định, cách sử dụng email trong công việc, …
Kết quả: hiểu thêm về Vleisure, quá trình thành lập và phát triển Có thêm các kỹnăng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có tráchnhiệm hơn
Trang 102.2 Tìm hiểu về công nghệ
Thời gian: 2 tuần
Ngôn ngữ lập trình Go:
● Cơ bản: cú pháp, biến, kiểu dữ liệu, luồng xử lý
● Hướng đối tượng trong go: các phương thức, interfaces
● Chức năng nâng cao: generics, concurrency
● Kiểm soát chất lượng với Golangci-lint
Web Development:
● Cơ bản về lập trình web
● RESTful API: nguyên tắc thiết kế và thực hiện
● JWT: Authentication sử dụng JSON Web Tokens
Web Frameworks/Libraries:
● Echo: Framework đơn giản, hiệu suất cao
● GORM: ORM để tương tác CSDL
● GRPC: RPC framework
● Go-validator: kiểm soát dữ liệu
● Sql-migrate: công cụ để thực hiện SQL schema migration
● Logrus: Structured logging
● Sentry: Theo dõi và giám sát lỗi
● Air: Chạy lại chương trình thời gian thực
Databases and Caching:
● MySQL: Truy vấn và quản lý cơ sở dữ liệu
● Redis: In-memory data caching
DevOps and Testing:
● Docker: Container hoá cho deployment
● Git, Gitlab: kiểm soát phiên bản
Unit Testing:
● Mockery: Thư viện mô phỏng để kiểm thử
● Testify: Bộ công cụ để kiểm tra và đảm bảo code
Trang 112.3 Thực hiện dự án cá nhân
Thời gian: 1 tháng
Vì vấn đề bảo mật và các qui quy định công ty, em xin phép không đề cập kỹ càng đề
kỹ thuật của dự án cá nhân bởi dự án cá nhân sử dụng cấu trúc, công nghệ tươngđồng với dự án thực tế của công ty nhằm mục đích làm quen khi bước vào dự ánthực tế
2.3.1 Công nghệ
Ngôn ngữ lập trình: golang
Database: Mysql, Firebase
Thư viện, framework:
● Phân tích, thiết kế ERD
● Liệt kê các API cần thiết cho page
● Viết API theo template structure
● Viết unit-test cho những API trên
● Authentication/Push notification with Google Firebase
Trang 122.3.3 Kết quả
Lược đồ ERD:
Hình 2.3.3.a Lược đồ ERD dự án cá nhân
Liệt kê các API:
Trang 13Một số hình ảnh từ dự án cá nhân:
Hình 2.3.3.b Chạy chương trình với docker, air
Hình 2.3.3.b Chạy unit tests
Trang 14Hình 2.3.3.c Test get movies api bằng Postman
Trang 15Hình 2.3.3.e Test api push notification bằng Postman
Hình 2.3.3.f Test update movies api bằng Postman
Trang 16Hình 2.3.3.g Data mẫu từ MySql
Trang 17Hình 2.3.3.i Notification mẫu từ Firebase
Trang 182.4 Tham gia dự án thực tế
Thời gian: 2 tháng
Dự án chính: POS (Point Of Sale System)
Business của dự án: quản lý nhà hàng bên trong khách sạn
Nhiệm vụ chính: viết các API cho POS mobile
Một số hình ảnh minh hoạ từ design của POS để thiết kế các API dựa trên các designđó:
Hình 2.4.1 Figma design login POS mobile
Trang 19Hình 2.4.2 Figma design login và sơ đồ bàn của POS mobile
Trang 20Ngoài ra em còn được giao một số task khác ngoài viết API như viết script gửi thôngbáo Slack khi một project nào đó được deploy hoặc một số event khác:
Hình 2.4.3 Thông báo Slack khi project được deploy
Vì vấn đề bảo mật và các qui quy định công ty, em xin phép không đề cập đến vấn đề
kỹ thuật của dự án cũng như các API em đã thực hiện trong thời gian thực tập
Trang 21CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại VLeisure đã giúp em cải thiện bản thân rất nhiều trongquy trình làm việc thực tế, tác phong của người kỹ sư phần mềm Được làm việc tạiđây, em đã học thêm được kỹ năng mềm sử dụng quản lý dự án, quản lý ticket, làmviệc nhóm, giao tiếp với cấp trên … và các kỹ năng chuyên môn đồng thời được làmviệc, tiếp xúc với mô hình Agile
Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình trainingvới các tính năng, yêu cầu đặt ra ban đầu
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạtchất lượng tốt
3.1 Điểm mạnh
● Tiếp thu nhanh các kỹ thuật mới
● Có tinh thần trách hiện
● Nắm bắt yêu cầu và hoàn thành tốt các yêu cầu được giao
● Chủ động trong công việc
● Nắm vững được kiến thức chuyên môn: Go, databases , gRPC …
3.2 Điểm yếu
● Còn nhiều kiến thức, kĩ năng cần phải học hỏi
● Cần tìm hiểu thêm nhiều kiến thức về các business của công ty
Trang 22G3 Nắm được quy trình, phương pháp và công nghệ phát
triển sản phẩm phần mềm tại doanh nghiệp