Tải bản đầy đủ (.pdf) (16 trang)

Báo cáo môn thực tập tốt nghiệp (se501 n21 pmcl)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (565.69 KB, 16 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP
MÔN: THỰC TẬP TỐT NGHIỆP
(SE501.N21.PMCL)

Giảng viên hướng dẫn:
THS. HUỲNH HỒ THỊ MỘNG TRINH
Họ và tên sinh viên:
NGUYỄN TRÍ MINH - 19521847

Thành phố Hồ Chí Minh, 07/2023


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
FRONT-END WEB DEVELOPER

Công ty thực tập:

Công ty TNHH Giải
pháp Phần mềm Tường
Minh (TMA Solutions)

Người phụ trách:

Hứa Bảo Kim Ngân


Nguyễn Trường Sơn

Thực tập sinh:

Nguyễn Trí Minh

TP. Hồ Chí Minh, tháng 07 năm 2023
1


LỜI MỞ ĐẦU

Công nghệ web luôn mang lại nhiều lợi ích quan trọng trong nhiều năm qua cho cuộc sống của
chúng ta, và đến tận ngày nay - trong xã hội 4.0 và tồn cầu hố nó vẫn ln là cốt lõi trong
cuộc sống hằng ngày. Thật vậy, công nghệ web cho phép chúng ta kết nối và truy cập thơng
tin trên tồn cầu một cách dễ dàng và nhanh chóng. Nó cịn giúp tạo nhiều điều kiện thuận lợi
cho việc kinh doanh và giao tiếp, mở ra nhiều cơ hội việc làm trong các lĩnh vực khác nhau.
Chính vì thế, lĩnh vực phát triển web không bao giờ mất đi vai trị quan trọng của nó, cũng như
ln phải được cập nhật và phát triển liên tục. Phát triển web bao gồm việc sử dụng các kỹ
năng và công nghệ để tạo ra các trang web hay ứng dụng web. Đặc biệt phát triển front-end
web đóng vai trị rất quan trọng trong việc xử lý các yêu cầu và cung cấp trải nghiệm tốt cho
người dùng. Phát triển front-end web khơng chỉ địi hỏi kiến thức về HTML, CSS và JavaScript
mà cịn rất nhiều cơng nghệ, kiến thức lập trình khác để tạo ra giao diện đẹp và có tính tương
tác tốt. Nó giúp cải thiện trải nghiệm người dùng, tạo ra các trang web thân thiện, xử lý u
cầu chính xác, dễ sử dụng và thú vị. Ngồi ra, lĩnh vực này cũng cung cấp nhiều cơ hội việc
làm và có tiềm năng phát triển lớn trong ngành kỹ thuật phần mềm. Chính vì vậy, em đã chọn
lĩnh vực này để học hỏi và phát triển bản thân để trở thành một front-end web developer, và xa
hơn nữa là một fullstack web developer khi những kiến thức về công nghệ mới được tiếp thu
và những kỹ năng nền tảng được trau dồi một cách vững chắc hơn.
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 và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia thực tập tại
công ty TNHH Giải pháp Phần mềm Tường Minh (TMA Solutions) - một môi trường lý tưởng
và chuyên nghiệp để thực hiện dự định của bản thân.

2


LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn tới Bộ phận Thực tập (Industry Internship) tại công ty TNHH
Giải pháp Phần mềm Tường Minh (TMA Solutions) đã tạo điều kiện cho em có cơ hội được
thực tập tại công ty. Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Nguyễn
Trường Sơn (project manager) và chị Hứa Bảo Kim Ngân (mentor), em đã được học hỏi, tiếp
thu những kiến thức quan trọng và có nhiều trải nghiệm khi tham gia một dự án thực tế.
Chân thành cảm ơn anh Sơn, chị Ngân và các anh chị, các bạn trong team dự án đã bỏ ra nhiều
thời gian, công sức để hướng dẫn, giúp đỡ em tận tình trong khi làm quen mơi trường mớ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ư duy sả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 04 tháng 07 năm 2023

Nguyễn Trí Minh

3


NHẬN XÉT CỦA KHOA
...................................................................................................................................................

...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................

...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................

4


MỤC LỤC
LỜI MỞ ĐẦU ............................................................................................................................ 2
LỜI CẢM ƠN ............................................................................................................................ 3
NHẬN XÉT CỦA KHOA ......................................................................................................... 4
MỤC LỤC ................................................................................................................................. 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ................................................................ 6
1.1. Giới thiệu ........................................................................................................................ 6
1.2. Giải pháp, dịch vụ và sản phẩm của công ty................................................................... 8
1.3. Lịch làm việc khi thực tập tại công ty............................................................................. 8
CHƯƠNG 2: NỘI DUNG THỰC TẬP ..................................................................................... 9
2.2. Nghiên cứu kỹ thuật ........................................................................................................ 9
2.2.1. Tuần 1 ...................................................................................................................... 9
2.2.2. Tuần 2 .................................................................................................................... 10
2.3. Thực hiện dự án cá nhân ............................................................................................... 10
2.3.1. Công nghệ .............................................................................................................. 10

2.3.3. Kết quả ................................................................................................................... 11
2.4. Tham gia dự án thực tế ................................................................................................. 11
2.4.1. Nội dung, tình hình dự án khi tham gia ................................................................. 11
2.4.2. Những khó khăn gặp phải ...................................................................................... 12
2.4.3. Kết quả đạt được .................................................................................................... 12
CHƯƠNG 3: TỔNG KẾT ....................................................................................................... 13
3.1. Điểm mạnh .................................................................................................................... 13
3.2. Điểm yếu ....................................................................................................................... 13
3.3. Chuẩn đạt được ............................................................................................................. 13
TÀI LIỆU THAM KHẢO ....................................................................................................... 15

5


CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP

1.1. Giới thiệu

Hình 1.1. Logo TMA Solutions
TMA Solutions là một công ty hàng đầu về outsourcing phần mềm tại Việt Nam.
TMA Solutions được thành lập vào năm 1997 nhằm cung cấp dịch vụ outsourcing phần mềm
chất lượng cho các công ty hàng đầu trên tồn thế giới. TMA là một trong những cơng ty
outsourcing phần mềm lớn nhất tại Việt Nam với 4.000 kỹ sư. Đội ngũ kỹ sư của TMA được
chọn lọc từ nhiều nguồn lực IT lớn ở Việt Nam và đã được đào tạo tốt cũng như đã hoàn
thành thành công nhiều dự án lớn và phức tạp.
TMA Solutions gồm nhiều bộ phận, trung tâm (center) phát triển đa dạng các lĩnh vực như:
1. Telecom Software
2. IoT
3. Data Solution
4. Automotive Software

5. Fintech
6. Hardware
7. AI
8. Robotics Software
9. Healthtech
10. 5G
- Địa chỉ:
+ Văn phịng chính (Lab 1): 111 Nguyễn Đình Chính, Phường 15, Quận Phú Nhuận, Tp.
Hồ Chí Minh

6


+ Văn phòng 3 (Lab 3): 10 Đặng Văn Ngữ, Phường 10, Quận Phú Nhuận, Tp. Hồ Chí
Minh
+ Văn phịng 4 (Lab 4): 84A/5 Trần Hữu Trang, Phường 10, Quận Phú Nhuận, Tp. Hồ
Chí Minh
+ Văn phịng 5 (Lab 5): Anna Building, Lô 1 - Đường Trung tâm, Công viên Phần mềm
Quang Trung, Phường Tân Chánh Hiệp, Quận 12, Tp. Hồ Chí Minh
+ Văn phịng 6 (Lab 6): Tồ nhà TMA, Lô 17 - Đường số 10, Công viên Phần mềm
Quang Trung, Phường Tân Chánh Hiệp, Quận 12, Tp. Hồ Chí Minh
+ Cơng viên Sáng tạo TMA (Lab 8): Đại lộ Khoa học, Ghềnh Ráng, Quy Nhơn, Bình
Định
Quy mơ về số lượng kỹ sư qua các năm:

- Website:
- Email: (Internship department)
- Điện thoại: 028 3997 8000 | ext: 5615 - 02838912532 (Internship Department)
CEO/Chairman:
- Delivery & Technology

- Business & Innovation
- CDF
- Finance/ Legal
- TMA Overseas
- QMS/PMO
- HR & Admin
7


1.2. Giải pháp, dịch vụ và sản phẩm của công ty
Công ty cung cấp nhiều giải pháp và dịch vụ, điển hình như:








Phát triển phần mềm:
− Phát triển sản phẩm mới
− Tối ưu sản phẩm đã có
− Bảo trì, hỗ trợ
− Chuyển đổi, di dời
− Thiết kế lại hệ thống
Kiểm thử phần mềm
− Kiểm thử chức năng
− Kiểm thử hệ thống, khả năng tích hợp
− Kiểm thử hiệu năng
− Kiểm thử bảo mật

Các giải pháp cải tiến:
− R&D
− PoC & prototype
− Roadmap về công nghệ
− Đưa ra giải pháp về kỹ thuật
Chuyển đổi số:
− Online hoá
− Mobile hoá
− Tự động hố
− Cloud hố

Sản phẩm trên nhiều lĩnh vực:







Telecom
Healthtech
Logistics & Transportation
Fintech
E-Commerce, Retail & Distribution
Automotive

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 03/04/2023 tới 07/07/2023, các ngày làm
việc trong tuần là thứ 2, thứ 4, thứ 5, thứ 6 (part-time). Công việc hằng ngày bắt đầu từ lúc 8
giờ 30 phút đến 18 giờ. Thời gian nghỉ trưa khoảng 1 tiếng. Buổi chiều sẽ bắt đầu làm việc vào

lúc 13 giờ 30. 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ừ chị Ngân - mentor của em cũng như đặt mục tiêu cho ngày làm
việc tiếp theo. Mỗi tuần sẽ họp tiến độ dự án 3 lần vào sáng thứ 2, 4, 6. 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ài học, giải pháp và mục tiêu cho tuần tiếp
theo. Anh Sơn là người quản lý dự án chính và cập nhật những thơng tin về tình hình của dự
án cho mọi người. Tồn bộ quy trình làm việc đều sử dụng Tiếng Anh là chủ yếu.
8


CHƯƠNG 2: NỘI DUNG THỰC TẬP
Tổng thời gian: Khoảng 1 tuần
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, q trình thành lập và phát triể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ác phịng ban về IT, HR, … Ngồi ra, thực tậ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, … Bên cạnh đó em cịn được train về các nội dung kỹ năng mềm cũng như kỹ
thuật chuyên môn khi đi làm do những anh, chị có kinh nghiệm giảng dạy. Các khố học ngắn
mà em được train là:






Agile Development Process
Security Awareness
Communication Skills
Email Writing guidelines
Work Etiquette and Teamwork


Kết quả: Hiểu thêm về văn hố làm việc tại cơng ty, q 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 và các kỹ năng mềm khác như làm việc
nhóm, giao tiếp, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn. Ngồi ra em cịn được
học thêm về các quy trình phát triển phần mềm và bảo mật tại công ty.

2.2. Nghiên cứu kỹ thuật
2.2.1. Tuần 1
Nội dung: Học và ôn tập các kiến thức liên quan theo Training Plan

Kết quả: Ôn tập kiến thức cũ và học được những kiến thức mới về Front-end như RESTful
API, HTTP/HTTPS, bảo mật, authorization, authentication,...
9


2.2.2. Tuần 2
Nội dung: Học và ôn tập các kiến thức liên quan theo Training Plan

Kết quả: Ôn tập kiến thức cũ và học được những kiến thức mới và quan trọng về React JS như
Routing, HTTP request, Hook, Axios, Redux,…
2.3. Thực hiện dự án cá nhân
Trong 2 tuần kế tiếp, em được mentor giao cho 1 task cá nhân về việc xây dựng 1 ứng dụng
web cho phép người dùng tạo và quản lý ghi chú. Ban đầu, mentor không yêu cầu em thực
hiện phần back-end, chỉ cần chú trọng vào front-end, tuy nhiên em đã nỗ lực tìm tịi, học hỏi
và tự làm cả phần back-end để có thể hiểu rõ hơn.
2.3.1. Cơng nghệ
Về Back-end:


Node.js và Express.js để xây dựng API




MySQL là database, remote sử dụng CleverCloud



Deploy sử dụng Cyclic



Mã hố, tạo và xác thực token sử dụng JSON Web Token. Nhờ vậy, mật khẩu của
người dùng trên database được mã hoá; session đăng nhập cũng được quản lý



API được cấu trúc theo mơ hình Service - Controller - Router:



Service: Xử lý kết nối trực tiếp với database



Controller: Quản lý các phương thức khi request API



Router: Quản lý các API endpoint

Về Front-end:



React, HTML và CSS để xây dựng UI

10




Các thư viện CSS: Bootstrap và React Bootstrap



Deploy sử dụng Vercel



Ứng dụng được cấu trúc theo mơ hình Model - Controller - View (MVC):



Model: Xử lý request trực tiếp tới API endpoint



Controller: Quản lý các phương thức được gọi từ các component UI



View: Quản lý các component UI. Ứng dụng được chia thành nhiều component để có

thể tái sử dụng



Lưu trữ trạng thái sử dụng Redux và Redux Thunk. Hệ thống Redux được cấu trúc
theo mơ hình Reducer - Container - Actions. Một vài trạng thái như xác thực người
dùng thông qua token cho thấy sự hiệu quả khi triển khai với Redux

2.3.2. Mô tả dự án
Ứng dụng chỉ đơn giản là giúp người dùng tạo và quản lý các ghi chú của mình với các
chức năng cơ bản. Các use-case của người dùng:








Tạo tài khoản mới
Đăng nhập
Tạo ghi chú mới
Tìm ghi chú theo tên
Xem nội dung ghi chú
Chỉnh sửa và xoá ghi chú
Đăng xuất (người dùng sẽ bị tự động đăng xuất khi phiên đăng nhập hết hạn)

2.3.3. Kết quả






Các chức năng đều hoạt động chính xác, đúng như yêu cầu
Mentor đánh giá đạt yêu cầu
Repo GitHub: />Link ứng dụng (đã được deploy): />
2.4. Tham gia dự án thực tế
Theo như quy định của công ty, các dự án thực tế đều phải được bảo mật, do vậy em khơng thể
cung cấp những hình ảnh và tài ngun về dự án mà chỉ có thể đưa ra những nội dung sơ lược,
khách quan nhất có thể.
2.4.1. Nội dung, tình hình dự án khi tham gia


Dự án có nội dung về một ứng dụng web cho phép doanh nghiệp tái sử dụng và quản
lý các hợp đồng của mình. Flow chính của ứng dụng là: admin tải lên 1 file hợp đồng,
admin có thể chỉnh sửa file trực tiếp trên editor của ứng dụng và thiết lập các trường
cho phép người dùng được điền theo form và lưu lại. Sau này, những người dùng có
nhu cầu sử dụng template đó chỉ cần điền theo form các nội dung cần thay đổi, sau đó
họ sẽ có 1 bản hợp đồng hồn chỉnh, có thể lưu về nhiều định dạng hoặc mang đi in
ấn. Ví dụ 1 template hợp đồng có các trường như địa chỉ, họ và tên, giới tính,… theo
sau đó là nơi nhập nội dung (được đánh dấu như ……….), thông thường người dùng
11




phải sửa thủ công, tuy nhiên nhờ vào template của admin sau khi đã thiết lập các
trường đó thì người dùng chỉ cần điền vào form các mục địa chỉ, họ và tên, giới
tính,… thì tự động ứng dụng sẽ thay thế các mục trống cần điền có dạng ……….
thành nội dung cụ thể. Ưu điểm của việc này là template đó có thể tái sử dụng cho

nhiều trường hợp cũng như rất tiện lợi và nhanh chóng.
Đây là dự án đã và đang phát triển, do thiếu nhân lực mảng Front-end nên vào thời
điểm tham gia, em đã hỗ trợ dưới vai trò là front-end developer cho dự án. Front-end
developer trước của dự án khơng cịn làm nữa nên em phải kế thừa và thực hiện tiếp
quy trình phát triển của dự án cho đến cuối giai đoạn thực tập.

2.4.2. Những khó khăn gặp phải





Do phải kế thừa lại toàn bộ source code cũ của dự án, em phải mất nhiều thời gian đề
tìm tịi, nghiên cứu cũng như nhờ sự hỗ trợ của người phát triển trước để hiểu rõ về
kiến trúc phần mềm của dự án, các cách triển khai tiếp theo cũng như thích ứng với
các công nghệ mới được sử dụng
Một vài công nghệ mới và yêu cầu khi làm việc của công ty trong quy trình phát triển
trong lần đầu tiếp xúc cũng gây cho em nhiều khó khăn để thích ứng và học hỏi
Một vài yêu cầu về chức năng của dự án là khá phức tạp do ứng dụng chạy trên nền
web nên cũng gặp nhiều hạn chế. Em phải đưa ra nhiều giải pháp để có thể giải quyết
được một vài khó khăn tồn động, cũng như đưa ra hướng phát triển tiếp theo sau khi
bàn bạc với team và mentor

2.4.3. Kết quả đạt được




Tính đến thời điểm hiện tại, một vài chức năng chính và quan trọng của dự án đã có
thể hoạt động ở mức ổn. Tuy cịn nhiều lỗi tồn động và hệ thống chưa được tối ưu tốt

nhưng với một vài yêu cầu cơ bản được đưa ra, hệ thống đều có thể đảm nhận được
Em được học hỏi thêm về cấu trúc dự án từ người phát triển trước do em kế thừa lại
quy trình phát triển dang dở. Ngồi ra, em cịn được học thêm nhiều cơng nghệ mới,
quy trình phát triển phần mềm trong cơng ty và cải thiện kỹ năng lập trình

12


CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại TMA Solutions đã giúp em cải thiện bản thân rất nhiều trong quy
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 mail, quản lý ticket, làm việc nhóm, giao tiếp với cấp trên
cũng như được rèn luyện về các kỹ năng chuyên môn của mình.
Chỉ trong thời gian hạn chế, em đã hồn thành dự án cá nhân trong quá trình training vớ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à đạt chất lượng
tốt.

3.1. Điểm mạnh
Trong q trình thực tập tại cơng ty, em nhận ra mình có những điểm mạnh sau:







Tự tin giao tiếp, làm việc với Tiếng Anh ở mức tốt và nâng cao
Hoà hợp với team làm việc, đưa ra đề xuất giúp cải thiện dự án và được đồng tình
Làm việc độc lập tốt, khả năng tự research tốt

Khả năng học hỏi cơng nghệ mới và thích ứng nhanh
Hỗ trợ đồng nghiệp tốt
Hoàn thiện yêu cầu được đưa ra

3.2. Điểm yếu
Trong q trình thực tập tại cơng ty, em nhận ra mình có những điểm yếu sau:





Chưa nắm bắt tốt hồn tồn quy trình làm việc tại cơng ty
Khả năng thống nhất giải pháp chưa tốt, tốn nhiều thời gian tìm nhiều giải pháp không
hợp lý
Quản lý thời gian làm việc chưa hợp lý
Khả năng nhờ giúp đỡ về chuyên môn chưa được thực hiện thường xuyên

3.3. Chuẩn đạt được
Em tự đánh giá mục tiêu đạt được của môn học như sau:







Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp (G1): 8/10
Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự án
(G2): 9/10
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 (G3): 9/10
Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết vấn đề (G4):
9/10
Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày (G5): 9/10
Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh (G6): 10/10

13


Goal Mục tiêu môn học
G1

Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp

G2

Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự
án

G3

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

G4

Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết vấn đề

G5


Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày

G6

Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh

14


TÀI LIỆU THAM KHẢO
1. Anthony Accomazzo, Nate Murray, Ari Lerner, Clay Allsopp, David Guttman, Tyler
McGinnis (2023). Fullstack React.
2. Alex Bank (2023). Learning React: Functional Web Development with React and Redux.
3. />
15



×