1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập lập trình backend với nestjs

33 0 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 đề Lập trình Backend với NestJS
Tác giả Nguyễn Thái Tuấn
Người hướng dẫn Dương Văn Khương, Hoàng Minh Châu, Đinh Nguyễn Yến Nhi, Nguyễn Anh Duy
Trường học Trường Đại học Công nghệ thông tin
Chuyên ngành Công nghệ phần mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 33
Dung lượng 284,14 KB

Cấu trúc

  • Chương 1: GIỚI THIỆU CÔNG TY THỰC TẬP (8)
  • ng 2: NỘI DUNG THỰC TẬP (0)
    • 2.3.1 Công nghệ ..............................................................................................20 2.3.2 Mô tả dự án ............................................................................................20 2.3.3 Kết quả (19)
    • 2.4.1 Mô tả quá trình thực hiện.......................................................................28 2.4.2 Kết quả...................................................................................................31 2.4.3 Thuận lợi................................................................................................31 2.4.4 Khó khăn................................................................................................31 Chương 3: TỔNG KẾT (26)
  • TÀI LIỆU THAM KHẢO (32)

Nội dung

TP.HCM và các thầy cô là giảng viên của khoa Công nghệ phần mềm đã tạo điều kiện để em hoàn thành khóa thực tập ngắn hạn tại doanh nghiệp và quan trọng hơn hết là nền tảng kiến thức cơ b

GIỚI THIỆU CÔNG TY THỰC TẬP

Hình 1 1 Logo công ty thực tập

Bảng 1 1 Tổng quan thông tin về công ty

Tên công ty Vitalify Á Châu (Vitalify Asia)

Thành lập 2008 Địa chỉ 224A - 224B Điện Biên Phủ, phường Võ Thị Sáu, quận

3, thành phố Hồ Chí Minh.

Quy mô nhân sự Trên 200

Trang web https://www.vitalify.asia/ Điện thoại +84 (028) 3932 6293

Vitalify Á Châu được thành lập vào năm 2008, là một công ty outsourcing Nhật Bản tại Việt Nam tập trung vào mảng phát triển phần mềm trên ứng dụng di động với sứ mạng

“Đưa những giá trị hạnh phúc thông qua internet” (Delivering Happiness through the Internet)

Vitalify Á Châu có mục tiêu trở thành một công ty chuyên nghiệp có thể đảm nhận các dự án mang tầm vóc quốc tế Chính sách phát triển của công ty đó là: mỗi nhân sự từ kỹ sư, quản lý,… có trách nhiệm mở rộng vai trò và phạm vi công việc, tinh thần trách nhiệm của chính bản thân để mang lại giá trị cho người dùng với cấu trúc tổ chức phân thành các nhóm nhỏ ưu tú.

9 Sau hơn 10 năm thành lập, Vitalify Á Châu bước vào một giai đoạn thử thách mới nhằm nâng cao hơn nữa giá trị kỹ thuật của công ty tại Việt Nam Mục tiêu sẽ phát triển 10 dịch vụ thu hút 100.000 user vào năm 2025

1.2.1 Niko niko (Hệ thống HRM)

Hình 1 2 Giới thiệu sản phẩm Niko gồm Web, App

NikoNiko là hệ thống chấm công cho mô hình doanh nghiệp kết hợp tại chỗ và làm từ xa Niko cung cấp cách chấm công đơn giản không phụ thuộc địa điểm và thời gian

Niko bao gồm các tính năng chính:

• Ghi nhận và số hóa cảm xúc nhân viên

• Quản lí user role, layer, report line, …

• Cài đặt ngày nghỉ phép

Hình 1 3 Tính năng thống kê số hóa cảm xúc nhân viên

Hình 1 4 Các bước check-in bằng app

Niko tập trung số hóa cảm xúc nhân viên theo từng bộ phân, vị trí, dự án, thâm niên, …

Hình 1 5 Nhập/xuất dữ liệu qua CSV

Dễ dàng nhập liệu và xuất liệu thông qua CSV

