1. Trang chủ
  2. » Cao đẳng - Đại học

báo cáo thực tập FULLSTACK NESTJS REACTJS

24 47 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 8,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc biệt, lời cảm ơn sâu sắc của em xin gửi tới công ty cổ phần Acexis, công ty đã tạođiều kiện cho em được thực tập và tham gia vào hoạt động của công ty để có thêm kiến thứccũng nh

Trang 1

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

FULLSTACK NESTJS & REACTJS

TP Hồ Chí Minh, tháng 07 năm 2020

Trang 2

Trong thời đại công nghệ số hiện nay thì các ngôn ngữ lập trình Web chính là nền tảng

và chìa khóa của mọi hoạt động Một số ngôn ngữ lập trình web đã đời từ rất lâu, lúc đầu chỉ

là xây dựng những website thông tin cơ bản ở dạng văn bản cho cá nhân và doanh nghiệp.Với sự phát triển của khoa học kỹ thuật và nhu cầu ngày càng tăng những trang web đượchình thành với sự tương tác cao Theo thời gian nhiều công nghệ xây dựng website lần lượt rađời gần như hoàn hảo

Javascript đã và đang dần trở nên phổ biến, đi kèm với nó là rất nhiều sự thay đổi, khiến cho

bộ mặt của ngành phát triển web trở nên lung linh hơn Javascript bây giờ đã xuất hiện trên cảserver-side và cả mobile app, cùng với sức mạnh của nó ở client-side vốn dĩ đã rất mạnh mẽ,tạo nên một xu hướng mới, trào lưu mới trong lập trình

Việc phát triển Web đã có bước thay đổi đáng kể trong vài năm qua ReactJs và NestJs là mộttrong những mã nguồn mở mạnh mẽ có thể giúp lập trình viên mới tiếp cận nắm bắt được ýtưởng và dễ dàng phát triển được một website hoàn chỉnh Công ty cổ phần Acexis là công tychuyên về giải pháp công nghệ thông tin ứng dụng cho lĩnh vực Tự động hóa và Y tế Vớimong muốn được đóng góp sức mình, sử dụng kiến thức đã học để phục vụ cuộc sống, đónggóp cho lĩnh vực y tế Việt Nam nên em đã quyết định thử sức và gắn bó tại công ty cổ phầnAcexis

Trang 3

LỜI CẢM ƠN

Để hoàn thành được đồ án này, trước tiên, em xin gửi lời cảm ơn chân thành đến toànthể giảng viên Trường Đại học Công nghệ Thông tin nói chung, các thầy cô trong Khoa Côngnghệ Phần mềm nói riêng đã tận tâm truyền đạt kiến thức, kinh nghiệm, chỉ dạy tận tình chochúng em từ những ngày đầu bước chân vào trường

Đặc biệt, lời cảm ơn sâu sắc của em xin gửi tới công ty cổ phần Acexis, công ty đã tạođiều kiện cho em được thực tập và tham gia vào hoạt động của công ty để có thêm kiến thứccũng như hoàn thành tốt được chương trình thực tập và em cũng xin cảm ơn tới anh TrầnTùng Dương, người đã đồng hành cùng em trong suốt kỳ thực tập qua Được sự hướng dẫntrực tiếp của anh cùng với sự tận tâm chỉ bảo, luôn theo sát và hỗ trợ hết lòng, gắn bó trongtừng chặng đường nhỏ trong khoảng thời gian này để giúp cho em hoàn thành tốt đồ án lầnnày

Cuối cùng, em cũng gửi lời cảm ơn tới thầy cô, anh chị, bạn bè trong Khoa Công nghệPhần mềm đã nhiệt tình hướng dẫn, góp ý về những thiếu sót cũng như chia sẻ những kinhnghiệm, tài liệu trong quá trình làm đồ án này cũng như trong suốt thời gian em học tập tạitrường

Đặng Minh Tiến

TP HCM, ngày 25 tháng 7 năm 2020

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

MỤC LỤC 5

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

1 Giới thiệu công ty 7

2 Sản phẩm công ty 7

Chương 2: Nội dung thực tập 8

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

2 Nghiên cứu kỹ thuật 8

i Các công cụ làm việc 8

ii Tìm hiểu về javascript, html, css cơ bản 9

iii Rèn luyện tư duy giải thuật 9

iv Phát triển backend bằng nestjs 10

v Sử dụng API graphql kết hợp nestjs để xây dựng ứng dụng backend với cơ sở dữ liệu MongoDB 11

vi Phát triển frontend bằng reactjs và các thư viện hỗ trợ 11

3 Thực hiện project 11

4 Lịch làm việc 13

