Báo cáo TTDN 19521996 Nguyễn Hữu Phát SE501 N11 PMCL 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 Fullstack với NestJs, React và React Native Công ty thực tập[.]
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
Lập trình Fullstack với NestJs, React và
React Native
Công ty thực tập: Công tyTNHH Playground
Lớp: SE501.N11.PMCL
Sinh viên thực hiện: Nguyễn Hữu Phát – 19521996
TP Hồ Chí Minh, ngày 15 tháng 12 năm 2022
Trang 2NHẬN XÉT
(Của giảng viên)
Trang 3
MỤC LỤC
MỤC LỤC
LỜI NÓI ĐẦU
LỜI CẢM ƠN
Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty Playground
2 Sản phẩm của công ty
Chương 2: Nội dung thực tập
2.1 Hướng dẫn những quy tắc cơ bản khi làm việc nhóm và những quy định của công ty
2.2 Làm quen với React Native
Thực hiện project
2.3 Lịch làm việc
Chương 3: Chi tiết về project
3.1 Giới thiệu về dự án Another Universe
3.2 Chi tiết ứng dụng
TÀI LIỆU THAM KHẢO
TỔNG KẾT
Trang 4LỜI NÓI ĐẦU
Ngày nay điện thoại di động thông minh đã trở thành phần không thể thiếu của nhiều người trong cuộc sống hằng ngày Các thiết bị di động thông minh có một sự tăng trưởng và phát triển mạnh mẽ với sự ra đời liên tục của một loạt các máy tính bảng hiện đại, điện thoại thông minh có tính cạnh tranh cao, do đó thị trường xây dựng các ứng dụng trên các thiết bị này trở nên vô cùng màu mỡ Việc lập trình trên thiết bị di động sẽ trở thành xu hướng mới trong ngành công nghiệp phần mềm Vì vậy, em quyết định chọn lập trình di động làm định hướng cho việc học tập của mình.
Để trở thành lập trình viên ứng dụng di động, em đã đăng ký học các môn như nhập môn lập trình di động, lập trình ứng dụng di động, ngôn ngữ lập trình java, phát triển ứng dụng di động trên thiết bị di động.
Sau ba năm học tập trên trường, em muốn được cọ xát hơn với môi trường làm việc thực tế nên đã quyết định đi làm ở môi trường công ty chuyên nghiệp khi còn ngồi trên giảng đường đại học Vì vậy, em đã ứng tuyển và may mắn được vào Công ty TNHH Playground ở vị trí Fresher mobile developer.
Trang 5LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn tới Công ty TNHH Playground đã tạo điều kiện và học tập tại công ty.
Trong thời gian vừa qua nhờ sự giúp đỡ của các anh trong công ty mà em học hỏi được nhiều từ kiến thức chuyên ngành trong việc phát triển phần mềm, vận hành dự án cho tới những kỹ năng mềm như giao tiếp, làm việc nhóm,…
Đặc biệt cảm ơn anh Bùi Thái Hoàng - mentor chính của em trong giai đoạn đầu mới vào công ty Anh đã hướng dẫn, giúp đỡ cho em về những quy trình cần nắm, các kiến thức nền, cách làm việc với các nhóm và cách giải quyết những khó khăn trong công việc.
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 Hữu Phát TP.HCM, ngày 15 tháng 12 năm 2022
Trang 6DANH MỤC CÁC CỤM TỪ VIẾT TẮT
CD : Client Development
API : Application Programming Interface
BE : Back end
Trang 7Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty Playground
Playground được chính thức thành lập từ ngày 27/04/2021
Lĩnh vực kinh doanh chính là công nghệ thông tin và blockchain Bằng cách phát triển và sản xuất các trò chơi khác nhau và các nhiệm vụ liên quan đến metaverse, NFT game, tiền ảo…
Playground có nhiều chi nhánh tại Mỹ, Hàn Quốc, Singapore và Việt Nam
2 Sản phẩm của công ty
Playground hiện tại đã và đang cung cấp các sản phẩm dịch vụ liên quan đến lĩnh vực blockchain, NFT Đặc biệt phải kể đến các sản phẩm công nghệ như Game, Sàn Swap, DAO, Marketplace, …
Trang 8Chương 2: Nội dung thực tập
Đợt thực tập, được đào tạo lập trình Backend bằng NestJs, lập trình web bằng React và lập trình di động bằng React native Bên cạnh kĩ thuật, sinh viên được tham gia vào dự án với mô hình làm việc Scrum, được rèn luyện kĩ năng mềm như làm việc nhóm theo Scrum, thuyết trình, giao tiếp, sử dụng công cụ quản lý công việc Trello
Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường startup năng động
1 Hướng dẫn những quy tắc cơ bản khi làm việc nhóm và những quy định của công ty
Thời gian : 1 ngày
Nội dung :
- Giới thiệu về hệ thống nhân sự và lịch sử phát triển của công ty
- Hướng dẫn những quy định của công ty và những yêu cầu cơ bản khi làm việc nhóm
- Giới thiệu những dự án hiện tại của công ty và những chính sách của công
ty với nhân viên
Kết quả :
- Hiểu được những khó khăn khi trở thành startup công nghệ
- Hiểu được sứ mệnh và hướng phát triển của công ty
- Hiểu được cách thức làm việc của quy trình chuyên nghiệp
2 Nghiên cứu kỹ thuật
2.1 Làm quen với React Native
Thời gian: 2 tuần.
Nội dung:
- Tìm hiểu các kiến thức cơ bản về React Native và Javascript
- Tìm hiểu về Component, State, Props
- Tìm hiểu về vòng đời của một Component
- Tìm hiểu về Navigation
Trang 9- Tìm hiểu về Redux, Redux Saga.
Kết quả: Nắm được các kiến thức cơ bản về React Native và cách làm một ứng
dụng đơn giản với React Native
2.2 Lập trình BE với NestJs và database Postgres
Thời gian: 2 tuần.
Nội dung:
- Đọc hiểu source code BE
- Viết API cho BE cho tính năng Treasure và advertisement
Kết quả: Nắm được các kiến thức cơ bản về BE
2.3 Tạo module wallet crypto trong app
Thời gian: 2 tuần.
Nội dung:
- Tìm hiểu thư viện Web3js
- Viết module wallet có thể tạo hoặc import wallet
- Tương tác với contract qua Wallet
Kết quả: Đã xây dựng được wallet trong ứng dụng
3 Thực hiện project
Sau thời gian 6 tuần tiếp cận với React native dưới sự chỉ dạy tận tình thông quan các buổi seminar và được tiếp cận với những dự án thực tế Trong thời gian các tuần tiếp theo em đã có thể đóng góp kiến thức của mình để giúp các anh tiếp tục hoàn thành dự án Another Universe với support cho bên BE và bên web
4 Lịch làm việc
hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công ty, cách tổ
chức của công ty.
- Học cách trao đổi, làm việc qua
Anh Hoàng
Trang 10- Làm quen với các công cụ làm
việc trong công ty.
- Tìm hiểu về git và quy trình quản
lý source code của công ty
2
- Tìm hiểu các kiến thức cơ bản
về React Native và Javascript.
- Tìm hiểu về Component, State,
Props.
- Tìm hiểu về vòng đời của một
Component.
- Tìm hiểu về Navigation.
- Tìm hiểu về Redux, Redux
Saga.
Anh Hoàng
3 - Nghiên cứu Threejs để tạo web
tương tác với hành tinh 3d
Anh Hoàng
4
- Support BE build api để quản lý
tính năng Treasure
- Thêm giao diện vào web
Dashboard để quản lý Treasure mình làm
Anh Hoàng
5 - Build bot cronjob ở BE để updatedata dưới BE Anh Hoàng
6
- Support BE build api để quản lý
tính năng Advertisement
- Thêm giao diện vào web
Dashboard để quản lý Advertisement mình làm
Anh Hoàng
7 - Tạo module ví web3 để tương tácvới blockchain từ trong app Anh Hoàng
8 - Thực hiện các giao dịch bằngwallet trong app Anh Hoàng
Trang 11Chương 3: Chi tiết về project
1 Giới thiệu về dự án Another Universe
Another Universe là 1 dự án làm về mảng web3 Ở đó người dùng có thể tương tác với dải ngân hà Người dùng có thể sử dụng crypto để mua các hành tinh là những nft trên marketplace trong app.
Trang 122 Chi tiết ứng dụng
Trang chủ của ứng dụng Another Universe nơi người dùng có thể tương tác
với dải ngân hà
Trang 13Marketplace là nơi người dùng có thể mua ngôi tương ứng với những
NFT cho mình
Trang 14Màn hình chi tiết 1 ngôi sao Màn hình chi tiết 1 ngôi sao, người có thể tương tác với object 3D này Ngôi sao này có Treasure nên người dùng có thể bấm vào rương để xem quảng cáo và nhận
phần thưởng
Trang 15Ví crypto trong ứng dụng
Trang 16Module Treasure API ở BE
Trang 17Màn hình dashboard quản lý treasure
Trang 18TÀI LIỆU THAM KHẢO
React native
https://reactnative.dev/
ReactJS
https://reactjs.org/
NestJS
https://nestjs.com/
Trang 19TỔNG KẾT
Kết quả đạt được:
1 Lý thuyết:
- Sau quá trình thực tập, với những kiến thức cơ bản và được bổ sung thêm khi thực tập tại công ty.
- Ngoài kiến thức về lập trình ứng dụng di động công ty đã bổ sung thêm các kiến thức liên quan đến lập trình web và chia sẻ kiến thức quản trị nhân lực tại công ty.
2 Kỹ năng:
- Về kỹ năng công ty đã truyền đạt những kỹ năng lập trình như cách tổ chức cấu trúc chung của dự án theo mô hình, các tiêu chuẩn khi lập trình và các kỹ năng khi làm việc với các công cụ quản lý mã nguồn.
- Ngoài kỹ năng cứng, công ty đã chia sẻ những kỹ năng mềm như kỹ năng thuyết trình, kỹ năng làm việc nhóm và kỹ năng giao tiếp với đồng nghiệp, khách hàng
3 Kinh nghiệm:
- Kinh nghiệm của bản thân sau khi thực tập được nâng cao với những kinh
nghiệm làm việc theo từng dự án sao cho tối ưu nhất khi bảo trì phần mềm, kinh nghiệm liên quan đến phong cách lập trình dễ đọc dễ hiểu.
- Học tập được nhiều hơn về cách phân bổ thời gian sao cho không làm chậm tiến trình của dự án.
- Với kinh nghiệm của các anh chị khi được làm việc chung đã truyền đạt kinh nghiệm làm việc nhóm sao cho hiệu quả nhất tránh việc không mong muốn xảy ra trong quá trình phát triển phần mềm Khả năng giao tiếp với khách hàng sao cho khách hàng dễ nắm bắt, dễ hiểu