Hệ thống là mô hình dịch vụ SaaS được phân phối bán giữa các doanh nghiệp với doanh nghiệp với nhau và tính phí dịch vụ dựa trên các tính năng và số lượng thành viên trong một công ty

Hiện nay, hệ thống Niko đã có khách hàng, cả khách hàng bên ngoài và khách hàng nội bộ Có khả năng chịu tải 10.000 người dùng.

Nền tảng trực tuyến gia sư dạy tiếng anh chuyên sâu Native Camp là một trong những nền tảng trường học tiếng anh lớn nhất tại Nhật Bản Native Camp giúp người dùng học tập tiếng Anh với tất cả 4 kỹ năng: nghe, nói, đọc, viết ngoài ra còn có các chức năng đánh giá, kiểm tra khả năng tiếng Anh, học trực tiếp với giáo viên hoặc thông qua các tài nguyên có sẵn.

1.2.3 Các sản phẩm ứng dụng game (Unity)

Hình 1 7 Các dòng sản phẩm game được viết bằng Unity trên AppStore

Vitalify Asia phát triển nhiều tựa game giải trí trên thiết bị di động với lối chơi đơn giản. Một số trong đó có sử dụng công nghệ AR tăng cường thực tế ảo như game Zombie Doors AR,

Lịch làm việc thực tập tại công ty

Khoảng thời gian thực tập

Bắt đầu bắt đầu từ ngày 03/07/2023 đến hết ngày 31/10/2023 (17 tuần) Thời gian thực tập là từ thứ 2 hai đến thứ 6 hàng tuần.

Thời gian làm việc trong ngày

Công việc hàng ngày bắt đầu từ lúc 8h35 phút sáng và kết thúc vào 17h35 phút chiều.

Thời gian nghỉ trưa là 65 phút, từ 11h55 đến 13h.

Báo cáo công việc hàng ngày

Sau mỗi ngày làm, vào 5h15 phút em sẽ báo cáo tiến độ công việc chi chị quản lí Nội dung báo cáo bao gồm: công việc hôm nay đã làm kèm số thời gian thực hiện, có gặp vấn đề không thể giải quyết trong quá trình thực hiện, kế hoạch thực hiện công việc cho ngày kế tiếp, dự kiến làm thêm thời gian để hoàn thành công việc.

Daily meeting Vào mỗi sáng vào lúc 9h hàng ngày sẽ tổ chức Daily meeting trong 30 phút Chị quản lý sẽ đánh giá tiến độ công việc của từng thành viên và giao công việc mới nếu hoàn thành ở ngày trước đó, các thành viên trong team nếu có khó khăn thì sẽ nói trực tiếp để đưa ra hướng giải quyết.

Sprint planning Vào 14h chiều thứ 2 hàng tuần sẽ tổ chức một buổi planning cho tuần tiếp theo Nội dung buổi planning này sẽ diễn ra trong khoảng từ 30-60 phút, sẽ tổng kết lại những công việc còn tồn đọng lại và một số công việc được cấp trên giao phó xuống Chị quản lí sẽ giao công việc cho những thành viên và mỗi thành viên sẽ tìm giải pháp cho task, ước tính thời gian thực hiện công việc.

Weekly review Vào 15h chiều thứ 6 hàng tuần sẽ tổng kết những gì đã làm được và những gì chưa làm được, mọi người chia sẽ những khó khăn đã gặp phải Chị quản lí tổng kết và báo cáo tiến độ đến cấp trên.

Hoàn toàn bằng tiếng Việt

Chương 2: NỘI DUNG THỰC TẬP

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

Nội dung: Giới thiệu về công ty, cơ cấu tổ chức phòng ban của công ty, cách chấm công, tính lương, quyền lợi và văn hoá làm việc của công ty

• Thực tập sinh được tập trung tại sảnh chính của công ty và lắng nghe từng thành viên trong ban quản lý công ty lần lượt chia sẻ, giới thiệu về công ty, quá trình thành lập, phát triển, tầm nhìn chiến lược của công ty, 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