Chương 3: Chi tiết project 15

1 Giới thiệu về project 15

2 Thực hiện 15

2.1 Quản lý chi nhánh 16

vii Chức năng quản lý đơn vị cung cấp phần cơm 17

viii Chức năng quản lý món ăn 18

ix Chức năng quản lý thực đơn 18

x Chức năng đặt cơm 21

3 Kế hoạch 21

TÀI LIỆU THAM KHẢO 23

TỔNG KẾT 24

Trang 7

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

1 Giới thiệu công ty

Acexis là một công ty tư vấn chuyển đổi phần mềm, phần cứng và chuyển đổi kỹthuật số có trụ sở tại thành phố Hồ Chí Minh, Đà Nẵng và Nha Trang

Công ty cổ phần Acexis được thành lập vào năm 2018 với tư cách là một nhóm cácchuyên gia, nhà tích hợp hệ thống và là nhà phát triển ứng dụng đa ngành, Acexis hiện

là một nhóm chuyên gia về di động, web, dữ liệu và hệ thống nhúng với kinh nghiệmsâu rộng về thị trường phát triển phần mềm kinh doanh Là đối tác đáng tin cậy chocác công ty SME và MNC Việt Nam Acexis là công ty chuyên về giải pháp công nghệthông tin ứng dụng cho lĩnh vực Tự động hóa và Y tế

2 Sản phẩm công ty

Phần mềm quản lý nhà thuốc INRX: Giải pháp quản lý phân phối và bán hàng cho các

công ty dược phẩm

Phần mềm MD Conference: Giải pháp họp, tổ chức hội nghị trực tuyến.

Phần mềm HRM: Quản lý nhân sự, KPI, tính lương doanh nghiệp

Giải pháp nhà thông minh

SPIROMETER & ACESPIRO APP: Giải pháp theo dõi sức khỏe, phổi của bạn được

quản lý thông qua ứng dụng di động

Máy đo huyết áp

Máy đo độ ẩm và nhiệt độ kỹ thuật số

Cùng các sản phẩm giải pháp khác đang được công ty phát triển …

Trang 8

Chương 2: Nội dung thực tập

Đợt thực tập nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lậptrình web fullstack dựa trên nestjs và reactjs, đồng thời rèn luyện những kỹ năng mềm nhưlàm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khámphá và làm việc trong một môi trường phát triển phần mềm chuyên nghiệ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.

Ngoà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 từ 8h30 sáng đến 18h từ thứ 2 đến thứ 6, 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ề công ty Acexis, tầm nhìn nhìn sứ mệnh phát triển của

công ty 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

Thời gian: 2 ngày

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, supervisor đã 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 Một số phần mềm trong

số đó như VSCode – là một IDE phổ biến với lập trình viên Gitlab - công cụ

Trang 9

quản lý code Hệ điều hành ubuntu – giúp xác thực nhanh bằng ssh key và hỗ trợ tốt nhất cho công việc.

Thực hiện: Thực hành sử dụng các công cụ trên.

Kết quả: Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các

công cụ với nhau, sử dụng thành thạo gitlab và hệ điều hành ubuntu.

Thời gian: 10 ngày (2 tuần)

Nội dung: Được training về javascript, html, css cơ bản, những kiến thức quan

trọng cho việc phát triển giao diện website đồng thời rèn luyện được ngôn ngữ JS

- Học các thẻ, cấu trúc của một trang HTML

- Biết cách sử dụng CSS để làm đẹp giao diện

- Học cú pháp JS cơ bản

- Các kiến thức cơ bản về cú pháp, chức năng các lệnh trong javascript Nắmđược cách sử dụng map, foreach, filter, sort, reduce…

- Học các khóa training tại freecodecamp

- Hoàn thành các project trong 30 day vanilla js coding challenge

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

- Thực hiện bài test 2 tuần với kết quả 19/20đ (Sử dụng js, html, css thuần để giảiquyết các bài toán, game trong 1 ngày)

Kết quả:

- Nâng cao kỹ năng lập trình với ngôn ngữ javascript

- Có được những kiến thức quan trọng để bắt đầu học nestjs và reactjs

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu

Thời gian: 10 ngày (2 tuần)

Nội dung: Sử dụng javascript để rèn luyện giải thuật và kỹ năng code

- Thực tập sinh được rèn luyện giải thuật và kỹ năng code tại codesignal

- Sử dụng thành thạo map, foreach, filter, sort, reduce…

- Áp dụng được các giải thuật: đồ thị, xử lý bit, regex, quay lui, cây…

Trang 10

- Tham gia đầy đủ các buổi training của công ty.

- Làm các bài thực hành, kiểm tra về kiến thức đã học

