Để có thể hiểu rõ quy trình tạo một phần mềm điều khiển thiết bị IoT, cùng với mong muốn có thêm kinh nghiệm thực tế, được tham gia làm việc trong môi trường chuyên nghiệp, em đã quyết đ
Trang 1TP HỒ CHÍ MINH, 2022
Trang 2LỜI MỞ ĐẦU
Ngày nay, chúng ta có các ứng dụng thông minh xuất hiện trong mọi khía cạnh của cuộc sống – có thể kể đến các ứng dụng mua hàng trực tuyến, ứng dụng nghe nhạc/xem phim, ứng dụng đặt nhà hàng/khách sạn, v.v Kết quả của những chuyển đổi với tốc độ nhanh đến chóng mặt này trên thế giới, kỹ thuật phần mềm đã vươn lên trở thành một trong những công cụ cốt yếu được tất cả các tổ chức, dù nhỏ hay lớn áp dụng phổ biến Do thực tế mới này, không có gì ngạc nhiên khi ngày càng có nhiều tổ chức đang tạo ra và áp dụng phần mềm ở nhiều lĩnh vực khác nhau, đặc biệt
là ứng dụng trong lĩnh vực IoT
Các ứng dụng điều khiển IoT cho phép người dùng truy cập và điều khiển các thiệt bị trong ngôi nhà cho dù bạn ở bất kỳ đâu Nó có thể hỗ trợ điều khiển một lúc nhiều loại thiết bị khác nhau cùng một lúc giúp tiết kiệm công sức cũng như giúp các thiết bị hoạt động một cách hiệu quả hơn
Để có thể hiểu rõ quy trình tạo một phần mềm điều khiển thiết bị IoT, cùng với mong muốn có thêm kinh nghiệm thực tế, được tham gia làm việc trong môi trường chuyên nghiệp, em đã quyết định chọn Công ty Sunshine Tech – một môi trường chuyên nghiệp, sáng tạo, là nơi phù hợp để em thực hiện dự dự định này
Trần Tuấn Minh
Trang 3Em cảm ơn anh Kiệt, chị Nguyệt, anh Tuấn đã luôn hỗ trợ trong suốt quá trình làm việc tại công ty Đặc biệt, em gửi lời cảm ơn đến anh Trung – mentor chính của
em trong quá trình thực tập Cảm ơn anh vì anh đã hướng dẫn tận tình, tạo cơ hội cũng như điều kiện cho em được học hỏi, được thử sức với những mảng liên quan tới mục tiêu cũng như là định hướng mục tiêu nghề nghiệp của em sau này Một lần nữa cho em được cảm ơn các anh chị rất nhiều!
Bên cạnh đó, em cũng trân trọng gửi lời cảm ơn đến quý thầy cô Khoa Công Nghệ Phần Mềm đã tận tình dạy dỗ, chỉ bảo, hướng dẫn chúng em từ ngày đầu bước chân vào trường Dựa vào những kiến thức, kinh nghiệm học được tại trường đã góp phần giúp em hoàn thành bài báo cáo này
Sinh viên thực hiện
Trần Tuấn Minh TP.Hồ Chí Minh, ngày 06 tháng 15 năm 2022
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
DANH MỤC HÌNH i
DANH MỤC BẢNG ii
Chương 1 GIỚI THIỆU CÔNG TY THỰC TẬP 1
1.1 Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group 1
1.2 Sản phẩm của công ty 2
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 sử dụng trong công việc 5
2.2 Tìm hiểu về sản phẩm và các công nghệ liên quan 5
2.3 Tham gia làm việc cùng Scrum team 6
2.4 Lịch làm việc 6
Chương 3 Chi tiết về project 9
3.1 Giới thiệu về dự án 9
3.2 Thực hiện 10
Chương 4 Kết quả đạt được 11
4.1 Scrum 11
4.1.1 Giới thiệu 11
4.1.2 Ba trụ cột chính của Scrum 12
4.1.3 Scrum team 12
4.1.4 Scrum Event 12
4.2 Flutter 12
4.2.1 Flutter là gì? 12
4.2.2 Tính mới của Flutter 13
4.2.3 Đặc điểm nổi bật 13
Trang 64.3 Stoplight 14 TỔNG KẾT 15 TÀI LIỆU THAM KHẢO 16
Trang 7DANH MỤC HÌNH
Hình 1.1: Logo của công ty Sunshine Tech 1
Hình 1.2: Logo của Unicloud Group 2
Hình 1.3: Nhà thông minh của Sunshine Tech 3
Hình 1.4: Ứng dụng Kienlong Bank Plus [4] 3
Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App 9
Hình 4.1 Mô tả quy trình Scrum 11
Hình 4.2 Ví dụ minh họa cho Flutter 14
Trang 8DANH MỤC BẢNG
Bảng 2.1 Lịch làm việc theo sprint 8
Trang 9Đặng Quang Trung Trần Tuấn Minh
Chương 1 GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group
Hình 1.1: Logo của công ty Sunshine Tech Công ty CP Đầu tư Thương mại Sunshine Tech [1] được thành lập ngày 12/06/2016, là công ty công nghệ chuyên về các giải pháp công nghệ IoT liên quan tới tối ưu và nâng cao chất lượng đời sống của cư dân tại các dự án căn hộ hạng sang Trong những năm qua, Sunshine Tech liên tục đã cho ra đời các giải pháp như giải pháp tổng thể cho smart living, giải pháp nhà thông minh, giải pháp bãi đỗ xe thông minh, giải pháp an ninh thông minh, giải pháp thang máy thông minh và giải pháp kiểm soát ra vào thông minh
Những bước đi đột phá bằng công nghệ thông minh này đã giúp Sunshine Group hoàn thiện “hệ sinh thái Sunshine” với tâm điểm là “cư dân điện tử” bằng các tiện ích công nghệ cùng dịch vụ hoàn hảo nhằm nâng cao chất lượng đời sống của người dân Việt…Đồng thời tạo sự khác biệt cho các sản phẩm bất động sản của Sunshine Group nhờ sự khác biệt về công nghệ hiện đại, vượt trội và thông minh
Những lĩnh vực phát triển của công ty [2]:
• Xây dựng các ứng dụng di động (Mobile App) cho việc giám sát, điều khiển
• Thiết kế phần cứng của Sản phẩm
• Xây dựng Firmware, Cloud Server
• Xây dựng Mobile App, Website
• AI, Machine learning, …
Trang 10Đặng Quang Trung Trần Tuấn Minh
Cuối năm 2021, Sunshine Tech đã được đổi tên thành Công ty CP Tập đoàn Công nghệ Unicloud (Unicloud Group), có hơn 300 thành viên tại trụ sở Hà Nội và chi nhánh TP.HCM, cùng 2 công ty con là Unicloud Investment và Nanochip
Hình 1.2: Logo của Unicloud Group
1.2 Sản phẩm của công ty
Sunshine Tech là công ty xây dựng những sản phẩm hiện đại và tiện lợi cho những cư dân căn hộ cao cấp, giúp kết nối các đồ vật và thiết bị thông qua cảm biến, phần mềm và các công nghệ khác, cho phép các đồ vật và thiết bị thu thập và trao đổi
dữ liệu với nhau để tự hoạt động dựa trên dữ liệu đó
Các giải pháp nhà thông minh nổi bật của Sunshine Tech [3] giúp thay đổi chất lượng cuộc sống:
• Hệ thống công tắc cảm ứng
• Rèm cửa thông minh
• Điều hòa thông minh
• Cảm biến chuyển động
• Hệ thống đo lường thông minh (giúp chủ nhà kiểm soát số liệu điện năng và nước tiêu thụ trong gia đình theo thời gian thực tế)
Trang 11Đặng Quang Trung Trần Tuấn Minh
Hình 1.3: Nhà thông minh của Sunshine Tech
Hình 1.4: Ứng dụng Kienlong Bank Plus [4]
Trang 12Đặng Quang Trung Trần Tuấn Minh
Bên cạnh những sản phẩm về nhà thông minh, Sunshine Tech còn xây dựng các sản phẩm khác Một trong những sản phẩm nổi bật là Kienlong Bank Plus, được Ngân hàng TMCP Kiên Long (KienlongBank) và Tập đoàn Sunshine (Sunshine Group) phối hợp hoàn thiện
Trang 13Đặng Quang Trung Trần Tuấn Minh
Chương 2 Nội dung thực tập
Trong thời gian thực tập, em đã tham gia dự án xây dựng ứng dụng dạy điều khiển nhà thông minh thiết bị di động - Sliving App - phục vụ điều khiển các thiết bị IoT trong các căn hộ thông minh Thực tập sinh tại công ty có cơ hội học hỏi, khám phá và làm việc trong môi trường phát triển ứng dụng chuyên nghiệp
2.1 Tìm hiểu công ty và các kỹ năng cơ bản sử dụng trong công việc
Thời gian: 1 ngày
• Giới thiệu về các thành viên nhóm và sản phẩm sẽ thực hiện
• Giới thiệu các công cụ và website hỗ trợ trong quá trình làm việc
2.2 Tìm hiểu về sản phẩm và các công nghệ liên quan
Thời gian: 1 tuần
Nội dung:
Trang 14Đặng Quang Trung Trần Tuấn Minh
• Tìm hiểu và làm quen với sản phẩm, cấu trúc, cách cài đặt, framework liên quan dựa vào document của sản phẩm…
• Tìm hiểu về các library của Flutter như: TextField, Image Picker, …
• Tìm hiểu các công cụ hỗ trợ như Stoplight, Jira, Gitlab
• Tìm hiểu về Docker, WebSocket
Kết quả:
• Tiếp cận với tool làm việc của Scrum team
• Hiểu các khái niệm cần thiết, có khả năng sử dụng các thư viện mở rộng
2.3 Tham gia làm việc cùng Scrum team
Thời gian: 10 tuần
Nhận xét
1
Tìm hiểu quy trình làm việc Scrum
Học cách trao đổi công việc qua
Skype, email
Tìm hiểu cách quản lý dự án trên
Jira và cài đặt các công cụ phục vụ
cho dự án
Đặng Quang Trung
100% Đạt yêu
cầu
Trang 15Đặng Quang Trung Trần Tuấn Minh
Xây dựng màn hình Đăng nhập, Xác
thực OTP, Quên mật khẩu
Tạo các widget cơ bản (textfield,
button) dùng chung cho các màn
Tạo mock data cho các màn hình
Tìm hiểu BloC pattern để quản lý
state
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm
Đặng Quang Trung
giúp, Quên mật khẩu
Tạo mock data
100% Đạt yêu
cầu
Trang 16Đặng Quang Trung Trần Tuấn Minh
Tạo mock data
Refactor và clean code
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm
Đặng Quang Trung
Refactor và clean code
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm
Đặng Quang Trung
100% Đạt yêu
cầu
Bảng 2.1 Lịch làm việc theo sprint
Trang 17Đặng Quang Trung Trần Tuấn Minh
Chương 3 Chi tiết về project
3.1 Giới thiệu về dự án
Ứng dụng Sliving App là một ứng dụng cho phép người sử dụng có thể điều khiển tất cả các thiết bị thiết yếu trong ngôi nhà thông minh như bóng đèn, rèm cửa, máy lạnh… và lấy thông tin từ các cảm biến ánh sáng, cảm biến nhiệt độ để thông báo cho người dùng Ứng dụng này được xây dựng chủ yếu nhắm tới nhóm khách hàng sở hữu nhà thông minh được xây dụng bởi tập đoàn Sunshine Group Vì vậy, các tác vụ xử lý thông tin cho các thiết bị IoT này được chủ động và tối ưu nhất
Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App
Trang 18Đặng Quang Trung Trần Tuấn Minh
Do yêu cầu bảo mật thông tin của doanh nghiệp nên em không thể trình bày chi tiết hơn
Trang 19Đặng Quang Trung Trần Tuấn Minh
Chương 4 Kết quả đạt được
Trong chương này, em sẽ trình bày những kết quả, những kiến thức cũng như
kĩ năng làm việc mà em đã đạt được trong 3 tháng thực tập tại công ty
Hình 4.1 Mô tả quy trình Scrum
Scrum là một framework được sử dụng để quản lý công việc trên các sản phẩm phức tạp Scrum không phải là một quá trình, kỹ thuật hay là một định nghĩa nào, Scrum là framework – tức là một phương pháp được nhiều người sử dụng và trở nên
Trang 20Đặng Quang Trung Trần Tuấn Minh
phổ biến giúp làm rõ các hiệu quả tương đối của việc quản lý sản phẩm và kĩ thuật để cải thiện sản ph ẩm, cải thiện mối quan hệ giữa team member và môi trường làm việc
Flutter hoàn toàn miễn phí và cũng là mã nguồn mở
Trang 21Đặng Quang Trung Trần Tuấn Minh
4.2.2 Tính mới của Flutter
Flutter là một công nghệ mới được Google phát triển, một framework dựa trên ngôn ngữ lập trình Dart Đây được kỷ vọng sẽ là một công nghệ có thể khắc phục các nhược điểm của React Native
Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với những ứng dụng được xây dựng bằng cách sử dụngAndroid SDK, cả về giao diện và hiệu suất Và chỉ cần thêm một số tham số là có thể triển khai phiên bản IOS của một ứng dụng
Với khả năng chạy hỗ trợ 60 khung hình trên giây, giao diện người dùng được tạo ra với Flutter thực thi tốt hơn nhiều so với những ứng dụng được tạo ra với các framework phát triển đa nền tảng khác chẳng hạn như React Native và Ionic Một số điểm đặc biệt của Flutter:
• Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng hữu ích như mixin, generic, isolate, và static type
• Flutter có các thành phần UI được thiết kế riêng theo Material Design của Google, có thể sử dụng trên cả hai nền tảng Android và iOS
• Các ứng dụng Flutter thường được phát triển bằng cách sử dụng IntelliJ IDEA, Android Studio và Visual Studio Code
• Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và Android
Trang 22Đặng Quang Trung Trần Tuấn Minh
Hình 4.2 Ví dụ minh họa cho Flutter
4.3 Stoplight
Stoplight [8] là một trang web cho phép người dùng mock API một cách nhanh chóng Khi đã tạo hoặc nhập tài liệu OpenAPI, người dùng có quyền truy cập vào một máy chủ giả lập tức thì, máy chủ này có tính năng tự động tự động tải lại khi tài liệu của bạn thay đổi Một API giả và máy chủ HTTP giả mô phỏng hoạt động của một API thực cho phép cộng tác và phản hồi về thiết kế API
Với chế độ giả lập, ta có thể đẩy nhanh sự phát triển của các API mới Các nhóm có thể làm việc song song trước khi API khả dụng thông qua ảo hóa Máy chủ giả và máy chủ giả trực tuyến của Stoplight có thể ảo hóa các API bên trong và bên ngoài trong nền bạn với các phản hồi động được tạo từ JSON schema được thiết kế sẵn
Stoplight có thể xác thực các yêu cầu và mô phỏng hành vi máy chủ bằng cách
tự động xác thực các thông tin trong yêu cầu được gửi từ phía người dùng cuối giống như một máy chủ thực sự dựa trên các tài liệu API đã được thiết kế
Trang 23Đặng Quang Trung Trần Tuấn Minh
TỔNG KẾT
Sau khoảng thời gian 3 tháng thực tập, em đã hoàn thành những nhiệm vụ trong dự án xây dựng ứng dụng Sliving trên thiết bị di động Khoảng thời gian vừa qua, em đã học thêm được nhiều kiến thức và kinh nghiệm bổ ích
Tuy nhiên, do tình hình dịch bệnh phức tạp, thực tập trực tuyến cũng gây ra một số hạn chế nhất định Việc không thể trao đổi trực tiếp hoặc giải quyết vấn đề kịp thời cũng làm mất nhiều thời gian thực hiện dự án Ngoài ra, vì thời gian thực tập
có hạn dẫn đến em chưa được tham gia vào xây dựng một số chức năng mở rộng của ứng dụng trong tương lai
Thời gian thực tập ở công ty là khoảng thời gian đem lại cho em rất nhiều trải nghiệm quý giá Em được tiếp cận với dự án thực tết và tinh thần làm việc chuyên nghiệp Hơn nữa, sự giúp đỡ, chỉ dạy tận tình của anh Đặng Quang Trung và thành viên trong nhóm cũng góp phần để em hoàn thành tốt đợt thực tập này Thời gian ba tháng tuy không phải là thời gian quá dài, cũng không phải là quá ngắn nhưng nó vừa
đủ để em tận hưởng trọn vẹn những kỷ niệm đẹp với công ty Sunshine Tech Một lần nữa, em xin chân thành cảm ơn công ty Sunshine Tech, người hướng dẫn hướng dẫn Đặng Quang Trung đã cho em cơ hội được thực tập, trau dồi kinh nghiệm và ứng dụng những kiến thức và kỹ năng đã học vào môi trường làm việc thực tế
Trang 24Đặng Quang Trung Trần Tuấn Minh
TÀI LIỆU THAM KHẢO
[1] TopCV, “Thông tin công ty & tin tuyển dụng từ Công ty Cổ phần Tập đoàn Công nghệ Unicloud (Unicloud Group),” 2022 [Trực tuyến] Địa chỉ:
[2] Haravan, “Về Sunshine Mall,” 2020 [Trực tuyến] Địa chỉ: https://Sunshinemall.vn/blogs/ve-Sunshine-mall/about-us [Truy cập 15/5/2022]
[3] SunshineGroup, “Sống tiện nghi hơn với nhà thông minh của Sunshine Group,”
2021 [Trực tuyến] Địa chỉ: nha-thong-minh-cua-Sunshine-group/ [Truy cập 16/5/2022]
https://Sunshinegroup.vn/song-tien-nghi-hon-voi-[4] GooglePlay, “KienlongBank Plus,” 2022 [Trực tuyến] Địa chỉ: https://play.google.com/store/apps/details?id=com.Sunshine.ksbank&hl=vi&gl=VI [Truy cập 16/5/2022]
[5] L.T.P.Thảo, “Scrum là gì và tại sao nên dùng Scrum,” 2018 [Trực tuyến] Địa chỉ: https://viblo.asia/p/scrum-la-gi-va-tai-sao-nen-dung-scrum-1Je5Ed6LlnL [Truy cập 18/5/2022]
[6] T.Việt, “Flutter là gì? Nó có ưu điểm vượt trội ra sao để làm một ứng dụng mobile?,” 2018 [Trực tuyến] Địa chỉ: https://topdev.vn/blog/flutter-la-gi/ [Truy cập 18/5/2022]
[7] V.N.Tuấn, “Giới thiệu về Flutter,” 2018 [Trực tuyến] Địa chỉ: https://viblo.asia/p/gioi-thieu-ve-flutter-bWrZnNxrZxw [Truy cập 18/5/2022] [8] Stoplight, “OpenAPI Mock Server & Web Mock Service | API Mocking & Servers Online | Stoplight,” 2022 [Trực tuyến] Địa chỉ: https://stoplight.io/mocking [Truy cập 19/5/2022]