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 vào công ty TNHH thi
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
Back-End Developer Intern
Công ty thực tập: Công Ty TNHH thiết kế
trải nghiệm 4T Người phụ trách: Trần Xuân Tú
Thực tập sinh: Nguyễn Quốc Trung
Trang 2TP Hồ Chí Minh, tháng 12 năm 2023
LỜ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ông nghệ phần mềm nói riêng luôn là nhân tố đóng vai trò quan trọng trong quá trình phát triển của
xã hội
Công nghệ thông tin, như một lá cờ dẫn đường cho sự tiến bộ, đã vươn mình ra khắp mọi khía cạnh của cuộc sống Nó không chỉ là một công cụ, mà còn là nguồn năng lượng làm thay đổi cả thế giới Trong thế giới ngày nay, nơi mà mọi khía cạnh của cuộc sống liên kết chặt chẽ với các ứng dụng và hệ thống kỹ thuật số, back-end developer trở thành những nhà kiến trúc chìa khóa của không gian này
Back-end developers, như những kỹ sư xây dựng nền tảng vững chắc đằng sau mỗi ứng dụng và trang web, đảm bảo rằng những công nghệ đằng sau bức màn số hoá không chỉ hoạt động mạnh mẽ mà còn linh hoạt và bền vững Với sự chuyên sâu trong việc xây dựng
và duy trì hệ thống, back-end developers không chỉ là những người làm nghề, mà còn là những người điều hành đằng sau sự mượt mà của mỗi trải nghiệm số Để thử thách bản thân trong ngành công nghệ phần mềm, em đã lựa chọn back-end developer là định hướng cho việc học cũng như nghề nghiệp trong tươ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ế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 vào công ty TNHH thiết kế trải nghiệm 4T và bắt đầu startup dự án cùng mọi người trong team, một môi trường lý tưởng và chuyên nghiệp để học tập và thực hiện những dự định tương lai
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn anh Lê Ngọc đã giới thiệu em và tạo điều kiện cho em có cơ hội được thực tập tại công ty và anh Trần Xuân Tú đã hướng dẫn em trong thời gian thực tập Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Tú và mọi người trong team, em đã tiếp thu những kiến thức quan trọng để có thể tham gia một dự án thực tế Chân thành cảm ơn Tú, các anh chị trong team dev và team design đã 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 30 tháng 12 năm 2023
Nguyễn Quốc Trung
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
LỜI MỞ ĐẦU
LỜI CẢM ƠN
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty TNHH thiết kế trải nghiệm 4T
1.3 Lịch làm việc khi thực tập tại công ty
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
2.2 Nghiên cứu kỹ thuật
2.2.1 Tuần 1
2.2.2 Tuần 2
2.3 Tham gia thực hiện dự án
2.3.1 Mô tả dự án
2.3.2 Công nghệ sử dụng
2.3.2.1 Git
2.3.2.2 Notion
2.3.2.3 NodeJS, MongoDB, PostgreSQL
2.3.2.4 ReactJs
2.3.2.5 SocketIO
2.3.2.6 WebRTC
2.3.3 Kết quả
CHƯƠNG 3: TỔNG KẾT
3.1 Điểm mạnh
3.2 Điểm yếu
Trang 63.3 Chuẩn đạt được
TÀI LIỆU THAM KHẢO
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty TNHH thiết kế trải nghiệm 4T
Công ty được lãnh đạo bởi anh Trần Xuân Tú, ban đầu là một công ty chuyên về thiết kế và
tư vấn kiến trúc Bắt đầu từ tháng 6 năm 2023 công ty bắt đầu mở rộng và startup dự án về Công nghệ thông tin Vì đang trong giai đoạn startup nên công ty đang tập trung vào việc xây dựng đội ngũ thành viên, cách thức vận hành và cùng nhau xây dựng môi trường làm việc bao gồm những người giỏi đã có kinh nghiệm lâu năm làm việc với IT và cả những người mới bắt đầu thực tập và đi làm Cùng nhau làm việc, hỗ trợ lẫn nhau để công ty được startup thành công
1.2 Sản phẩm công ty
Sản phẩm mà công ty thực hiện đó là một ứng dụng mang tên Heazin chạy trên thiết bị di động của người dùng Tổng quan thì nó là một ứng dụng cho phép người dùng đặt, bán thuốc và giao hàng nhanh chóng đến cho người đặt Người dùng sẽ được chia làm hai loại, một là các nhà thuốc lớn nhỏ sẽ được phép đăng ký sử dụng ứng dụng để bán thuốc trực tuyến qua ứng dụng, hai sẽ là người dùng bình thường có nhu cầu mua thuốc sẽ được tư vấn, đặt mua thuốc trực tuyến qua ứng dụng, và thuốc sẽ được giao đến cho khách hàng nhanh nhất có thể thông qua bên giao hàng thứ ba đó là Ahamove
1.3 Lịch làm việc khi thực tập tại công ty
Vị trí thực tập: Back-end intern
Thời gian thực tập: Bắt đầu từ tháng 6 năm 2023 tới tháng 11 năm 2023
Khung giờ làm việc: Từ thứ 2 đến thứ 6, 40 giờ/tuần (sáng từ 9h đến 12h, chiều từ 13h đến 18h)
Hình thức làm việc: Làm việc tại nhà hoặc lên Công ty theo yêu cầu của Công ty
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, đặt mục tiêu cho ngày làm việc tiếp theo Mỗi tuần sẽ họp tiến độ tuần hai lần vào tối thứ hai cho team dev và tối thứ ba cho tất cả mọi người, 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
Trang 8CHƯƠ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: 2 ngày
Nội dung: Được nghe anh leader giới thiệu về công ty, vị trí chức vụ của mọi người trong team, quá trình thành lập và phát triển,… Ngoài ra, giới thiệu về văn hóa làm việc trong công
ty như thời gian làm việc, các quy định, cách sử dụng email, notion trong công việc, … Kết quả: Hiểu thêm về công ty và team làm việc của mình, 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, notion trong công việc, làm việc có kế hoạch, có
kỷ luật, có trách nhiệm hơn
2.2 Nghiên cứu kỹ thuật
2.2.1 Tuần 1
Nội dung:
● Nghe giới thiệu về cách thức hoạt động của ứng dụng team thực hiện
● Học cách sử dụng Notion để báo cáo, và cách sử dụng Git hợp lý
● Tìm hiểu technical stack mà team sẽ sử dụng
Kết quả:
● Nắm rõ và hiểu được toàn bộ cách thức hoạt động của ứng dụng
● Biết cách sử dụng Notion để viết báo cáo hàng ngày và sử dụng Git một cách hợp lý
● Hiểu và biết được toàn bộ các technical mà team sẽ sử dụng
2.2.2 Tuần 2
Nội dung: Tìm opensource và sử dụng nó để dựng source base
Kết quả: Tạo dựng source base thành công
2.3 Tham gia thực hiện dự án
2.3.1 Mô tả dự án
● Thời gian thực hiện dự án: Bắt đầu từ tháng 6 năm 2023
● Dự án mà công ty thực hiện đó là một ứng dụng mang tên Heazin chạy trên thiết bị
di động của người dùng và web admin cho người quản lý Tổng quan thì nó là một ứng dụng cho phép người dùng đặt, bán thuốc và giao hàng nhanh chóng đến cho người đặt Người dùng sẽ được chia làm hai loại, một là các nhà thuốc lớn nhỏ sẽ được phép đăng ký sử dụng ứng dụng để bán hàng thuốc trực tuyến, hai sẽ là người
Trang 9dùng bình thường sẽ có nhu cầu mua thuốc trực tuyến qua app, và thuốc sẽ được ship đến cho khách hàng thông qua bên giao hàng thứ ba đó là Ahamove
● Công việc được giao: Xây dựng chat-app microservice cho ứng dụng
2.3.2 Công nghệ sử dụng
2.3.2.1 Git
- Thời gian: Xuyên suốt quá trình phát triển của dự án
- Nội dung: Sử dụng Git để quản lý phiên bản code, cải thiện hiệu quả làm việc nhóm
và theo dõi tiến độ dự án
- Thực hiện: Học cách sử dụng các lệnh cơ bản của Git như commit, push, pull, branch
và merge
- Kết quả: Nâng cao kỹ năng quản lý phiên bản và hiểu biết về công cụ quản lý mã nguồn mạnh mẽ này, hỗ trợ làm việc nhóm một cách hiệu quả
2.3.2.2 Notion
- Thời gian: Xuyên suốt quá trình phát triển của dự án
- Nội dung: Sử dụng xem task hàng ngày được giao và viết báo cáo vào cuối ngày
- Thực hiện: Hàng ngày xem task cần thực hiện, viết báo cáo và cập nhật tình trạng của task vào cuối ngày
- Kết quả: Biết cách quản lý task và tiến độ làm việc
2.3.2.3 NodeJS, MongoDB, PostgreSQL
- Thời gian: Xuyên suốt quá trình phát triển của dự án
- Nội dung:
o Sử dụng NodeJS để tạo ra chat-app microservice cho ứng dụng, cung cấp API,
và xử lý các yêu cầu từ client
o Áp dụng MongoDB và PostgreSQL, sử dụng PostgreSQL làm database chính lưu trữ tất cả và MongoDB để lưu trữ tin nhắn trong ngày,
- Thực hiện:
o Cài đặt và cấu hình môi trường NodeJS, MongoDB và PostgreSQL
o Học cách thiết kế và xây dựng RESTful API sử dụng NodeJS
o Sử dụng PostgreSQL để tạo, lưu trữ, truy vấn và cập nhật dữ liệu từ server
o Sử dụng MongoDB để tạo, lưu trữ, truy vấn và cập nhật dữ liệu trong ngày
o Tích hợp MongoDB, PostgreSQL với NodeJS để xây dựng một backend hoàn chỉnh, có thể xử lý và lưu trữ dữ liệu từ client
- Kết quả:
o Phát triển được kiến thức và kỹ năng sâu rộng về việc xây dựng và quản lý backend cho ứng dụng web
o Thành thạo trong việc sử dụng NodeJS cùng với MongoDB và PostgreSQL để tạo ra microservice có khả năng mở rộng cao và có hiệu suất tốt
Trang 102.3.2.4 ReactJs
- Thời gian: Sau khi tạo dựng xong server chat-app microservice
- Nội dung: Dựa vào UI trên figma xây dựng front-end chat-app cho mobile app và front-end chat-app cho web admin
- Thực hiện: Học cách sử dụng reactjs
- Kết quả: Học được cách sử dụng reactjs và tạo được front-end chat-app microservice
cho mobile app và front-end chat-app web admin
2.3.2.5 SocketIO
- Thời gian: Xuyên suốt quá trình phát triển backend của dự án
- Nội dung: Công cụ chính để tạo chat-app microservice
- Thực hiện:
o Học cách tích hợp SocketIO vào NodeJS và ReactJs
o Phát triển các chức năng như chat trực tuyến, thông báo thời gian thực
- Kết quả: Đáp ứng việc trao đổi thông tin theo thời gian thực và cách áp dụng nó vào thực tế
2.3.2.6 WebRTC
- Thời gian: Xuyên suốt quá trình phát triển của dự án
- Nội dung: Xây dựng chức năng call và video call cho ứng dụng
- Thực hiện:
o Học cách tích hợp WebRTC vào NodeJS và ReactJs
o Phát triển các chức năng gọi trực tuyến
- Kết quả: Đáp ứng việc trao đổi thông tin theo thời gian thực và cách áp dụng nó vào thực tế
2.3.3 Kết quả
- Tạo dựng được chat-app microservice cho phép nhắn tin, gọi, gọi video trao đổi thông tin theo thời gian thực giữa người dùng với người dùng và người dùng với admin
Trang 11CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại công ty đã 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ý notion, làm việc nhóm, giao tiếp với cấp trên,…
Chỉ trong thời gian hạn chế, em đã hoà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
Về kiến thức công nghệ:
Kỹ năng lập trình và phát triển phần mềm đã tiến bộ rõ rệt
Biết sử dụng Github một cách hợp lý và có quy trình
o Biết sử dụng Notion để quản lý task và thời gian thực hiện một cách hợp lý
o Biết cách viết tài liệu để cho bản thân, mọi người tham khảo sau này
- Về kỹ năng mềm:
o Tăng cường kỹ năng làm việc nhóm và giao tiếp với cấp trên một cách tự tin
o Biết cách quản lý thời gian hợp lý để hoàn thành task
o Biết cách thảo luận, làm rõ vấn đề với PM/QC trước khi bắt tay vào thực hiện task
o Khả năng tự tìm hiểu, tự giải quyết vấn đề
o Khả năng ngoại ngữ
3.2 Điểm yếu
- Còn nhiều kiến thức, kĩ năng lập trình cần phải học hỏi
- Trình độ tiếng Anh chuyên ngành cần được cải thiện để hỗ trợ giao tiếp và hiểu biết
Trang 12tài liệu kỹ thuật tốt hơn.
- Kỹ năng phản biện và đưa ra ý kiến cá nhân trong các cuộc họp cần được mạnh dạn hơn
3.3 Chuẩn đạt được
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
Trang 13TÀI LIỆU THAM KHẢO
1 Notion Link: https://www.notion.so/
2 Doc NodeJs Link: https://nodejs.org/docs/latest/api/
3 MongoDB Link: https://www.mongodb.com/
4 PostgreSQL Link: https://www.postgresql.org/
5 Doc ReactJs Link: https://react.dev/learn
6 Doc SocketIO Link: https://socket.io/docs/v4/
7 Doc WebRTC Link: https://webrtc.org/getting-started/overview