- Được hệ thống chấm điểm trực tuyến và được review bởi người hướng dẫn trựctiếp hằng ngày

Kết quả:

- Nâng cao kỹ năng lập trình với ngôn ngữ javascript

- Rèn luyện và nâng cao được tư duy giải thuật

- Rèn luyện kỹ năng vấn đáp giải thuật với người hướng dẫn

Thời gian: 2 ngày

Nội dung: Tìm hiểu và sử dụng nestjs

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành về nestjs đơn giản để biết cách ứng dụng

Kết quả:

- Hiểu biết được nestjs là gì, có thể triển khai đơn giản về một ví dụ nestjs

Trang 11

v Sử dụng API graphql kết hợp nestjs để xây dựng ứng dụng backend với cơ sở dữ liệu MongoDB

Thời gian: 3 ngày

Nội dung:

- Tìm hiểu về graphql và biết cách triển khai graphql trong nestjs

- Nắm được ý tưởng và cách sử dụng jsonwebtoken để authenticate

- Hiểu về tiêu chí của một ứng dụng sử dụng NoSQL

- Biết cách sử dụng MongoDB và TypeORM để hỗ trợ tốt nhất

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành CRUD cơ bản theo bộ tài liệu training của công ty vềGraphQL

Kết quả:

- Hiểu về graphql, so sánh được mức độ tiện lợi của graphql so với API restful

- Biết cách biết backend nestjs và sử dụng GraphQL

Thời gian: 5 ngày (1 tuần)

Nội dung: Tìm hiểu về reactjs, thực hành xây dựng app CRUD đơn giản ứng dụng

graphql và các thư viện hỗ trợ của nestjs

- Biết cách cài đặt một dự án ReactJs mới

- Sử dụng thư viện Ant Design

- Hiểu và nắm rõ được vòng đời component trong ReactJs

- Hiểu về router trong ReactJs

- Tích hợp được Apolo Client, HOC trong reactjs để sử dụng API GraphQL

- Biết sử dụng i18n để triển khai app đa ngôn ngữ

- Biết cách sử dụng các công cụ react tools để quản lý hiệu suất ứng dụng tốt hơn

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

Kết quả:

- Đạt được các mục tiêu đặt ra như trên

- Có đủ kiến thức để tự phát triển một website hoàn chỉnh

3 Thực hiện project

Sau một tháng rưỡi được training từ cơ bản như HTML, CSS, Javascript thuần, trảiqua các bài test đánh giá khả năng, cho đến được rèn luyện tư duy giải thuật và đượctraining công nghệ chính để phục vụ công việc như ReactJS, NestJs kết hợp GraphQL

Trang 12

hiện một project về phần mềm đặt cơm cho doanh nghiệp sử dụng các công nghệ nóitrên để thực hiện.

Đây là project cuối cùng của khóa training và sát với công việc thực tế, mỗi thực tậpsinh sẽ được cung cấp tài liệu phân tích, được Leader của Project LunchApp (đang sửdụng thực tế trong công ty) theo dõi và đánh giá kết thực tập sinh

Toàn bộ kết quả làm bài của thực tập sinh sẽ được chạy qua cypress test để kiểm tratính đúng đắn

Chi tiết Project sẽ được nói ở phần sau

Trang 13

4 Lịch làm việc

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

- Làm quen với các công

cụ làm việc trong công ty

Anh Trần Tùng Dương (Trưởng phòngcông nghệ)

Hoàn thànhtốt

Nắm vững được cácyêu cầu được giao

Biết cách sử dụng

JS, HTML, CSS cănbản

Hoàn thànhtốt

Hoàn thành tốt cácproject training cănbản

3, 4 - Rèn luyện tư duy giải

thuật tại codesignal

- Báo cáo kết quả hằng

ngày và được review bởi

sếp

Anh Trần Tùng Dương

Hoàn thànhtốt

Hoàn thành tốt cácproblem trên codesignal

Hoàn thànhtốt

Học công nghệ mớinhanh

Nắm được các yêucầu cơ bản

Trang 14

reactjs và các thư viện hỗ

trợ

Chin Chin tốt được vòng đời, các

triển khai cáccomponent

Sử dụng tốt các thưviện

7 - Thực hiện project thực

tập sau kết thúc training

Anh Trịnh Chin ChinAnh Trần Tùng Dương

Hoàn thànhtốt

Hoàn thành projectnhanh, kỹ và đạtđiểm đánh giá tốt

Hoàn thànhtốt

Đạt kết quả test 15/20 (frontend +backend) xếp hạng 2/17 người tham gia

Trang 15

Chương 3: Chi tiết project

