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

Báo cáo thực tập lập trình mobile application 4kfarm phần mềm hỗ trợ nông nghiệp

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 (615.06 KB, 16 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠ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 MOBILE APPLICATION
4KFarm - Phần mềm hỗ trợ Nơng nghiệp
Công ty thực tập: MWG (Thế giới Di động)
Người phụ trách: Nguyễn Vĩnh Tuấn,
Nguyễn Hữu Nghị
Thực tập sinh: Nguyễn Viết Lưu - 19520155

TP. Hồ Chí Minh, tháng 12 năm 2022


Nguyễn Viết Lưu

Thực tập tốt nghiệp

LỜI MỞ ĐẦU
Ngày nay, với tốc độ phát triển như vũ bão của internet, các công nghệ và dịch vụ
mới liên tiếp ra đời hướng đến nâng cao trải nghiệm của người dùng. Ngành nông nghiệp
hiện đại cũng khơng nằm ngồi xu thế này. Các ứng dụng của cơng nghệ thơng tin được ví
như những con sóng mới, làm thay đổi tồn bộ hệ thống mô thức cung ứng và vận hành
của các dịch vụ nơng nghiệp đã có từ hàng trăm năm nay. Từ đó, giúp cho các kỹ sư có thể
vận hành, bảo quản và chăm sóc thực phẩm tốt hơn, phân loại và đưa đến các siêu thị cho
người dân sử dụng.
Nổi bật nhất trong số đó có thể kể đến 4KFarm, là một phần mềm quản lý do Công
ty Cổ phần Thế giới di động (MWG), phát triển cho phép các kỹ sư nông nghiệp theo dõi
và vận hành sản phẩm tốt nhất. Bằng việc hợp tác với hơn 50 nhân sự CNTT đã phát triển


sản phẩm trong vòng gần một năm, để đưa lên cho các kỹ sư nông nghiệp sử dụng và từ đó
phát triển hơn nhiều tính năng đặc biệt, phù hợp với ngành trồng trọt, chăn nuôi.
Sự phát triển rộng rãi của MWG kéo theo nhu cầu về nguồn nhân lực để đảm bảo
cho việc phát triển và duy trì các dự án. Các cuộc tuyển mộ nhân lực, đặc biệt là nguồn
nhân lực trẻ liên tiếp được đội ngũ nhân sự của MWG tổ chức để tìm kiếm các ứng cử viên
phù hợp. Sau hơn 3 năm học tập và làm việc tại Đại học công nghệ thông tin (UIT), em đã
quyết định đăng ký chương trình MWG Talent Season 5 với mong muốn được trải nghiệm
môi trường làm việc của một trong những Doanh nghiệp bán lẻ hàng đầu Việt Nam, đồng
thời học hỏi thêm kinh nghiệm trong việc phát triển sản phẩm trong các dự án thực tế.

1


Nguyễn Viết Lưu

Thực tập tốt nghiệp

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Tập đoàn MWG đã tạo điều kiện cho em có cơ hội được
thực tập tại cơng ty.
Đặc biệt cảm ơn anh Nghị, anh Tuấn - lead manager của em trong suốt q trình
thực tập tại cơng ty, cũng như các thành viên của BackBone team, đã hướng dẫn, training
tận tình cho em các kiến thức mới về phát triển ứng dụng di động (React Native, Typescript,
…) cũng như làm quen với môi trường mới. Em cũng cảm ơn anh Nguyễn Thanh Hiền, đã
giúp đỡ và hướng dẫn em tận tình trong giai đoạn đầu em mới vào công ty.
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ài báo cáo này.
Nguyễn Viết Lưu
TpHCM, 14/12/2022


2


Nguyễn Viết Lưu

Thực tập tốt nghiệp

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

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

3


Nguyễn Viết Lưu

Thực tập tốt nghiệp

MỤC LỤC
Chương 1: Giới thiệu Công ty Thực tập ....................................................................... 5
Chương 2: Nội dung Thực tập ...................................................................................... 6
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong Công ty: .................................... 6
2. Nghiên cứu kỹ thuật: ........................................................................................... 6
2.1.

Các cơng cụ làm việc: .................................................................................... 6

2.2.

Tìm hiểu ngôn ngữ JavaScript và React Native FrameWork: .................... 7

2.3.

Sử dụng React Native Framework: .............................................................. 7

2.4.


Phát triển ứng dụng: ..................................................................................... 9

2.5.

Tham gia các buổi Training kỹ năng mềm: ................................................. 9

2.6.

Thực hiện Project: ....................................................................................... 10

3. Lịch làm việc: ..................................................................................................... 14
TỔNG KẾT .................................................................................................................. 15

4


Nguyễn Viết Lưu

Thực tập tốt nghiệp

Chương 1: Giới thiệu Công ty Thực tập

Công ty Cổ phần Đầu tư Thế Giới Di Động (MWG) là nền tảng bán lẻ đa ngành nghề số
1 Việt Nam về doanh thu và lợi nhuận.
Với chiến lược omni-channel, Công ty vận hành mạng lưới hàng ngàn cửa hàng trên toàn
quốc song song với việc tận dụng hiểu biết sâu rộng về khách hàng thông qua nền tảng
dữ liệu lớn, năng lực chủ động triển khai các hoạt động hỗ trợ bán lẻ được xây dựng nội
bộ và liên tục đổi mới công nghệ nhằm tạo ra trải nghiệm khách hàng vượt trội và thống
nhất ở mọi kênh cũng như nâng cao sự gắn kết của người tiêu dùng với các thương hiệu

của MWG.
Trong hệ sinh thái của MWG, Công ty TNHH MTV Công Nghệ Thông Tin Thế giới di
động là một phần rất quan trọng giúp cho sự vận hành của cả tập đoàn một cách chặt chẽ.
Nhìn từ góc độ khách hàng là trọng tâm, đem lại lợi ích cho nhà cung cấp và đối tác,
nhân viên, quan sát các phòng ban khác nhau, nhận thấy tại sao họ phải dùng những công
cụ rất phức tạp để quản lý bán hàng, kho… Để thay đổi, phải dùng hệ thống phần mềm,
lõi của nó là ERP, liên thông với các bộ phận: website, App, CRM, hệ thống tổng đài,
quản lý giao nhận, hệ thống hóa đơn, E- Learning, báo cáo tài chính, tính thưởng, quản lý
khách hàng…

5


Nguyễn Viết Lưu

Thực tập tốt nghiệp

Chương 2: Nội dung Thực tập
1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong Công ty:

Thời gian : 1 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
(như đã nhắc đến ở trê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 .
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công
việc…

Kết quả : Hiểu thêm về Tập đồn MWG, 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, làm việc có kế hoạch, có kỷ luật, có trách
nhiệm hơn.

2.

Nghiên cứu kỹ thuật:
2.1.

Các công cụ làm việc:

Thời gian : 1 tuần
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, lead manager đã hướng dẫn thực tập sinh tìm hiểu về các
cơng cụ sẽ giúp ích cho trong cơng việc sau này.
Các công cụ cần thiết trong việc phát triển sản phẩm bao gồm:
- Visual Studio Code: Text editor được sử dụng chính trong q
trình phát triển sản phẩm
- NodeJS, NVM, Yarn: Các công cụ quản lý package
- Git, Gitlab, CI/CD: Công cụ quản lý source code, deploy,
integration
- Xcode, Iphone Simulator, Android Studio, Android Emulator: Các
IDE và máy ảo phục vụ cho việc dev, debug sản phẩm
Thực hiện : Học lý thuyết và ứng dụng các cơng cụ trên
Kết quả : Có thể sử dụng và kết hợp các công cụ kể trên

6


Nguyễn Viết Lưu


2.2.

Thực tập tốt nghiệp

Tìm hiểu ngơn ngữ JavaScript và React Native FrameWork:

Thời gian : 2 tuần
Nội dung :
- Được training về cách sử dụng JavaScript trong việc viết code
- Cách sử dụng một số thư viện, Package của cơng ty viết sẵn và cách sử
dụng nó trong dự án thực tế
Thực hiện :
- Sử dụng JavaScript trong dự án. Commit và được review code bởi lead
manager và các thành viên trong team
Kết quả :
- Có thể sử dụng JavaScript một cách cơ bản
- Có thể ứng dụng thư viện, Package của công ty viết sẵn và cách sử dụng nó
trong dự án thực tế, giúp nâng cao trải nghiệm người dùng

2.3.

Sử dụng React Native Framework:

Nội dung : Các kiến thức cơ bản về React Native để có thể phát triển một ứng
dụng di động cơ bản:
- React Native là gì ?
React native là một cơng cụ giúp chúng ta lập trình đa nền tảng để tạo ra các ứng
dụng trên mơi trường native. Nó là một framework mã nguồn mở được phát triển
bởi Facebook, cho phép bạn sử dụng Java script để phát triển phần mềm trên điện

thoại di động Android và IOS. React native cũng giống như React vậy chúng sử
dụng các native components thay vì các web components. Vì vậy để hiểu về cấu
trúc của React native chúng ta cần phải có các kiến thức cơ bản với các khái niệm
cơ bản của React như là JSX, components, props hay là state.
-

Component:
Components là một khái niệm cơ bản của cả React và React native. Chính việc
chia nhỏ ứng dụng thành các components nhỏ tạo nên tính tái sử dụng cao và khả
năng mở rộng của chúng.
Props
Props là viết tắt của Properties. Một điều mà bạn cần phải nhớ khi sử dụng props
đó là khơng bao giờ nên thay đổi giá trị của nó, hay nói cách khác, đây là một dữ
liệu immutable. Các component nhận props từ component cha. Bạn không được
7


Nguyễn Viết Lưu

Thực tập tốt nghiệp

thay đổi giá trị của props trong các component này mà chỉ được phép đọc giá trị ra
thơi. Trong React thì dữ liệu sẽ đi theo một chiều, có nghĩa là từ component cha
=> các component con.
-

State:
State thì hoạt động khác với Props. State là dữ liệu nội bộ của một Component,
trong khi props là dữ liệu được truyền cho Component. Chính vì vậy chúng ta
hồn tồn có thể thay đổi state, và coi nó là một kiểu dữ liệu mutable. Vì đặc điểm

này nên chúng ta hay sử dụng State để thay đổi dữ liệu của view, binding data lại
view khi có thay đổi. Nhưng chúng ta không dùng this.state để gán lại giá trị thay
đổi cho nó, mà chúng ta sẽ dùng this.setState. Function này sẽ trigger cho class
rằng hãy render lại component và các component con của nó, cịn this.state thì
khơng.

-

React Lifecycle:
Là vòng đời của các Component được sử sụng bên trong ứng dụng của bạn.
Có thể group các phương thức lifecycle ra 3 nhóm, ứng với 4 giai đoạn của
component: Mounting, Updating, Unmounting, Error Handling
● Mounting:
1. constructor
2. static getDerivedStateFromProps()
3. render
4. componentDidMount()
● Updating:
1. static getDerivedStateFromProps()
2.shouldComponentUpdate()
3. render() getSnapshotBeforeUpdate()
4. componentDidUpdate()
● Unmounting:
1. componentWillUnmount()

-

Thực hiện :
Tự học và bổ sung các kiến thức về React Native thông qua internet và dưới sự chỉ
dẫn của live manager cũng như các thành viên trong team.

Kết quả :
Nắm vững cách sử dụng framework React Native và có thể sử dụng trong dự án.

-

8


Nguyễn Viết Lưu

2.4.
-

Phát triển ứng dụng:

Nghiên cứu cách sử dụng và thực hành Setup các công cụ kể trên theo sự hướng
dẫn của Lead Manager và các thành viên trong Team.
Mỗi khi nhận được báo lỗi từ những người sử dụng thực tế, các thành viên trong
Team sẽ nhanh chóng sửa và thay đổi, nâng cấp lên Version mới.

2.5.
-

Thực tập tốt nghiệp

Tham gia các buổi Training kỹ năng mềm:

Problem solving - Critical Thinking
Project management
GitPush management


9


Nguyễn Viết Lưu

2.6.

Thực tập tốt nghiệp

Thực hiện Project:
2.6.1.

Dự án 4KFarm:

2.6.1.1.

Màn hình Trang chủ:

10


Nguyễn Viết Lưu
2.6.1.2.

Thực tập tốt nghiệp
Màn hình Lịch:

11



Nguyễn Viết Lưu
2.6.1.3.

Thực tập tốt nghiệp
Màn hình Chi tiết cơng việc:

12


Nguyễn Viết Lưu
2.6.1.4.

Thực tập tốt nghiệp
Màn hình Menu:

● Cơng việc đã thực hiện:
○ Màn hình Calendar, Profile, Work detail
○ Tích hợp API cho lịch trình làm việc
○ Tích hợp API cho trang cá nhân
○ Tích hợp API và ràng buộc một số Fields trong chi tiết công việc
○ Cải thiện Performance cho App
○ Test một số chức năng thêm xóa sửa
○ Update giao diện của các màn hình theo yêu cầu của Product
● Các kỹ năng đã được học:
○ JavaScript (async, callback, debounce function,...)
○ React (reducers, hooks, ... )
○ Quy trình Agile-Scrum, flow làm việc giữa Product-BackendFrontend
13



Nguyễn Viết Lưu

Thực tập tốt nghiệp

○ Quy trình Test App – Unit Test

3.

Lịch làm việc:
Tháng

Cơng việc

Người hướng
dẫn

Mức
độ
hồn
thành

1

Training học thuật
và kỹ năng

95%

2


Maintain và phát
triển dự án 4KFarm
từ đầu

Anh Nguyễn
Hữu Nghị,
anh Nguyễn
Vĩnh Tuấn

3

Maintain dự án
4KFarm

Nhận xét của người
hướng dẫn

95%

95%

4
5
6

14


Nguyễn Viết Lưu


Thực tập tốt nghiệp

TỔNG KẾT
Sau 6 tháng ở MWG, em đã may mắn được tham gia vào các dự án thực tế (4KFarm) chứ
không chỉ là các project mẫu. Q trình học hỏi và làm việc tại cơng ty dù có hơi áp lực
nhưng đã đem lại cho em rất nhiều kiến thức, tư duy, kinh nghiệm cả về quá trình thực
hiện dự án lẫn trong cách làm việc và giao tiếp.
Chân thành cảm ơn sự giúp đỡ của anh Nghị, anh Tuấn Cũng như các thành viên của
BackBone team, anh Hiền, và công ty đã tạo môi trường và giúp đỡ cho em trong suốt
quá trình thực tập.
Cảm ơn khoa CNPM đã tạo điều kiện cho em hoàn thành bài báo cáo này. Một lần nữa
em xin chân thành cảm ơn ạ !!!

Nguyễn Viết Lưu

15



×