Đặc biệt cảm ơn anh Lê Duyên Thiện, đã training về các tác vụ, cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu, hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn t
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
INTERN MOBILE DEVELOPER
TP Hồ Chí Minh, tháng 12 năm 2023
Trang 2LỜI MỞ ĐẦU
Trong thời đại số hóa ngày càng phát triển, ngành công nghệ thông tin và viễn thông trở thành trọng tâm của sự phát triển kinh tế và xã hội Việc ứng dụng công nghệ mới và sáng tạo liên tục là một phần quan trọng để duy trì sự cạnh tranh của các công ty trong lĩnh vực này Trong bối cảnh này, em may mắn được tham gia vào chương trình thực tập lập trình viên mobile tại công ty mạng di động Gtel Mobile
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành mạng di động Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về mạng di động trên thế giới Gtel Mobile, với tầm nhìn và cam kết phát triển dịch vụ di động tiên tiến, đã trở thành một trong những đội ngũ ưu tú trong ngành công nghiệp viễn thông
Ngành mạng di động được sinh ra là do nhu cầu của giới trẻ bằng những thiết bị công nghệ mới nhất Và cũng chính giới trẻ sẽ là nguồn nhân lực quan trọng cho việc phát triển của ngành mạng di động sau này Vì lý do này, em quyết định chọn lập trình di động làm định hướng cho việc học tập của mình
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia làm app di động trong một môi trường chuyên nghiệp, em có dự định là sẽ thực tập trong hè Vì vậy, em quyết định chọn Gtel Mobile - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Cổ phần Viễn thông Di động Toàn Cầu Gtel Mobile JSC đã tạo điều kiện cho em có cơ hội được thự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 nhóm trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể tham gia vào quá trình phát triển app di động iZOTA Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Lê Duyên Thiện, đã training về các tác vụ, cách làm báo cáo, lên kế
hoạch, những kỹ năng không thể thiếu, hướng dẫn, giúp đỡ cho chúng 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ới môi trường mới; Cảm ơn anh Tiến Hoàng, Dũng, đã giúp đỡ em trong phần sử dụng git cùng với dựng server Socket; Cảm ơn tất
cả các anh đã giúp em trong quá trình đóng góp trong việc xây dựng app iZOTA trong thời gian vừa qua
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ài báo cáo này
Phạm Phùng Gia Khiêm TP.HCM, tháng 12 năm 2023
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 Giới thiệu công ty Gmobile 6
2 iZOTA 6
CHƯƠNG 2: NỘI DUNG THỰC TẬP 8
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 9
2 Nghiên cứu kỹ thuật và chi tiết các công việc thực hiện 10
2.1 Tìm hiểu công cụ và môi trường, build app iZOTA 10
2.2 Review thư viện và tìm hiểu về công nghệ NFC, tìm hiểu công nghệ eKYC 10
2.3 Dựng plugin NFC cho Flutter và Deploy phiên bản mới cho app iZOTA 11
2.4 Tích hợp NFC vào dự án iZOTA, tiềm hiểu và tích hợp MRZ, hỗ trợ công ty định danh cho khách hàng 11
2.5 Tìm hiểu về OTT và kiến trúc ZegoCloud 12
2.6 Tìm hiểu về Socket.io và dựng server Socket.io hỗ trợ cho app iZOTA 13
2.7 Vẽ kiến trúc ZegoCloud và tham gia trao đổi lấy thông tin VTVcab Huyndai – Shopping .13 CHƯƠNG 3: CHI TIẾT VỀ CHỨC NĂNG 15
1 Giới thiệu về chức năng 15
1.1 Yêu cầu chức năng 15
1.2 Phân tích chức năng 15
2 Quá trình thực hiện 16
3 Kết quả đạt được 16
CHƯƠNG 4: ĐÁNH GIÁ, NHẬN XÉT 17
4.1 Tự đánh giá: 17
4.2 Mô tả hoạch định tương lai dựa trên kết quả thực tập: 17
Trang 6TÀI LIỆU THAM KHẢO 18
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1 Giới thiệu công ty Gmobile
Công ty Cổ phần Viễn thông Di động Toàn Cầu Gtel Mobile JSC được thành lập vào tháng 07/2008, trên cơ sở liên doanh giữa Tổng Công ty GTEL và Tập đoàn Vimpelcom (Nga) Do thay đổi trong chiến lược kinh doanh theo thỏa thuận của các
cổ đông, đồng thời được sự phê duyệt của Chính Phủ cũng như các Cơ quan trung ương, tháng 4/2012, phía Vimpelcom đã chuyển giao toàn bộ cổ phần của mình trong liên doanh cho phía Việt Nam, qua đó đưa GTel Mobile JSC chính thức trở thành doanh nghiệp viễn thông 100% vốn trong nước, bước sang một giai đoạn mới phát triển trên thị trường viễn thông Việt Nam
Hưởng ứng chương trình hành động từ Chính phủ về Chuyển đổi số quốc gia, Gmobile đã và đang hợp tác với nhiều tập đoàn công nghệ hàng đầu cũng như các đối tác viễn thông, truyền thông Qua đó, xây dựng hệ thống mạng viễn thông di động thế hệ mới phù hợp với xu thế đang phát triển tại Việt Nam cũng như trên thế giới
Khởi đầu với thương hiệu BeelineVN, đến tháng 9/2012 thương hiệu BeelineVN chính thức được thay thế bởi thương hiệu mới Gmobile
2 iZOTA
Trang 8iZOTA - Ứng dụng quản lý tài khoản viễn thông của Mạng Di Động Gmobile dành cho Người dùng (cá nhân, tổ chức) và Đại lý Ứng dụng mang lại trải nghiệm khác biệt với nhiều tiện ích: Đăng ký thuê bao Gmobile Data miễn phí, sử dụng số
ảo không cần SIM vật lý, nghe gọi trên ứng dụng, thanh toán hóa đơn nhanh chóng Gmobile sở hữu đầu số 099 với đầu số đa
dạng của cửa hàng, dịch vụ chăm sóc khách hàng chuyên nghiệp Người dùng Gmobile có thể dễ dàng đăng ký số đẹp, số sinh nhật gắn thương hiệu cá nhân một cách dễ dàng
Trang 9CHƯƠNG 2: NỘI DUNG THỰC TẬP
Ở chương này, báo cáo sẽ tập trung trình bày các nội dung của kì thực tập bao gồm các phần giới thiệu và training kĩ năng mềm, nghiên cứu các kiến thức liên quan về lập trình iOS, thực hiện dự án thực tập và cuối cùng là kết quả dự án thực tập Toàn bộ quá trình thực tập kéo dài khoảng 2 tháng với lịch trình được khái quát trong bảng sau:
Thời gian Nội dung
Giai đoạn 1: Giới thiệu và gặp gỡ (1 ngày)
17/07/2023
Chào mừng và giới thiệu về hệ thống của iZOTA
Gặp gỡ team, kết thúc giai đoạn 1
Giai đoạn 2: Chuẩn bị thiết lập môi trường và build app iZOTA
Tuần 1
(18/07 – 22/07)
Tìm hiểu cách sử dụng các công cụ làm việc Thiết lập môi trường và setup build app iZOTA
Giai đoạn 3: Training kỹ năng song song với thực hiện dự án
Tuần 2
(24/07 – 29/07)
Review thư viện và tìm hiểu về công nghệ NFC Tìm hiểu về eKYC
Trang 10Tuần 3
(31/07 – 05/08)
Dựng plugin NFC cho Flutter Deploy phiên bản mới cho app iZOTA
Tuần 4
(07/08 – 12/08)
Tích hợp NFC vào dự án iZOTA Tìm hiểu về công nghệ MRZ và tích hợp vào iZOTA app
Hỗ trợ công ty định danh điện tử
Tuần 5
(14/08 – 19/08) Tìm hiểu về công nghệ OTT
Tìm hiểu về kiến trúc ZegoCloud
Tuần 6
(21/08 – 26/08) Tìm hiểu về Socket.ioDựng server Socket.io hỗ trợ cho app iZOTA
Tuần 7 - 8
(28/08 – 09/09) Vẽ kiến trúc ZegoCloud
Tham gia trao đổi lấy thông tin VTVcab Huyndai - Shopping
Tuần 9
(11/09 – 16/09) Xây dựng NFC – MRZ SDK Android Native
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ách giới thiệu về công ty, quá trình thành lập và phát triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty Cấu trúc tổng thể của hệ thống iZOTA
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty Gtel Mobile, 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ách nhiệm hơn
Trang 122 Nghiên cứu kỹ thuật và chi tiết các công việc thực hiện
2.1. Tìm hiểu công cụ và môi trường, build app iZOTA
Thời gian : 1 tuần
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như Slack - sử dụng trong tao đổi làm việc nhóm; Conluence – lưu lại document, resources, Daily Stand Up; Github - Lưu và quản lý source code; Jira quản lý task; …
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, hiểu rõ hơn về cấu trúc của app iZOTA
2.2. Review thư viện và tìm hiểu về công nghệ NFC, tìm hiểu công nghệ eKYC
Thời gian : 1 tuần
Nội dung : Được tìm hiểu về eKYC và công nghệ NFC, review thư viện native NFC
- Tìm hiểu eKYC (Electronic Know Your Customer):
Các kiến thức cơ bản về eKYC như khải niệm, lợi ích, ứng dụng của nó trong dự án của công ty, … Nắm bắt các thông tin:
Mục tiêu
Thành phần thông tin
Công nghệ sử dụng
Lợi ích
Ứng dụng thực tế
- Tìm hiểu NFC (Near Field Communication) Các kiến thức cơ bản về NFC như khải niệm, lợi ích, ứng dụng của nó trong dự án của công ty, … Nắm bắt các thông tin:
Nguyên tác hoạt động
Chế độ hoạt động
Ứng dụng
Tiềm năng phát triển
- Review thư viện NFC Review phần code của hệ thống, hiểu các thành phần của code, build và đánh giá các trường thông tin được lấy
Thực hiện :
Trang 13- Tự tìm hiểu thông qua sự hướng dẫn và giới thiệu của lead về các nội dung chính quan trọng
- Tiến hành build app mẫu
Kết quả :
- Nắm các kiến thức về công nghệ NFC và eKYC
- Có được những kiến thức quan trọng cho việc lập trình mobile sau này
- Hiểu cách hoạt động của thư viện và áp dụng nó
2.3. Dựng plugin NFC cho Flutter và Deploy phiên bản mới cho app iZOTA
Thời gian: 1 tuần
Nội dung: Tìm hiểu cách tạo một Plugin và public nó, đồng thời học cách rebase và
deloy sản phẩm
- Cách tạo một Plugin:
Xác định mục tiêu của plugin
Chuẩn bị môi trường
Định nghĩa các API của plugin
Triển khai plugin cho android
Đăng ký plugin và public
- Deloy bản rebase phiên bản mới nhất của dự án cho tester kiểm tra
Thực hiện :
- Thực hiện tao plugin cho Flutter dựa trên thư viện Android Native
- Puvlic thư viện
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả :
- Tạo thành công plugin NFC cho flutter
- Hiểu được cách thức hoạt động của một plugin
2.4. Tích hợp NFC vào dự án iZOTA, tiềm hiểu và tích hợp MRZ, hỗ trợ công ty định
danh cho khách hàng.
Thời gian: 1 tuần
Nội dung: Tiến hành tích hợp plugin vào dự án, đồng thời tìm hiểu và tích hợp MRZ,
song song với công việc về kỹ thuật tham gia vào việc hỗ trợ định danh điện tử
Trang 14- Tích hợp NFC đã xây dựng vào dự án:
Thiết lập các rằng buộc và tích hợp thư viện đã xây dựng vào dự án
- Tìm hiểu công nghệ MRZ (Machine Readable Zone):
Nắm bắt được khái niệm, cách hoạt động và nắm được một số thông tin:
Mục tiêu
Vị trí và cấu trúc của mã MRZ
Thông tin của mã MRZ
Ứng dụng
- Tích hợp MRZ vô dự án:
Tiềm kiếm các thư viện quét MRZ
Setup điều kiện và thông số tương thích với thư viện
Tích hợp và thiết kế giao diện quét MRZ
Format lại các trường thông tin phù hợp với chu cầu
- Cùng với các anh chị tham gia vào định danh điện tử cho người dân cũng như khách hàng
Thực hiện:
- Tích hợp tính năng quét MRZ và NFC vào dự án
- Chủ động tìm hiểu về dự án để tích hợp một cách hợp lý nhất
Kết quả:
- Hiểu thêm được về công nghệ MRZ và cách nó hoạt động
- Tích hợp thành công các công nghệ đã tìm hiểu vào dự án
- Đóng góp vào việc hỗ trợ định danh cho cộng đồng
2.5. Tìm hiểu về OTT và kiến trúc ZegoCloud
Thời gian: 1 tuần
Nội dung: Tiềm hiểu về công nghệ OTT và kiến trúc ZegoCloud
- Tiềm hiểu về OTT (Over - The - Top)
Định nghĩa
Ứng dụng
Tiện ích
Khả năng phát triển
- Kiến trúc ZegoCloud:
Cách thức hoạt động
Các thành phần chính trong kiến trúc
Các luồng xử lý của các chức năng
Trang 15 Sử dụng Token để xác thực
Thực hiện:
- Build app OTT đang được phát triển
- Review Poc server của phần OTT
Kết Quả:
- Hiểu được cách hoạt động của các phần
- Nắm bắt được cấu thúc của ZegoCloud
- Nắm bắt các lường sử xứ của các chức năng
2.6. Tìm hiểu về Socket.io và dựng server Socket.io hỗ trợ cho app iZOTA
Thời gian: 1 tuần
Nội dung: Tiềm hiểu về Socket.io và dựng server
- Tiềm hiểu về Socket.io:
Tổng quan
Cơ chế hoạt động
Cách tích hợp
- Dựng server Socket:
Xác định các yêu cầu
Review base server được cung cấp
Tiến hành xây dựng server
Thực hiện:
- Chủ động tìm hiểu và xây dựng mẫu
- Nhận khuôn mẫu code và tiến hành tạo dựng server hoàn chỉnh theo yêu cầu
Kết Quả:
- Dựng thành công server theo yêu cầu hỗ trợ cho hoạt động phát sinh của dự án
- Nắm bắt được kiến thức mới về cách dựng server
2.7 Vẽ kiến trúc ZegoCloud và tham gia trao đổi lấy thông tin VTVcab Huyndai – Shopping
Thời gian: 1 tuần
Nội dung: Vẽ kiến trúc ZegoCloud và tham gia trao đổi lấy thông tin VTVcab
Huyndai – Shopping
- Vẽ kiến trúc ZegoCloud:
Tiến hành vẽ kiến trúc của ZegoCloud
Vẽ UML lường hoạt động của các chức năng
- Tham gia trao đổi lấy thông tin với đối tác VTVcab Huyndai theo yêu cầu của leader
Thực hiện:
Trang 16- Lấy thông tin kỹ thuật của đối tác
Kết Quả:
- Hoàn thành tài liệu tìm hiểu về ZegoCloud
- Báo cáo thông tin trao đổi về việc hợp tác
Trang 17CHƯƠNG 3: CHI TIẾT VỀ CHỨC NĂNG
1 Giới thiệu về chức năng
Phần này em sẽ tập trung vào các chức năng chính mà em đã thực hiện trong quá trình thực tập tại công ty Gtel Mobile
1.1 Yêu cầu chức năng
Xây dựng chức năng định danh điện tử: bằng công nghệ NFC và MRZ
dựa trên thư viện Android Native để lấy các trường thông tin từ CCCD gắn chip điện tử theo yêu cầu được đưa ra
Dựng Socket server hỗ trợ tính năng Realtime cho dự án
1.2 Phân tích chức năng
Chức năng Định danh điện tử:
Người dùng sử dụng CCCD gắn chip để định danh khi sử dụng app iZOTA
Bật chế độ quét MRZ quét mã code MRZ của mặt sau thẻ CCCD để lấy các trường thông tin cơ bản để tiến hành quét NFC
Khi tiến hành quét NFC: hệ thống sẽ lấy thông tin quét được từ MRZ tiến hành so sánh thông tin quét được từ thẻ
Hiển thị kết quả quét được ra màn hình
Dựng Socket server:
Xây dựng server dựa trên form mẫu của công ty
Lấy data từ API khi được thông báo từ Core của hệ thống
Lấy data chuyển cho app client trong thời gian thực để cập nhật lại giao diện
Kiểm thử lại các quá trình
Trang 182 Quá trình thực hiện
Chức năng Định danh điện tử:
Review code thư viện Android Native
Dựng plugin dựa trên thư viện trên
Thiết lập các kênh Channel giao tiếp giữa Flutter và Native
Public plugin lên pubdev
Tích hợp NFC plugin vô dự án
Review MRZ plugin
Tích hợp MRZ plugin vô dự án
Format các trường dữ liệu theo yêu cầu
Checkout branch và up source code lên Github
Dựng Socket server
Review format code base
Xây dựng Server
Nhận API core
Push event lên app
Test các ngoại lệ và kiểm thử
3 Kết quả đạt được
- Xây dựng thành công các chức năng
- Hoàn thành quản lý source code
- Hoàn thành các thành phần tài liệu
- Học được các kỹ năng và kiến thức về phát triển thư viện flutter, khả năng
xử lý và giải quyết vấn đề, networking, …
Trang 19CHƯƠNG 4: ĐÁNH GIÁ, NHẬN XÉT
4.1 Tự đánh giá:
Trong khoảng thời gian thực tập tại Gtel Mobile, em đã tiếp thu được khá nhiều kiến thức, kinh nghiệm thực tế, cũng như là tìm được những đồng đội tuyệt vời
Em đã hoàn thành được mục tiêu của khóa thực tập Bao gồm trang bị các kiến thức về lập trình ứng dụng di động và việc xây dựng thư viện cũng như server, hiểu được quy trình làm việc của dự án nói riêng và công ty nói chung Bên cạnh đó, cũng nâng cao được các kỹ năng mềm như làm việc nhóm, kỹ năng giao tiếp, quản lý thời gian, thích nghi với môi trường thực tế
và môi trường công ty
Em đã cân bằng được việc học trên trường cũng như quá trình thực tập được diễn ra khá thành công, nhận được đánh giá khá tốt và em cũng cảm thấy hài lòng với những gì mình đạt được
4.2 Mô tả hoạch định tương lai dựa trên kết quả thực tập:
Sau khi kết thúc quá trình thực tập, em cảm nhận được mình khá hợp với vị trí Mobile App Developer Vậy nên, em sẽ tiếp tục theo đuổi con đường này, bằng cách cống hiến mình với nghề, không ngừng học hỏi và phát triển chuyên môn cũng như xây dựng sản phẩm cá nhân
Em mong muốn xây dựng một sự nghiệp đầy triển vọng trong lĩnh vực phát triển ứng dụng di động và không ngừng đóng góp vào sự phát triển của ngành công nghiệp này