1. Trang chủ
  2. » Tất cả

Đề Tài Xây Dựng Server Với Nodejs - Nestjs.pdf

20 14 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Server Với Nodejs - NestJs
Tác giả Trần Quốc Thắng
Trường học Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Đề Tài Xây Dựng Server Với Nodejs - Nestjs
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 20
Dung lượng 881,11 KB

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

Nội dung

TTDN 19522218 Trần Quốc Thắng SE501 N11 PMCL docx ĐẠ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 THỰC TẬP TỐT NGHIỆP ĐỀ TÀI Xây dựng Server với Nodejs NestJ[.]

Trang 1

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

THỰC TẬP TỐT NGHIỆP

ĐỀ TÀI:

Xây dựng Server với Nodejs - NestJs

Lớp:SE501.N11.PMCL

Sinh viên thực hiện: Trần Quốc Thắng – 19522218

TP Hồ Chí Minh, ngày 15 tháng 11 năm 2022

Trang 2

NHẬN XÉT

(Của giảng viên)

Trang 3

MỤC LỤC

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 7 2.1.1 Tìm hiểu về Nestjs và những framework liên quan 7

1.3.1 Một sô màn hình giao diện hệ thống và màn hình giao diện swagger 11 1.3.2 Màn hình terminal deploy ứng dụng thông qua pm2 13

Trang 4

LỜI NÓI ĐẦU

Ngày nay, ngành công nghiệp phát triển ứng dụng web là một bộ phận không thể thiếu của ngành công nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành phát triển ứng dụng web đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm

Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành công nghiệp phát triển web non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về xây dựng nền tảng web trên thế giới Bên cạnh

sự phát triển của web thì những ngành nghề được tiếp cận người dùng một cách nhanh chóng như những gì ta có thể thấy là mạng xã hội hay những website bán hàng trực tuyến cũng đang rất thịnh hành trên cả thế giới lẫn Việt Nam

Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tìm hiểu, bổ sung kiến thức trong một môi trường chuyên nghiệp,

em có dự định là sẽ thực tập trong học kì Vì vậy, em quyết định chọn Công Ty TNHH Playground - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này

Trang 5

LỜI CẢM ƠN

Em xin chân thành cảm ơn ban giám hiệu và quý thầy cô trường Đại học Công nghệ thông tin đã cung cấp và bồi dưỡng cho em những kiến thức cơ bản trong suốt 4 năm ngồi trên giảng đường đại học, để từ đó em có nền tảng áp dụng vào đợt thực tập một cách hiệu quả nhất có thể

Em xin gửi lời cảm ơn quý Công Ty TNHH Playground đã tạo điều kiện cho em thực tập tại công ty cũng như cung cấp, bổ sung cho em những kiến thức mà em còn thiếu sót Quý công ty đã hỗ trợ em rất nhiều trong suốt thời gian thực tập vừa qua, dạy em những kỹ năng cần thiết, truyền đạt cho em những kinh nghiệm mà các anh chị đã trải qua trong quá trình làm việc, trao đổi với khách hàng, tác phong và tinh thần trách nhiệm trước công việc được giao, những suy nghĩ tích cực Các anh chị cũng đã tạo cho em nhiều điều kiện để ứng dụng những kiến thức đã học vào thực tế để xây dựng những dự

án thực tiễn đi từ lúc ban đầu, nâng cao trình độ, cũng như tốc độ lập trình và trí thức thêm một bậc Em xin chân thành cảm ơn

Vì kiến thức bản thân còn hạn chế cũng như là lần đầu tiên được va chạm và tiếp xúc với thực tế, áp dụng lý thuyết vào công việc nên bản thân còn bỡ ngỡ và lúng túng, không tránh khỏi những thiếu sót, mong quý Thầy (Cô) có thể đóng góp ý kiến để em có thể hoàn thiện hơn

Em xin chân thành cảm ơn!

Trần Quốc Thắng

TP Hồ Chí Minh, ngày 25 tháng 12 năm 2022

Trang 6

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

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

Tên công ty: TNHH Playground

Địa chỉ: Mai Chi Tho Street, District 2, Ho Chi Minh City

Email:contact@playgroundvina.com

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 7

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

Đợt thực tập ứng dụng mô hình làm việc Scrum và sinh viên thực tập được đào tạo

cơ bản về lập trình web sử dụng Nodejs và React, đồng thời rèn luyện những 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 như 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

Ở Playground thực tập sinh có cơ hội được học hỏi công nghệ blockchain được áp dụng và các product của công ty như thế nào Từ đó, thực tập sinh hiểu và biết ứng dụng blockchain phù hợp với mục đích

Ngoài việc học về công nghệ sinh viên còn được hướng dẫn những kỹ năng mềm