• Giới thiệu vị trí các phòng ban công ty, quy định gửi xe, các tiện ích, giới thiệu người hướng dẫn trong suốt quá trình thực tập

• Sinh viên được giới thiệu về các lab mà công ty hiện có, cách thức làm việc của từng lab và vai trò, technical chính mà các lab đảm nhận Sinh viên được giải thích kĩ hơn về cách thức phân đội nhóm dự án, cách thức tiếp nhận dự án của đội nhóm, cách tiếp nhận và giải quyết các task nhiệm vụ và báo cáo hàng ngày

• Trong thời gian này, sinh viên được công ty đánh giá sơ lược về khả năng để chuyển về các lab phù hợp với năng lực Sinh viên được cấp quyền truy cập các tài nguyên nội bộ, chỉ dẫn của công ty, email domain riêng để tương tác với hệ thống của khách hàng

NỘI DUNG THỰC TẬP

Công nghệ 20 2.3.2 Mô tả dự án 20 2.3.3 Kết quả

• Backend: NestJS framework, Typescript, Docker

• DevOps: AWS, S3, ECR, Code build, ELB, ECS, DynamoDB •

Dự án cá nhân được em thực hiện trong vòng 3 tuần (10/07/2023 đến 30/07/2023) sau khi thực hiện đọc source code dự án thực tế được tuần đầu tiên Mục tiêu anh hướng dẫn là làm quen với framework NestJS, RestfulAPI, E2E test, Unit test, viết tài liệu cho API, tạo cơ sở dữ liệu với DynamoDB, làm quen với AWS bằng cách cài đặt CI/CD với đoạn code trên

Các nội dung của API chỉ xoay quanh xác thực người dùng, thêm xóa sửa bảng User Nhưng sẽ bao phủ các kỹ năng mà Backend cơ bản cần có

Ngoài ra các còn phải tuân thủ quy tắt tên biến, tên file, không được commit code vào nhánh master phải tạo PR, …

Bảng 2 2 Bảng công việc thực hiện dự án cá nhân

Tuần Task Chi tiết Thời hạn

Khởi tạo source code - Khởi tạo source NestJS với DynamoDB trên account github cá nhân

- Tổ chức các thư mục config, database, modules, repositories

Thiết kế bảng users - Thiết kế bảng để lưu thông tin users

- Yêu cầu hash key là trường email

- Account cần verify mới sử dụng được

- Password phải được mã hóa Viết API tạo user - Path: /api/users/create

- Yêu cầu: Tạo mới API đăng ký user với các thông tin trên, sau khi tạo tài khoản thì gửi mail về email đó, trong email kèm link verify account.

Viết tài liệu đặc tả

- Dựa trên mẫu tài liệu đã được cung cấp sẵn

Viết API xác thực người dùng

- Xác thực người dùng khi người dùng nhấn vào link được cung cấp sẵn trong gmail.

Viết tài liệu đặc tả

API xác thực người dùng

- Dựa trên mẫu tài liệu đã được cung cấp sẵn

Viết API đăng nhập - Path: /api/auth/login

- Params: email + password - Sử dụng JWT để coding chức năng auth

- Chỉ những account đã verify email mới được đăng nhập.

Viết tài liệu đặc tả

- Dựa trên mẫu tài liệu đã được cung cấp sẵn

Viết API quên mật khẩu - Path: 13/07

- Nhập email, tiến hành gửi tới email user.

Viết tài liệu đặc tả API - Dựa trên mẫu tài liệu đã được cung cấp sẵn

Viết API đặt lại mật khẩu - Path: /api/users/reset password

- Params: Tự sinh viên thiết kế

- Yêu cầu: Tiến hành đặt lại mật khẩu cho người dùng,

Viết tài liệu đặc tả API đặt lại mật khẩu

- Dựa trên mẫu tài liệu đã được cung cấp sẵn

Viết API đổi mật khẩu - Path:

- Yêu cầu: Tiến hành thay đổi mật khẩu của người dùng.

Viết tài liệu đặc tả API đổi mật khẩu.

- Dựa trên mẫu tài liệu đã được cung cấp sẵn

