Chân thành cảm ơn Document Easy và các anh chị trong team Document Easy đã bỏ ra nhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trường mới
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 Flutter Developer
Công ty thực tập: Document Easy Người phụ trách: Nguyễn Chí Kiên Thực tập sinh: Nguyễn Văn Pháp
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ô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ệ ứng dụng di động, hay công nghệ sản xuất các ứng dụng di động
đã phục vụ hầu hết các nhu cầ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ỷ ứng dụng di động nhưng nhu cầu tạo ra những ứng dụng mới vẫn chưa có dấu hiệu giảm
Do đó, một ứng dụng di động 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 mobile 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ọn Flutter 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 Document Easy – 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 Nguyễn Chí Kiên đã tạo điều kiện cho
em 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 Kiên, 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 Document Easy và các anh chị trong team Document Easy
đã bỏ ra nhiều thời gian, công sức để hướng dẫn, 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
Sinh viên thực hiện NGUYỄN VĂN PHÁP
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
Trang 6
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 1
1.1 Giới thiệu công ty Document Easy 1
1.2 Sản phẩm công ty 2
1.2.1 Extract Image From Video: 3
1.2.2 Office to PDF: PDF Converter: 2
1.2.3 Media Editor: 2
1.3 Lịch làm việc khi thực tập tại công ty 4
CHƯƠNG 2: NỘI DUNG THỰC TẬP 5
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 5
2.2 Nghiên cứu kỹ thuật 5
2.3 Tham gia dự án thực tế 7
2.3.1 Tổng quan dự án: 7
2.3.2 Quá trình thực hiện: 16
2.3.3 Kết quả: 17
2.3.4 Thuận lợi: 17
2.3.5 Khó khăn: 17
CHƯƠNG 3: TỔNG KẾT 18
3.1 Điểm mạnh 18
3.2 Điểm yếu 18
3.3 Chuẩn đạt được 18
TÀI LIỆU THAM KHẢO 20
Trang 7MỤC LỤC HÌNH ẢNH
Hình 1.1 Logo Document Easy 1
Hình 1.2: Ứng dụng Office to PDF: PDF Converter 4
Hình 1.3: Ứng dụng Media Editor 2
Hình 1.4: Ứng dụng Extract Image From Video 3
Hình 2.1: Kiến trúc BLoc 6
Hình 2.2: Jira Software 6
Hình 2.3: Trang cá nhân của khách hàng (Salon Việt) 8
Hình 2.4: Hình ảnh chọn chi nhánh và đặt lịch của khách (Salon Việt) 9
Hình 2.5: Màn hình chấm công và quản lý nhân viên của salon (Salon Việt) 10
Hình 2.6: Màn hình quản lý đặt lịch và voucher của salon (Salon Việt) 11
Hình 2.7: Một số hình ảnh phần khách hàng của Salon Việt 11
Hình 2.7: Màn hình đặt lịch (Alobo) 12
Hình 2.8: Màn hình tìm kiếm sân (Alobo) 13
Hình 2.9: Một vài màn hình minh họa phía quản lý (Alobo) 15
Trang 8CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty Document Easy
Hình 1.1 Logo Document Easy
- Tên gọi: Document Easy
- Lịch sử hình thành: Công ty được thành lập từ năm 2019
- Công nghệ chính trong công ty: Mobile
- Địa chỉ: Phòng I.115B, Nhà A, Khu Công nghệ phần mềm, Đường nội bộ Đại học Quốc gia TP Hồ Chi Minh, Khu phố 6, Phường Linh Trung, Thành Phố Hồ Chí Minh, Việt Nam
- Website công ty: https://doczy.net
- Điện thoại: 0967 373 003
- Mô tả: Document Easy được thành lập từ năm 2019 và là công ty product chuyên phát triển phần mềm cho nền tảng mobile bao gồm AppStore vs Google Play Ngoài ra công ty còn phát triển cả các trang web và nhiều phần mềm khác về outsourcing Ban đầu, công ty hướng tới công nghệ native, chia thành ứng dụng riêng cho Android và iOS, với mục tiêu chủ yếu là thao tác trên file và video Sau
đó, công ty chuyển đổi sang framework Flutter để tối ưu hóa quá trình phát triển
và cung cấp trải nghiệm người dùng linh hoạt hơn Hiện tại công ty tập trung vào
Trang 9phát triển ứng dụng đặt lịch mang lại sự thuận tiện và hiệu quả trong quản lý thời gian cho người dùng
o Chuyển đổi Word sang PDF
o Chuyển đổi Excel sang PDF
o Chuyển đổi PowerPoint sang PDF
o Chuyển đổi TXT sang PDF
o Chuyển đổi ODT, ODS, ODP sang PDF
o Trình quản lý tệp: Nhập tệp, tạo thư mục, nén/giải nén, sao chép và di chuyển tệp,
o Không có giới hạn về kích thước tệp hoặc số lượng tệp được chuyển đổi
- Link: Office to PDF: PDF Converter - Apps on Google Play
1.2.2 Media Editor:
Trang 10Hình 1.3: Ứng dụng Media Editor
- Ứng dụng giúp ạo - chỉnh sửa - áp dụng hiệu ứng - thêm nhạc vào tất cả video, Mp3 & Tất cả các tệp phương tiện Sau đó xuất thành video chất lượng cao để chia sẻ trên TikTok, Facebook, Instagram, …
- Các chức năng chính:
o Cắt, thêm nhạc nền vào video
o Giảm kích thước tệp video
o Ghi lại giọng nói từ bất kỳ âm thanh nào
o Trích xuất nhạc khỏi video
o Merge 2 video lại với nhau
o Chuyển đổi MP3
- Link: Media Editor - Apps on Google Play
1.2.3 Extract Image From Video:
Trang 11Hình 1.4: Ứng dụng Extract Image From Video
- Ứng dụng giúp trích xuất hình ảnh từ video và chỉnh sửa - áp dụng bộ lọc ảnh để chia sẻ trên Facebook, Instagram
- Các chức năng chính:
o Trích xuất hình ảnh từ video
o Chỉnh sửa ảnh: cắt, chia tỷ lệ, xoay
o Bộ lọc ảnh (filter)
o Chia sẻ ảnh lên Facebook, Instagram, Zalo và hơn thế nữa
- Link: Extract Image From Video - Apps on Google Play
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 06/07/2023 tới 24/09/2023, các ngày làm việc trong tuần là từ thứ 2 tới thứ 6 Công việc hằng ngày bắt đầu từ lúc 8h sáng đến 17h30 Thời gian nghỉ trưa khoảng 1 tiếng 30 phút Sau mỗi task thực hiện, em sẽ báo cáo tiến độ công việc, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đưa ra kế hoạch cho các task tiếp theo Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 2, 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 12CHƯƠ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á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, 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, … Ngoà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, …
Kết quả: hiểu thêm về cách thức làm việc, những qui định tại Document Easy
và cách thức sử dụng Jira để quản lý công việc, quá trình thành lập và phát triển Có thêm các kỹ năng về việc báo cáo hàng tuần, 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
Thời gian: 2 tuần
Nội dung: Thực hiện theo khung chương trình thực tập mà công ty đưa ra
- Giai đoạn đầu tiên: Thực hiện code giao diện và xử lý theo yêu cầu
- Giai đoạn 2: Thực hiện reserch tìm hiểu và thao tác xử lý backend Cụ thể:
o Tìm hiểu BLoC State Management (BlocProvider, BlocConsumer, BlocBuilder, BlocListener, RepositoryProvider, MultiRepositoryProvider, …) Phân tích được luồng chạy của chương trình khi áp dụng BloC
o Tìm hiểu về cách gọi API sử dụng thư viện dio, xử lý các exception liên quan Xây dựng 1 ứng dụng tin tức nhỏ, sử dụng BLoC và dio
Trang 13Hình 2.1: Kiến trúc BLoc
o Tìm hiểu về cách lưu trữ dữ liệu local sử dụng một số thư viện như: Hive, Sqflite, Floor Phân tích ưu nhược điểm của mỗi cái Sử dụng dữ liệu ở local làm cache của ứng dụng Từ ứng dụng tin tức của bài trước, phát triển thêm tính năng lưu trữ Chọn 1 thư viện mà bản thân cảm thấy tiện sử dụng nhất để lưu dữ liệu (Xử lý tất cả Exception có thể có)
o Tìm hiểu cách gọi qua native (Android, iOS) thông qua MethodChannel, EventChannel Viết chương trình gọi qua native cơ bản, tự chọn chức năng, đủ 2 phương thức MethodChannel và EventChannel
o Tìm hiểu cách tạo clean architect project và áp dụng nó vào bài đã làm
- Giai đoạn 3: Được hướng dẫn sử dụng Jira để làm dự án thức tế
Hình 2.2: Jira Software
Trang 14Kết quả: Sau quá trình trainning, bản thân biết và áp dụng BloC vào dự án thực tế
cũng như đồ án trên trường Bên cạnh đó, biết được cách làm việc với API thông qua thư viện dio hoặc biết được các thư viện có thể thao tác lưu dữ liệu ở local Cuối cùng
là biết cách tổ chức 1 project sao cho có tính tổ chức, clean code và biết cách sử dụng
- Ứng dụng đặt và quản lý lịch dành cho các tiệm cắt tóc
- Khách hàng truy cập vào ứng dụng và chọn chi nhánh của cửa hàng mình muốn
và thực hiện đặt lịch Bên cạnh đó, người dùng có thể quản lý được lịch trình của
bản thân, quản lý các voucher mà salon đưa cho
Trang 15Hình 2.3: Trang cá nhân của khách hàng (Salon Việt)
Trang 16
Hình 2.4: Hình ảnh chọn chi nhánh và đặt lịch của khách (Salon Việt)
Trang 17- Salon: sẽ quản lý các lịch đặt cụ thể trong từng chi nhánh, quản lý thông tin của salon, quản lý voucher (Thêm, xóa, chỉnh sửa), quản lý nhân viên (chấm công),
quản lý danh sách khách hàng của salon, thống kế
Hình 2.5: Màn hình chấm công và quản lý nhân viên của salon (Salon Việt)
Trang 19b Alobo:
- Ứng dụng đặt và quản lý lịch dành cho các sân thể thao (cầu lông)
- Khách hàng truy cập vào ứng dụng và chọn sân mà mình muốn và thực hiện đặt lịch Bên cạnh đó, người dùng có thể quản lý được lịch trình của bản thân và nhận thông báo xác nhận từ sân đó
Hình 2.7: Màn hình đặt lịch (Alobo)
Trang 20
Hình 2.8: Màn hình tìm kiếm sân (Alobo)
Trang 21- Sân: sẽ quản lý các lịch đặt cụ thể (duyệt đơn), việc bán hàng, quản lý đơn tháng, quản lý nhân viên (chấm công), quản lý danh sách khách hàng của salon, thống
kế
Trang 22
Hình 2.9: Một vài màn hình minh họa phía quản lý (Alobo)
Trang 23- Mô hình hóa giao diện
- Quyết định các công nghệ
sử dụng
- Chia giai đoạn thực hiện
Anh Nguyễn Chí Kiên (CEO)
Anh Quang Vinh (team leader)
- Kết nối cơ sở dữ liệu
(firebase)
- Thực hiện báo cáo công việc
mỗi cuối tuần
Anh Quang Vinh (team
7
- Thực hiện unit test và chỉnh
sửa để hoàn thành phiên bản demo cho khách hàng
Anh Quang Vinh (team leader)
Chị Tiểu Vi (BA)
100%
8 – 10
- Họp để bước qua giai đoạn
2: Xây dựng dựa trên yêu cầu của khách hàng
- Thực hiện unit test trước khi
đi demo lần 2 cho khách hàng
Anh Nguyễn Chí Kiên (CEO)
Anh Quang Vinh (team leader)
Chị Tiểu Vi (BA)
100%
Trang 24dự án thực tế, bản thân đã cải thiện được nhiều hơn
- Qua dự án thực tế đã tham gia, bản thân được tham gia vào 1 quá trình phát triển phần mềm một cách có tổ chức, được chỉ dẫn để cải thiện kĩ năng lập trình rất nhiều và học được nhiều thứ như sử dụng phần mềm quản lý task (Jira), báo cáo tiến độ hàng tuần, phương pháp Agile, …
2.3.4 Thuận lợi:
- Hoàn thiện hơn kĩ năng về lập trình và kiến thức về framework
- Cải thiện được kĩ năng teamwork
- Biết được quy trình khi tham gia vào một dự án thực tế
2.3.5 Khó khăn:
- Chưa quen với việc làm việc liên tục nhiều giờ
- Xử lý một vài trường hợp tính toán thực tế còn chậm
Trang 25CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại Document Easy đã 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, … và quan trọng nhất là cải thiện được kĩ năng lập trình của mình (code và kiến thức về framework flutter)
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
- Kỷ luật: bản thân luôn tuân thủ đúng giờ giấc và nội quy trong công ty khá tốt
- Chuyên môn: bản thân luôn hoàn thành đủ và đúng thời gian các task được giao
- Giao tiếp: bản thân đã làm việc nhóm và giao tiếp với mọi người trong công ty khá tốt
- Sáng tạo: bản thân có tham gia góp ý chỉnh sửa vào dự án thực tế về mặt logic
3.2 Điểm yếu
- Cần cải thiện khả năng phân tích giao hiện người dùng nhằm hoàn thành task được giao nhanh 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 đề
Trang 26G5 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 27TÀI LIỆU THAM KHẢO
1 Tài liệu Bloc State Management Library (bloclibrary.dev):
Link: Bloc State Management Library (bloclibrary.dev)
2 Tài liệu flutter:
Link: Flutter - Build apps for any screen