về làm việc teamwork, cách sử dụng git và mô hình hoá dữ liệu

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, 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, quá 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

Trang 8

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

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

Thời gian : 4 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ư Gitlab - sử dụng trong làm việc nhóm, VScode - một editor để xây dựng ứng dụng

Thực hiện : Thực hành sử dụng các phần mềm đã nêu 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, so với việc dung các IDE

2.2 Tìm hiểu ngôn ngữ Typescript

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

Nội dung : Ôn tập về các kiến thức javascript căn bản, javascript ES6 ( arrow

functions, async, await, promise, … ) và training về các kỹ thuật của typescript, sự khác nhau của typescript và javascript, sử dụng typescript với framework Express để xây dựng và phát triển server

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

Kết quả :

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

- Có được những kiến thức quan trọng cho việc lập trình server sau này

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

Trang 9

2.3 Tìm hiểu RESTful API và Framework NestJS

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

Nội dung: Các kiến thức cơ bản về RESTfulAPI và NestJS

- Cơ bản về RESTful API

RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource

Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP

- Framework NestJS

NestJS là một framework được xây dựng trên nền tảng của Nodejs

Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile NestJs hỗ trợ các method HTTP và midleware tạo ra API vô cùng mạnh mẽ

và dễ sử dụng.…

Thực hiện :

- Tham gia đầy đủ các buổi trainning

- Tự đọc thêm tài liệu, nghiên cứu thêm về các library, luyện tập thêm về cách cài đặt, sử dụng các library

Kết quả :

- Làm quen, hiểu được kiến trúc cơ bản của các thành phần trong NodeJS, NestJS

- Thành thạo việc cài đặt, config và sử dụng các thư viện cần dùng cho project

2.4 Tìm hiểu MongoDB

Nội dung : Các kỹ thuật cơ bản trong mongodb

Trang 10

- Định nghĩa về MongoDB:

MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng MongoDB được viết bằng C++ Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng

- Sử dụng thư viện mongoose hỗ trợ thao tác với mongodb

Mongoose là một thư viện JavaScript cho phép bạn định nghĩa các schema với dữ liệu được định kiểu rõ ràng Khi một schema được định nghĩa, Mongoose cho phép bạn tạo một Model dựa trên một schema cụ thể Model của Mongoose sau đó được ánh xạ tới một MongoDB document thông qua định nghĩa schema của Model

Thực hiện :

- Tham gia đầy đủ các buổi training

- Xây dựng model và các api thực thi transaction trên các model

Kết quả:

- Đã có thể xây dựng model của hệ thống, thực thi các transaction trên các model thông qua API

3 Thực hiện project

Sau thời gian 3 tuần tiếp cận với javascript 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ế Các anh đã giúp em nhận ra hướng phát triển và môi trường thích hợp với bản thân là server-side

Trong thời gian 3 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 PoolsMall với vị trí back-end

Trang 11

4 Lịch làm việc

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

- Học cách trao đổi, làm việc qua email

2

- Học tập ôn lại các kiến thức cũ, nắm chắc những gì cơ bản đã học

- Tìm hiểu, ôn tập về Typescript, NodeJS, NestJS

3 - Tìm hiểu về MongoDB, sử dụng thư việnmongoose để làm việc với mongoDB. Anh Tân 100%

4

- Cấu trúc source code

- Tìm hiểu, nắm bắt thông tin dự án

- Tìm hiểu các quy trình của ứng dụng PoolsMall chuẩn bị triển khai

5

- Thực hiện các chức năng đăng nhập, đăng

kí, xác thực thông qua email

- Xây dựng model tổng quan về authencation

6 - Xây dựng service xác thực người dùng theocơ chế token Anh Tân 100%

7

- Xây dựng các chức năng xác thực KYC của người dùng

- Các api liên quan đến thông tin của người dùng

8

- Set up server AWS EC2

- Tìm hiểu PM2, Nginx và config ecosystem file của pm2

9 trở đi

- Phân tích chức năng của hệ thống theo nhu cầu của anh Nguyễn Vĩnh Khiêm

- Xây dựng các model của ứng dụng

- Xây dựng các API

- Viết document và Swageer

Trang 12

Chương 3: Chi tiết về project

Theo quy chế đối với thực tập sinh, trích dẫn:

Điều 5: Bảo mật thông tin

- Phần a.Thông tin của khách hàng: … Bảo mật thông tin khách hàng ( họ tên, địa chỉ, điện thoại, sản phẩm, doanh thu, dữ liệu, …)

- Phần b.Thông tin của công ty: … Đảm bảo an toàn thông tin về sản phẩm, dự án đang trong giai đoạn kế hoạch, phát triển sản phẩm hoặc chưa được phép công bố Nên phần này sẽ mô tả giới hạn về quá trình thực tập