Tìm hiểu các loại tài liệu - Document API

Tìm hiểu thư viện để cài đặt unit test

Viết unit test cho API đăng nhập

- Viết test cho controller - Viết test cho service

Viết unit test cho API tạo người dùng

- Viết test cho controller - Viết test cho service

Viết unit test cho API xác thực người dùng

- Viết test cho controller - Viết test cho service

Viết unit test cho API quên mật khẩu

- Viết test cho controller - Viết test cho service

22 Viết unit test cho API đặt mật khẩu

- Viết test cho controller - Viết test cho service

Viết unit test cho API thay đổi mật khẩu

- Viết test cho controller - Viết test cho service

Tìm hiểu về AWS - Tìm hiểu ECR,

Codebuild, ELB, ECS, DynamoDB, Code pipeline.

Deploy source lên AWS - Vừa đọc tài liệu AWS vừa thực hiện

Thiết lập CI/CD - Vừa đọc tài liệu AWS vừa thực hiện

Viết tài liệu đặc tả quá trình deploy source code, thiết lập CI/CD.

- Viết từng bước chi tiết các màn hình thiết, giải thích từng bước.

• Hoàn thành tốt hết tất cả các nhiệm vụ được giao

• Cần sự hỗ trợ của anh hướng dẫn ở đoạn task thiết lập CI/CD.

Tham gia dự án thực tế

Bảng 2 3 Bảng mô tả thông tin dự án thực tế đã tham gia

Dự án tham gia NikoNiko (Hệ thống HRM)

Mô tả NikoNiko là hệ thống chấm công cho mô hình doanh nghiệp kết hợp tại chỗ và làm từ xa Niko cung cấp cách chấm công đơn giản không phụ thuộc địa điểm và thời gian.

Thời gian tham gia 31/07/2023 đến 30/09/2023

Nền tảng hỗ trợ Web, App

Công nghệ NestJS, MongoDB, Jest, AWS, VueJS, Flutter, Figma

Vai trò Lập trình viên Back-end

Một số tính năng chính - Checkin / Out (Web & Mobile)

- Ghi nhận và số hóa cảm xúc nhân viên

- Quản lí user role, layer, report line, …

- Cài đặt ngày nghỉ phép

Hình 2 1 Check-in bằng App

Hình 2 2 Check-in bằng web

Hình 2 3 Theo dõi thông tin làm việc

Hình 2 4 Đăng ký nghỉ phép

Hình 2 5 Thiết lập giờ làm việc

Mô tả quá trình thực hiện .28 2.4.2 Kết quả 31 2.4.3 Thuận lợi 31 2.4.4 Khó khăn 31 Chương 3: TỔNG KẾT

Bảng 2 4 Mô tả quá trình thực hiện dự án thực tế

Nội dung thực hiện Kết quả

- Tham gia dự án Niko (hệ thống HRM) - Cài đặt môi trường dự án bao gồm:

NodeJS, MongoDB, Python, Redmine, Github dự án

- Đọc các quy tắt khi làm việc với git như:

Tạo nhánh, tạo PR, các lỗi thường xảy ra khi code, review chéo, …

- Đọc hiểu source code dự án mới

Hoàn thành tốt công việc được giao.

- Gặp vấn đề khi nội dung mô tả của PR chưa đúng

- Được cấp account AWS để thực hiện công việc

- Nhận task điều tra lỗi cấp dưới có thể thấy được ticket cấp trên

- Nhận task nâng cấp Logger & tìm giải pháp

Hoàn thành tốt công việc được giao.

- Đọc hiểu tài liệu NestJS về Logger và source code

- Tái hiện lỗi cấp dưới thấy được ticket cấp trên

- Nghiên cứu task tự động tạo document cho GraphQL API.

Hoàn thành tốt công việc được giao.

- Tái hiện lỗi cấp dưới thấy được ticket cấp trên

- Bắt đầu sửa lỗi, thêm các evidence và testcase về lỗi, chạy thử Docker xem thử sau khi sửa lỗi có ổn định hay không Hoàn

