Với mong muốn áp dụng những kiến thức đã học vào thực tiễn và trải nghiệm môi trường làm việc chuyên nghiệp, em đã quyết định tham gia vào Công ty TNHH SOLUTIONS WORLD – một môi trường m
Trang 1ĐẠI HỌC QUỐC GIA TP 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 LẬP TRÌNH VIÊN FLUTTER
Công ty thực tập: CÔNG TY TNHH SOLUTIONS WORLD Người phụ trách: Trần Công Thiên
Giảng viên hướng dẫn: Nguyễn Công Hoan
Em: Lê Minh Quân – MSSV: 20520708
Trang 2Chính vì thế, em đã lựa chọn Flutter là công cụ chính trong hành trình phát triển sự nghiệp của mình Flutter không chỉ là một ngôn ngữ lập trình, mà còn là một phương tiện để em thể hiện sự sáng tạo trong việc phát triển các ứng dụng đẹp mắt và hiệu quả trên nhiều nền tảng
Trong suốt quá trình học tại đại học, em đã không ngừng học hỏi và thực hành với Flutter, nhằm xây dựng một nền tảng vững chắc cho tương lai nghề nghiệp của mình Với mong muốn áp dụng những kiến thức đã học vào thực tiễn và trải nghiệm môi trường làm việc chuyên nghiệp, em đã quyết định tham gia vào Công ty TNHH SOLUTIONS WORLD – một môi trường mà em tin rằng sẽ giúp em hoàn thiện kỹ năng và nâng cao trình độ của mình trong vai trò một lập trình viên Flutter
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời biết ơn sâu sắc đến Quý Công ty vì đã tin tưởng và mở cánh cửa cho em có cơ hội thực tập Dù chỉ trong một khoảng thời gian ngắn, sự hướng dẫn tận tâm của anh Trần Công Thiên – Lead team Flutter đã giúp em học hỏi được nhiều kiến thức thiết yếu, qua đó em có thể góp sức vào các dự án thực tế
Em cũng muốn bày tỏ lòng cảm kích đặc biệt đến các anh team Backend cùng toàn thể các anh chị trong team Design, những người đã dành nhiều thời gian và công sức để hỗ trợ em Sự giúp đỡ và hướng dẫn nhiệt tình của họ đã giúp em nhanh chóng thích nghi với môi trường mới, tiếp cận kiến thức công nghệ, kỹ năng lập trình, và tư duy về sản phẩm, từ đó giúp em hoàn thành tốt các dự án cá nhân và dự án thực tế trong thời gian qua
Cuối cùng, em cũng không quên gửi lời cảm ơn chân thành tới các thầy cô trong khoa Công nghệ phần mềm, thầy Nguyễn Công Hoan, những người đã luôn nhiệt tình hỗ trợ
và tạo mọi điều kiện thuận lợi để em hoàn thành báo cáo này
Thành phố Hồ Chí Minh, 19 tháng 12 năm 2023
Lê Minh Quân
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
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 về công ty: 6
1.2 Sản phẩm công ty 7
1.3 Lịch làm việc khi thực tập tại công ty 7
CHƯƠNG 2: NỘI DUNG THỰC TẬP 9
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty: 9
2.2 Nghiên cứu kỹ thuật 9
2.2.1 Tuần 1: 9
2.2.2 Tuần 2: 11
2.3 Tham gia dự án thực tế 12
2.3.1 Mô tả tổng thể: 12
2.3.2 Quá trình thực hiện: 13
2.3.3 Kết quả: 19
CHƯƠNG 3: TỔNG KẾT 20
3.1 Điểm mạnh 20
3.2 Điểm yếu 20
3.3 Chuẩn đạt được 20
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu về công ty:
Hình 1.1 Logo công ty
Bảng 1 1 Tổng quan thông tin về công ty
Trang 71.2 Sản phẩm công ty
- SOLUTIONS WORLD (SSW) là một công ty chuyên cung cấp các giải pháp công nghệ, bao gồm:
+ Giải pháp công nghệ: hiểu được khó khăn và thách thức của khách hàng, đưa
ra những giải pháp phù hợp, tối ưu và hiệu quả
+ Xây dựng và phát triển Web, App, Software: xây dựng và phát triển website (WEB), ứng dụng di động (APP), phần mềm (SOFTWARE) theo đặc thù của mỗi khách hàng - doanh nghiệp
+ Hệ thống quản lý Doanh nghiệp: hệ thống quản lý khách hàng, quản lý sản phẩm - dịch vụ, quản lý kho bãi, quản lý vận chuyển, quản lý doanh nghiệp
Đã có nhiều kinh nghiệm phát triển các phần mềm chất lượng cao, phục vụ nhu cầu đặc thù của ngành vận tải và y tế, với các khách hàng tiêu biểu như VANLOG Express, Nasco Express,… Sự vững chắc trong chuyên môn và kinh nghiệm của SSW trong lĩnh vực này làm nổi bật khả năng cung cấp các giải pháp công nghệ hiệu quả và mang lại nhiều giá trị cho khách hàng
1.3 Lịch làm việc khi thực tập tại công ty
- Em bắt đầu công việc tại công ty từ ngày 26/5/2023 đến nay, với lịch làm việc từ Thứ
2 đến Thứ 6 Công việc hàng ngày kéo dài từ 8h00 đến 17h30, kèm theo một khoảng
Trang 8nghỉ trưa 1 tiếng 30 phút Mỗi ngày, em sẽ báo cáo tiến độ công việc thông qua việc viết báo cáo, đặt câu hỏi và nhận hướng dẫn từ anh lead cho công việc của ngày hôm
đó Cuộc họp tiến độ tuần được tổ chức vào sáng thứ 2 hàng tuần, còn sáng thứ 6 tuần đầu mỗi tháng là buổi Seminar về công nghệ xoay quanh về việc lập trình ứng dụng di động nói riêng cũng như các vấn đề công nghệ mới nói chung do thành viên thực tập các team trình bày
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: 2 ngày
- Nội dung: giới thiệu về công ty, cơ cấu tổ chức phòng ban của công ty, cách chấm công, quyền lợi và văn hoá làm việc của công ty
+ Được lắng nghe đại diện ban nhân sự chia sẻ, giới thiệu về công ty, quy trình làm việc, cách thức tổ chức của công ty
+ Giới thiệu vị trí các phòng ban công ty, giới thiệu người hướng dẫn trong suốt quá trình thực tập
+ Được bàn giao những tài liệu quan trọng về các dự án mà mình sẽ tham gia, giúp em chuẩn bị kỹ càng hơn cho những thách thức sắp tới
- Kết quả: đã học được rất nhiều về cách tổ chức và quản lý source code trong công ty, cũng như quy trình làm việc giữa các team Kỹ năng sử dụng email trong công việc cũng được cải thiện, giúp em trở nên chuyên nghiệp và có trách nhiệm hơn trong môi trường làm việc
2.2 Nghiên cứu kỹ thuật
2.2.1 Tuần 1:
Bảng 2.1 Bảng nghiên cứu kỹ thuật (tuần 01)
01 - Làm quen và cài đặt các công cụ cần thiết cho môi
trường làm việc tại công ty
- Cài đặt môi trường làm việc gồm:
• Gitlab: nền tảng quan trọng giúp theo dõi và quản lý quá trình làm việc, dành thời gian để hiểu rõ về giao diện của GitLab, cách xem danh
Hoàn thành tốt công việc được giao
Trang 10sách các công việc đã hoàn thành và những việc cần được sửa chữa hay cập nhật
• SourceTree: công cụ quản lý code thông qua giao diện Em dành nhiều thời gian để nắm vững cách sử dụng các tính năng như quản lý các branches, thực hiện commits và merges, đồng thời hiểu rõ cách thức làm việc hiệu quả với khi kết hợp sử dụng cùng Gitlab
• Postman: công cụ không thể thiếu cho việc tạo
và kiểm tra các API requests, em tiến hành thử nghiệm với việc tạo các requests API khác nhau
và hiểu biết sâu sắc hơn về cách tạo và quản lý các collections
• Flutter: framework chính của team, em cài đặt phiên bản phù hợp với dự án đang sử dụng
- Ngoài ra em cũng cài đặt thêm một số công cụ khác
phục vụ cho công việc: Visual Studio Code, Android
Studio, VPN, Telegram, …
- Tìm hiểu và thực hiện cách viết báo cáo mỗi ngày
- Qua quá trình này, em đã đạt được nhiều kết quả:
+ Gitlab: đã làm quen với việc theo dõi và quản lý hoạt động làm việc hàng ngày,
có thể dễ dàng xem xét và đánh giá tình trạng của các công việc, các phản hồi từ tester, review code của anh chị lead và chung team, từ đó có những điều chỉnh kịp thời
+ SourceTree: đã hoàn thành việc cài đặt và kết nối với GitLab, nắm vững cách thức quản lý code một cách trực quan
+ Postman: cài đặt và cấu hình thành công, Em đã nhanh chóng sử dụng Postman
để thực hành tạo và kiểm tra các API requests
Trang 11- Nhìn chung, qua quá trình này, em không chỉ học hỏi được cách sử dụng các công cụ cần thiết mà còn phát triển kỹ năng làm việc chuyên nghiệp, nâng cao hiệu quả công việc trong môi trường công nghệ thông tin
2.2.2 Tuần 2:
Bảng 2.1 Bảng nghiên cứu kỹ thuật (tuần 02)
02 - Đọc và phân tích tài liệu: Em bắt đầu quá trình làm
quen với dự án bằng việc đọc kỹ lưỡng tài liệu Tài
liệu bao gồm một bản mô tả tổng quan về dự án, các
yêu cầu kỹ thuật, và mục tiêu phát triển
- Hiểu rõ mục tiêu và yêu cầu của dự án: sau khi đọc
tài liệu, Em đã có cái nhìn cụ thể về những gì dự án
nhằm đạt được Em hiểu được các mục tiêu chính, các
yêu cầu kỹ thuật cụ thể, và cách thức mà dự án này
mong muốn tác động đến người dùng cuối
- Nắm bắt ý tưởng và layout tổng thể qua file thiết kế:
bằng việc xem xét các file thiết kế, em bắt đầu nắm
bắt được ý tưởng và bố cục tổng thể của dự án Các
file này bao gồm các mockup và các thiết kế UI/UX
- Làm quen với source code: Em tiếp tục quá trình này
bằng việc làm quen với source code, bắt đầu từ việc
xem xét cấu trúc tổng thể của source code, bao gồm
cách tổ chức và sắp xếp các files và modules
Hoàn thành tốt công việc được giao
Trang 12Kết quả:
- Việc phân tích kỹ lưỡng tài liệu đã giúp em hiểu rõ về mục tiêu và yêu cầu của dự án, hiểu được tầm quan trọng và mục đích của dự án, cũng như cách thức để đáp ứng những yêu cầu đó
- Qua việc nghiên cứu các file thiết kế, đã có cái nhìn toàn diện về ý tưởng và layout của dự án Điều này giúp em hiểu rõ hơn về cách thức mà dự án mong muốn truyền tải trải nghiệm đến người dùng
- Việc làm quen với source code đã giúp em hiểu rõ cấu trúc và tổ chức của source code, biết được cách các files và modules được sắp xếp, cũng như cách thức mà chúng tương tác với nhau trong dự án
- Làm quen với mô hình MVVM và quản lý trạng thái: đã làm quen với mô hình MVVM (Model-View-ViewModel) và hiểu được cách thức các components trong ứng dụng tương tác với nhau Em cũng hiểu được cách quản lý trạng thái trong ứng dụng
2.3 Tham gia dự án thực tế
2.3.1 Mô tả tổng thể:
- Em đã có cơ hội tham gia vào việc phát triển một ứng dụng di động hướng đến lĩnh vực y tế, đây là một trải nghiệm thực sự đáng giá và thách thức Dự án này đòi hỏi sự hiểu biết sâu về ngành cũng như kỹ năng lập trình ứng dụng di động Em đã dành thời gian để tìm hiểu về nhu cầu và hành vi người dùng trong ngành y tế, từ đó xây dựng các tính năng phù hợp và hiệu quả
Bảng 2.3 Bảng mô tả thông tin dự án thực tế đã tham gia
Dự án tham gia Web, App bán hàng trực tuyến dược phẩm Hoàng
Đức
Mô tả App bán hàng trực tuyến dược phẩm Hoàng Đức
nhằm giới thiệu sản phẩm của Hoàng Đức đến khách hàng Người dùng có thể tương tác qua giao diện ứng dụng thân thiện và dễ dàng sử dụng, có tính bảo
Trang 13mật cao
- Có 3 loại người dùng chính:
+ Khách hàng (Member): là khách hàng có tài khoản được cấp và đã đăng nhập thành công vào
Công nghệ C#, MongoDB, SQL, Firebase, Flutter, Figma
Một số tính năng chính - Đặt hàng dược phẩm
- Xem sản phẩm hot, ưu đãi, các chương trình khuyến mãi
- Tra cứu thông tin dược phẩm
- Chấm công cho Trình dược viên
- Báo cáo kế hoạch bán hàng, kế hoạch visit khách hàng
2.3.2 Quá trình thực hiện:
- Do dự án đã được khởi động từ trước, nên em cũng không trải qua hết từ đầu các bước trong quá trình thực hiện, nhưng tổng hợp lại, quá trình thực hiện phát triển ứng
dụng cũng như Web admin đều qua các bước sau:
+ Phân tích yêu cầu và thiết kế: Bắt đầu với việc hiểu rõ yêu cầu của dự án, phân tích và thiết kế giao diện người dùng (UI/UX) sử dụng Flutter
+ Phát triển: tiếp theo là quá trình viết code, tạo ra các màn hình, tích hợp API,
và thực hiện các chức năng cần thiết
+ Kiểm thử: kiểm tra các chức năng, sửa lỗi và tối ưu hóa hiệu suất của ứng dụng
Trang 14+ Tối ưu và cải tiến: Cải tiến giao diện người dùng và trải nghiệm người dùng (UX), đảm bảo ứng dụng mượt mà trên các thiết bị và nền tảng
+ Triển khai và phản hồi: Triển khai ứng dụng và thu thập phản hồi từ người dùng để cải tiến trong các bản cập nhật tiếp theo
Bảng 2.3 Bảng mô tả quá trình thực hiện dự án thực tế:
- Trang chủ:
+ Đã hoàn thiện phần banner quảng
cáo, cung cấp một giao diện thu hút và thân
thiện với người dùng
+ Em cũng đã tích hợp tính năng hiển
thị danh sách các sản phẩm bán chạy và các
chương trình khuyến mãi, giúp người dùng dễ
dàng tìm thấy và lựa chọn sản phẩm phù hợp
- Trang thông báo: trang này được thiết kế để
hiển thị các thông báo mới nhất và quan trọng,
từ cập nhật ứng dụng đến thông tin lịch nghỉ
và chương trình khuyến mãi
- Em đã chú trọng đến việc thiết kế sao cho các
thông báo dễ đọc và nổi bật, đảm bảo rằng
Trình dược viên và người dùng không bỏ lỡ
thông tin quan trọng
Trang 15- Trang sản Phẩm: trang này được thiết kế để
người dùng có thể dễ dàng xem danh mục sản
phẩm một cách rõ ràng, tìm kiếm sản phẩm
theo nhiều tiêu chí
- Người dùng có thể xem thông tin chi tiết sản
phẩm, bao gồm thành phần, công dụng, giá cả,
và sản phẩm liên quan khác, giúp họ có thêm
thông tin để quyết định mua hàng
- Trang đặt hàng cho Trình dược viên: tính
năng này cho phép Trình dược viên lưu tạm và
xử lý đơn hàng một cách nhanh chóng và chính
xác
- Em đã tích hợp các công cụ hỗ trợ nhập liệu,
kiểm tra date hết hạn, và xác nhận đơn hàng
Điều này giúp tối ưu hóa quy trình làm việc,
cung cấp trải nghiệm người dùng hiệu quả và
thuận tiện
Trang 16- Ngoài ra, trong quá trình thực tập, em còn được giao nhiệm vụ tham gia vào dự án phát triển Web admin cho ứng dụng “Hoàng Đức” Công việc này giúp em hiểu sâu hơn
về quản lý hệ thống và cách thức tương tác giữa ứng dụng di động và hệ thống backend
Bảng 2.4 Bảng mô tả quá trình thực hiện dự án thực tế (Web Admin):
- Quản lý Trình dược viên: xây dựng chức năng quản
lý Trình dược viên, bao gồm các chức năng như cài
đặt sản phẩm và khách hàng cho họ, thêm, xóa, sửa
thông tin, cấp quyền hoạt động, và khóa quyền hoạt
động khi cần thiết
Hoàn thành tốt công việc được giao
- Quản lý sản phẩm: xây dựng chức năng cho phép
thêm, xóa và chỉnh sửa thông tin sản phẩm Tích hợp
chức năng tìm kiếm và bộ lọc giúp việc quản lý danh
sách sản phẩm trở nên dễ dàng và hiệu quả hơn
Hoàn thành tốt công việc được giao
- Quản lý thông báo: xây dựng chức năng quản lý
thông báo, cho phép thêm mới, xóa và cập nhật thông
báo Chức năng này cũng bao gồm phân quyền cho
người dùng nhận thông báo, giúp đảm bảo thông tin
được gửi đến đúng đối tượng
Hoàn thành tốt công việc được giao
- Quản lý đơn hàng: phát triển chức năng xem danh
sách đơn hàng, chi tiết từng đơn hàng cụ thể, cũng như
theo dõi trạng thái và quản lý hiệu quả các đơn hàng
Tính năng này giúp đơn giản hóa quy trình xử lý đơn
hàng và tối ưu hóa quá trình quản lý đơn hàng
Hoàn thành tốt công việc được giao
Trang 17- Hình ảnh các chức năng sau khi hoàn thành:
Hình 2.1 Quản lý trình dược viên
Hình 2.2 Quản lý trình sản phẩm
Trang 18Hình 2.3 Quản lý đơn hàng
Hình 2.3 Quản lý thông báo
Qua quá trình tham gia phát triển Web admin, em đã học được nhiều kỹ năng quan trọng liên quan đến quản lý hệ thống và giao diện người dùng, cùng với việc áp dụng kiến thức lập trình để tạo ra các giải pháp hiệu quả cho công ty
Trang 192.3.3 Kết quả:
- Sau hai tháng thực tập tại công ty, em rất tự hào về những đóng góp của mình vào sự thành công của dự án Quá trình này không chỉ giúp em nâng cao kỹ năng kỹ thuật mà còn cải thiện thái độ và hiểu biết về quy trình làm việc chuyên nghiệp
- Em đã tham gia phát triển và triển khai nhiều chức năng quan trọng như quản lý trình dược viên, sản phẩm, thông báo và đơn hàng Điểm nổi bật là việc thiết kế giao diện người dùng đáp ứng, tạo ra trải nghiệm tương tác tốt trên nhiều thiết bị khác nhau
- Em cũng chú trọng vào việc tối ưu hóa hiệu suất và khả năng tương thích của ứng dụng, đảm bảo hoạt động mượt mà trên các thiết bị Giao diện người dùng được thiết
kế để đảm bảo tính thân thiện và dễ sử dụng, nhằm mang lại trải nghiệm người dùng tốt nhất
- Một phần quan trọng của công việc của em là thu thập và phân tích phản hồi từ người dùng, từ đó liên tục cải tiến ứng dụng trong các phiên bản cập nhật Những kết quả này không chỉ phản ánh nỗ lực cá nhân của em mà còn là minh chứng cho sự chuyên nghiệp
và kỹ năng của toàn bộ đội ngũ, trong việc xử lý các thách thức kỹ thuật và đáp ứng nhu cầu người dùng