1 Giới thiệu về project

Phần mềm được chọn trong project thực tập lần này là “Phần mềm đặt cơmLunchApp”

Tại doanh nghiệp, do nhu cầu phục vụ cơm trưa hằng ngày cho nhân viên mà các công

ty cần biết được số lượng phần cơm và món ăn gì, để tiến hành đặt hàng ở đơn vị phục vụcơm Công ty cổ phần Acexis là một trong những doanh nghiệp như vậy Với 3 chi nhánhlàm việc tại Đà Nẵng, Nha Trang, TP Hồ Chí Minh, bộ phận quản lý có nhu cầu xây dựngphần mềm đặt cơm cho toàn bộ công ty, dễ tính toán, thống kê, và thuận tiện làm việc vớiđơn vị cung cấp phần cơm

Tuy nhiên ở mức độ phần mềm dành cho việc kiểm tra kỹ năng của thực tập sinh Nênchỉ thực hiện các yêu cầu chức năng như: Quản lý chi nhánh, quản lý món ăn, quản lýthực đơn, quản lý đơn vị cung cấp thức ăn, quản lý đặt cơm dành cho nhân viên (có sửdụng công nghệ pubsub realtime data)

2 Thực hiện

Mỗi thực tập sinh sẽ cùng thực hiện một đề tài gồm đầy đủ các chức năng như trên để

dễ dàng có được những đánh giá phản ánh đúng nhất về kỹ năng của thực tập sinh tích lũyđược

Sau khi hoàn thành project, sản phẩm của thực tập sinh sẽ được review, chấm testcypress và được so sánh với bản LunchApp chính thức đang được sử dụng của công ty.Dưới đây là các kết quả đạt được do em hoàn thiện sản phẩm:

Trang 16

2.1 Quản lý chi nhánh

- Mô tả: Đây là chức năng cho phép thêm, xóa, sửa và xem thông tin các chi

nhánh của doanh nghiệp

Trang 17

vii Chức năng quản lý đơn vị cung cấp phần cơm

- Mô tả: Đây là chức năng cho phép thêm, xóa, sửa và xem thông tin nhà cung cấp

thực phẩm Ở TP Hồ Chí Minh một doanh nghiệp có thể có nhiều chi nhánh tại khuvực này, Chính vì thế chức năng này cho phép gán nhà cung cấp với cả 1 hoặc nhiềuchi nhánh

- Đây là nội dung kiểm tra thực tập sinh có thể xây dựng được chức năng sử dụngmối quan hệ 1-N hay không

Trang 18

viii Chức năng quản lý món ăn

- Mô tả: Chức năng quản lý món ăn của một nhà cung cấp thực phẩm.

ix Chức năng quản lý thực đơn

Trang 19

- Người quản lý có thể chọn shop cơm cho từng site và có thể giới hạn được khảnăng đáp ứng số lượng tối đa của một món ăn.

- Ở Cùng một thời điểm, mỗi chi nhánh chỉ được công khai 1 menu duy nhất

- Khi người quản lý công khai một menu, nhân viên có thể tiến hành đặt cơm vàngười quản lý muốn chốt số lượng phần cơm sẽ khóa menu (những người dùng khácsẽ không thể cập nhật nữa) và tiến hành xuất báo cáo để gửi sang đơn vị cung cấp

(Hình ảnh: Menu được công khai sẽ được kí hiệu bằng dấu tick)

Trang 20

(Hình ảnh: Menu chưa công khai, có thể điều chỉnh số lượng tối đa các món ăn)

Trang 21

(Hình ảnh: Menu đã công khai và không thể điều chỉnh gì nữa)

x Chức năng đặt cơm

- Mô tả: Đây là chức năng đặt cơm có sử dụng kỹ thật realtime data để dữ liệu được

truyền tải thời gian thực, người dùng có thể theo dõi số lượng món ăn còn lại dễ dàng để cóthể chọn

- Đây là task kiểm tra kỹ năng thực tập sinh có nắm được kỹ năng làm ứng dụng realtimedata hay không Và cũng là chức năng có mối quan hệ N-N giữa các entity

3 Kế hoạch

Theo kế hoạch project này được làm trong khoảng 1 tuần rưỡi, tuy nhiên với tốc độtrung bình, em có thể hoàn thành 5 chức năng trong vòng 1 tuần bao gồm cả việc fix cácbug và vượt qua các test cypress trong lần đầu tiên chấm

Dưới đây là kết quả review của người phụ trách project sau khi đánh giá tổng quan cácbạn thực tập sinh

Ngày đăng: 05/09/2021, 20:58

TỪ KHÓA LIÊN QUAN

w