1 Giới thiệu về PoolsMall

1.1 Giới thiệu

PoolsMall là ứng dụng thương mại điện tử theo hình thức B2C kết hợp với mall từ đối tác hoặc sở hữu của công ty Ứng dụng cho phép người dùng giao dịch trực tiếp thông qua ứng dụng dưới sự kiểm duyệt sản phẩm từ cửa hàng và các chuyên gia kiểm định nhằm đem lại sản phẩm đúng và an toàn với người mua và người bán

1.2 Chi tiết ứng dụng

Ứng dụng được xây dựng bằng ReactJs, server sử dụng NodeJS với mục đích tiết kiệm chi phí khi phát triển ứng dụng

Các công nghệ sử dụng trong dự án:

- Mongoose: Mongoose là một framework JavaScript thường được sử dụng trong ứng dụng Node.js với database là MongoDB

- Jsonwebtoken: JSON Web Token (JWT) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách thức truyền tin an toàn giữa các thành viên bằng 1 đối tượng JSON Thông tin này có thể được xác thực và đánh dấu tin cậy nhờ vào “chữ ký” của nó Phần chữ ký của JWT sẽ được

mã hóa lại bằng HMAC hoặc RSA

Trang 13

- Web3: thư viện cung cấp những hàm để tương tác với blockchain

- Nodemailer là một mô-đun dành cho các ứng dụng Node.js để cho phép gửi email dễ dàng như bánh ngọt Dự án đã bắt đầu trở lại vào năm 2010 khi không có tùy chọn lành mạnh nào để gửi email, ngày nay nó là giải pháp mà hầu hết người dùng Node.js chuyển sang theo mặc định

- Swagger-ui-express: Swagger UI là một tool cho phép bất kỳ ai - từ developers cho đến end users - có thể hình dung và tương tác với các tài nguyên API của dự án Tool này sẽ tự động generates ra API documents từ file config Swagger, với cái nhìn trực quan và việc triển khai trở nên dễ dàng hơn cho phía client

- PM2: pm2 là một trình quản lý các process (tiến trình) dành cho các ứng dụng Nodejs Nó được viết bằng chính Nodejs và Shell PM2 cũng được tích hợp bộ cân bằng tải (load balancer) Bạn có thể giữ cho các process của server còn sống và reload/restart với zero downtime

- Nginx: là một phần mềm web server mã nguồn mở nỗi tiếng Ban đầu nó dùng để phục vụ web HTTP Tuy nhiên, ngày nay nó cũng được dùng làm reverse proxy, HTTP load balancer và email proxy như IMAP, POP3, và SMTP

Trang 14

1.3 Một số giao diện

1.3.1 Một sô màn hình giao diện hệ thống và màn hình giao diện swagger

Trang 16

1.3.2 Màn hình terminal deploy ứng dụng thông qua pm2

Màn hình login vào server

Màn hình log các thông tin khi ứng dụng chạy

Trang 17

1.3.3 Màn hình Order Product

Màn hình order product

Trang 18

Màn hình thanh toán order

1.3.4 Màn hình giao hàng

Màn hình giao hàng

Trang 19

2 Thực hiện

4 thành viên của team fresher Playground:

- Trần Quốc Thắng

- Hoàng Quốc Vương

- Hoàng Ngọc Hiếu

- Nguyễn Văn Vũ

Và sự giúp đỡ tận tình của team trainer Playground

TÀI LIỆU THAM KHẢO

Mongodb

https://mongodb.com

Packages

https://npmjs.com

Typescript

https://www.typescriptlang.org/

https://topdev.vn/blog/hoc-typescript-trong-30-phut/

https://viblo.asia/p/tim-hieu-typescript-va-kien-thuc-co-ban-PmeRQpnyGoB

pm2

https://pm2.keymetrics.io/

nginx

https://www.nginx.com/

Trang 20

TỔNG KẾT

Sau 8 tháng thực tập tại công ty, em đã học được rất nhiều đều, không chỉ kiến thức riêng về lập trình mà còn về quy chuẩn làm việc tại công ty, để biết được rằng hiện tại những doanh nghiệp đang làm việc như thế nào, phối hợp nhân lực ra sao

Hơn nữa, em còn được tiếp thu những kinh nghiệp quý báu từ các anh chị và đồng nghiệp, góp phần giúp em hoàn thiện kiến thức, kỹ năng của mình và đạt được một số thành công nhất định trong quá trình thực tập tại công ty

Về tư tưởng của bản thân, em biết được làm sao để trở thành một lập trình viên, các những lập trình viên khác giải quyết vấn đề, về nghề nghiệp sẽ làm trong tương lai, định hướng nghề nghiệp

Ngày đăng: 01/02/2023, 21:18

TỪ KHÓA LIÊN QUAN

w