Hoàn thành tốt công việc được giao.

28 thành task cấp dưới thấy được ticket cấp trên

- Merge code từ nhánh local đến nhánh develop, từ devlop đến nhánh staging Kiểm thử sau khi sửa lỗi trên môi trường developer và staging với task cấp dưới thấy được cấp trên

- Tiếp tục tìm giải pháp cho task Logger - Nâng cấp thư viện npm để đáp ứng task Logger

- Tìm phạm vi ảnh hưởng của Logger cũ và thay thế toàn bộ bằng Logger mới

- Thêm các testcase liên quan đến Logger và build Docker để đảm bảo sau khi nâng cấp thư viện code vẫn hoạt động ổn định.

- Tìm hiểu Cloudwatch trên AWS để kiểm thử task Logger

- Các dòng log được tạo ra không đồng bộ với môi trường local, bởi vì mã ANSI và nhận task để sửa lỗi Merge code lên nhánh develop

- Tiếp tục, kiểm thử trên Cloudwatch, nhận thấy đối với cùng một lỗi nhưng in nhiều dòng vì Cloudwatch không nhận ký tự “\n”.

Nhận task và sửa lỗi Merge code lên nhánh develop

- Kiểm thử kết hợp: khi Logger in ra log ở mức lỗi thì sẽ gửi thông báo đến nhóm làm việc của công ty Thực hiện một số thay đổi nhỏ và merge code lên lại nhánh develop, staging Hoàn thành task.

Hoàn thành tốt công việc được giao.

- Nhận task tự động tạo document cho API GrapqhQL

- Nghiên cứu và chọn công nghệ SpectaQL để thực hiện Hoàn thành task

- Logger không đủ thông thông tin để điều tra nguyên nhân gây lỗi Nhận task để nâng cấp Logger

- Tìm hiểu thành phần CronJob, Guard trong dự án.

Hoàn thành tốt công việc được giao.

- Nhận task nâng cấp môi trường NodeJS với source Front-end

- Tìm hiểu cách viết Docker, các môi trường liên quan

- Tìm hiểu S3, ECS, ECR trên AWS và đẩy code lên S3, chạy code trên ECS Hoàn thành task.

Hoàn thành tốt công việc được giao.

- Nhận nghiên cứu task gom nhóm số hóa cảm xúc nhân viên

- Nghiên cứu cấu trúc lưu trữ hiện tại của tính năng này dưới MongoDB, phân tích phạm vi ảnh hưởng API, CronJob

- Đưa ra giải pháp cho task.

Hoàn thành tốt công việc được giao.

- Bắt đầu thực hiện task gom nhóm số hóa cảm xúc nhân viên

- Thực hiện viết unit test cho những gì liên quan đến task

Hoàn thành tốt công việc được giao.

• Hoàn thành tất cả những nhiệm vụ được giao, đúng tiến độ, ít lỗi • Thời gian thời gian thực tế giải quyết có chênh lệch nhiều hơn so với thời gian ước tính ban đầu

• Thực hiện được các task có mức độ khó cao

• Môi trường làm việc năng động, tích cực, các anh chị hỗ trợ tận tình • Kiến thức nền tảng ở trường học hiệu quả khi áp dụng ở ngoài doanh nghiệp • Công việc, dự án thực tế có cùng hướng đi nghề nghiệp của em • Mô hình làm việc từ xa kết hợp với tại chỗ phù hợp với sinh viên vừa học vừa làm như em, giảm thời gian di chuyển

• Ở giai đoạn đầu khi em tham gia dự án, vì chưa quen hết tất cả các thủ tục tạo PR cũng như là cách thức làm việc, nên đôi lúc sẽ không được anh Leader duyệt code, giải pháp, …

• Khi làm tài liệu em thường quá tập trung vào kỹ thuật, nhưng người duyệt thường là

Project Manager thường không đi quá sâu vào kỹ thuật mà là tổng quát • Thiếu kinh nghiệm trong việc viết code, tuy cú pháp đúng nhưng hiệu quả, hiệu suất, tái sử dụng code không cao

• Em đưa ra các giải pháp cho các task chưa thực sự tối ưu.

Quãng thời gian thực tập tại Công ty TNHH Vitalify Á Châu đã giúp em cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phần mềm. Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụng mail, quản lý dự án, làm việc nhóm, giao tiếp với cấp trên,

Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình training với các tính năng, yêu cầu đặt ra ban đầu Ở giai đoạn ban đầu khi mới tham gia, em thường có những sai xót về báo cáo cũng như qui trình làm việc Các thiếu sót ấy cũng đã được anh chị tận tình hướng dẫn từng chút để em có thể hoàn thành tốt công việc

Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạt chất lượng tốt Được thực tập tại công ty Vitalify Á Châu là một cơ hội may mắn đối với em Đây là một môi trường năng động, có cơ hội thăng tiến rõ ràng, thời gian làm việc linh hoạt Công ty quan tâm về mảng đào tạo nguồn nhân lực mới, sức khỏe tinh thần cho nhân viên với các hoạt động thể thao như đá bóng, cầu lông được tổ chức hàng tuần Thực sự đây là một môi trường rất phù hợp đối với em Điểm mạnh

• Khả năng tự học tốt các công nghệ mới

• Vận dụng các kiến thức đã học áp dụng vào dự án công ty

• Có khả năng làm việc độc lập

• Có nhiều sáng kiến, sáng tạo giúp ích cho dự án

• Hòa đồng, thân thiện với các anh chị trong công ty

• Khả năng nghiên cứu, tìm hiểu các nguồn tham khảo trên internet tốt, tận dụng trí tuệ nhân tạo trong công việc tốt, rút ngắn thời gian và tăng năng suất làm việc • Nhiệt tình, giúp đỡ mọi người trong công việc Điểm yếu

• Các qui trình merge code lúc ban đầu còn nhiều xai xót, khả năng viết tài liệu đặc tả chưa tốt.

• Cách trình bày và diễn đạt còn chưa tốt Giao tiếp thường xuyên tập trung vào kỹ thuật nhưng không nói được tổng quan của vấn đề

• Thiếu kinh nghiệm trong dự án thực tế Khả năng về kỹ thuật trong khi viết code còn yếu, dẫn tới thời gian Leader đánh giá code lâu và phải sửa nhiều lần • Làm chậm hơn so với ước tính ban đầu

• Các task cần thời gian nghiên cứu nhiều về công nghệ để có thể làm được • Thường xuyên quên cập nhật trạng thái task, dẫn đến chị quản lý không nắm được tiến độ công việc

Bảng 3 1 Đánh giá chuẩn đạt được

Goal Mục tiêu môn học

G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp

G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự án

G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại doanh nghiệp

G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn đề G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày

G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh

Ngày đăng: 15/05/2024, 09:23

HÌNH ẢNH LIÊN QUAN

Bảng 2. 1 Bảng nghiên cứu kỹ thuật - báo cáo thực tập lập trình backend với nestjs
Bảng 2. 1 Bảng nghiên cứu kỹ thuật (Trang 16)
Bảng 2. 2 Bảng công việc thực hiện dự án cá nhân - báo cáo thực tập lập trình backend với nestjs
Bảng 2. 2 Bảng công việc thực hiện dự án cá nhân (Trang 19)
Bảng 2. 3 Bảng mô tả thông tin dự án thực tế đã tham gia Dự án tham gia  NikoNiko (Hệ thống HRM) - báo cáo thực tập lập trình backend với nestjs
Bảng 2. 3 Bảng mô tả thông tin dự án thực tế đã tham gia Dự án tham gia NikoNiko (Hệ thống HRM) (Trang 23)
Hình 2. 1 Check-in bằng App - báo cáo thực tập lập trình backend với nestjs
Hình 2. 1 Check-in bằng App (Trang 24)
Bảng 3. 1 Đánh giá chuẩn đạt được - báo cáo thực tập lập trình backend với nestjs
Bảng 3. 1 Đánh giá chuẩn đạt được (Trang 32)
w