Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
442,28 KB
Nội dung
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 BACKEND DEVELOPER VỚI NESTJS Công ty thực tập : Công ty Cổ Phần TGL Solutions Người phụ trách : Lê Ry Gút Thực tập sinh : Trương Hồng Nam TP Hồ Chí Minh, tháng 12 năm 2020 Trương Hoàng Nam LỜI MỞ ĐẦU Ngày nay, Internet phần không thiếu đời sống Từ giải trí, mua sắm, học tập, báo chí, có mặt internet Đặc biệt hơn, năm vừa qua, giới đối mặt với thách thức mang tên Corona Đại dịch Corona, khiến cho cần phải số hóa, sử dụng internet để trao đổi thơng tin nhiều Với nhu cầu đó, internet nói chung, website nói riêng ngày phát triển để đáp ứng nhu cầu người dùng Sau ba năm học tập trường, với mong muốn có thêm kinh nghiệm thực tế, học hỏi môi trường doanh nghiệp Vậy nên, em định thực tập Công ty Cổ phẩn TGL Solutions - môi trường đại, cởi mở, giúp em trau dồi kiến thức thực tập sinh Trương Hoàng Nam LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty Cổ Phần TGL Solutions tạo điều kiện cho em có hội thực tập công ty Trong thời qua, nhờ dẫn nhiệt tình anh chị trainer, em tiếp thu kiến thức hiểu rõ cách vận hành website cách xây dựng, viết code, đến deploy trang web thực tế Chân thành cảm ơn anh chị nhóm trainer bỏ nhiều thời gian,cơng sức để hướng dẫn chúng em hồn thành đợt thực tập Đặc biệt cảm ơn anh Lê Ry Gút anh Nguyễn Thiện Hải nhiệt tình hướng dẫn, bảo, hỗ trợ em trình thực tập; Cảm ơn anh Nguyễn Thiện Hải trainning cho em TypeORM, NestJS; Cảm ơn anh Lê Ry Gút giúp em hịa nhập vào cơng trường cơng ty; Cảm ơn anh Trần Hồng Sơn anh Nguyễn Xuân Nghiêm giúp đỡ em trình làm việc Cũng xin cảm ơn thầy khoa Cơng nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo Trương Hoàng Nam Tp.HCM, ngày 28 tháng 12 năm 2020 Trương Hoàng Nam NHẬN XÉT CỦA KHOA Trương Hoàng Nam MỤC LỤC Chương 1: Giới thiệu công ty thực tập Giới thiệu công ty Cổ Phần TGL Solutions Sản phẩm công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty cài đặt phần mềm, môi trường Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc 2.2 Tìm hiểu ngôn ngữ TypeScript 2.3 Tìm hiểu NestJS, GraphQL TypeORM 2.3.1 Tìm hiểu NestJS 2.3.2 Tìm hiểu GraphQL 2.3.3 Tìm hiểu TypeORM Thực project 10 Lịch làm việc .10 Chương 3: Chi tiết Project 12 3.1 Giới thiệu dự án 12 3.1.1 Mục đích 12 3.1.2 Một số API phục vụ cho hệ thống 12 3.2 Thực 13 3.2.1 Người thực 13 3.2.2 Quá trình thực 14 Giai đoạn tìm hiểu dự án 14 Giai đoạn phát triển 14 Kết .14 TỔNG KẾT .15 TÀI LIỆU THAM KHẢO .16 NestJS .16 TypeORM 16 GraphQL 16 Trương Hoàng Nam Chương 1: Giới thiệu công ty thực tập Giới thiệu công ty Cổ Phần TGL Solutions Công ty cổ phần TGL Solutions thành lập năm 2019, công ty hợp tác với công ty skyACE Nhật Bản để tạo sản phẩm, dịch vụ Với ba phương châm Speed, Smart Simple Solutions, cơng ty ln đưa sản phẩm nhanh chóng thông minh đến khách hàng Đáp ứng cầu khách hàng Công ty tạo môi trường tư làm việc trẻ, động sáng tạo khuyến khích mạng thân Đây môi trường để rèn luyện, học hỏi làm việc Sản phẩm công ty Công ty Cổ phần TGL Solutions đưa sản phẩm dựa yêu cầu khách hàng, số đó, sản phẩm thuộc vào mảng website, app mobile, AR Một số sản phẩm kể đến như: Shuho System, Rebate King, Doboku-Uo, Dental Clinic, Mirai Ichi, Mail Management System,… Trương Hoàng Nam Chương 2: Nội dung thực tập Trong đợt thực tập lần này, để biết thêm công nghệ mới, em xin thực tập vị trí backend developer với cơng nghệ sử dụng NestJS Tìm hiểu cơng ty kỹ công ty cài đặt phần mềm, môi trường Thời gian : ngày Nội dung : Giới thiệu công ty, cách tổ chức công ty, cài đặt công cụ làm việc Được nghe người phụ trách giới thiệu cơng ty, q trình thành lập phát triển, quy trình làm việc, cách thức tổ chức công ty Thực tập sinh giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng công cụ trình làm việc… Cuối cùng, thực tập sinh cài đặt mơi trường cần thiết cho q trình thực tập, Git, SourceTree, Microsoft Team Kết : Hiểu cơng ty Cổ phần TGL Solutions, q trình thành lập phát triển Biết quy trình làm việc Biết thêm công cụ Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Thời gian : ngày Nội dung : Tìm hiểu cơng cụ sử dụng q trình làm việc Trong thời gian này, anh supervisor giới thiệu công cụ cách sử dụng công cụ q trình làm việc, số kể đến là: Gitlab - Version Control System dùng để quản lý source code phát triển dự án theo team; SourceTree phần mềm hữu ích cho phép thao tác với git thơng qua giao diện; Visual Studio Code số extention hữu ích có Visual Studio Code; Microsoft Team - dùng để trao đổi, lên lạc người công ty Trương Hoàng Nam Thực : Thực hành sử dụng phần mềm nêu Kết : Sử dụng công cụ nêu 2.2 Tìm hiểu ngơn ngữ TypeScript Thời gian : ngày Nội dung : Tìm hiểu ngơn ngữ TypeScript - Sự khác TypeScript JavaScript TypeScript dự án mã nguồn mở Microsoft phát triển, xem phiên nâng cao JavaScript TypeScript đưa lập trình hướng đối tượng, bổ sung tùy chọn kiểu tĩnh cho JavaScript Và TypeScript có cú pháp tường minh JavaScript, giúp cho việc code đọc code trở nên dễ dàng - Cách biên dịch code TypeScript thành JavaScript Về bản, code TypeScript biên dịch thành code JavaScript trước chạy TSC dùng để biên dịch code TypeScript thành JavaScript - Các kiểu liệu TypeScript Các biến, tham số hay giá trị trả hàm viết tường minh thông qua kiểu liệu định sẵn TypeScript như: string, number, boolean, array, enum, void - Lập trình hướng đối tượng TypeScript: Hướng đối tượng điểm mạnh TypeScript Trước JavaScript cho lập trình hàm, TypeScript bổ sung khái niệm OOP cho JavaScript như: Kế thừa, đóng gói, constructor, abstract class, interface, Thực : - Tìm hiểu ngơn ngữ TypeScript dẫn anh supervisor, với tàng JavaScript có sẵn từ trước - Báo cáo tìm hiểu Kết : - Biết ngơn ngữ TypeScript 2.3 Tìm hiểu NestJS, GraphQL TypeORM 2.3.1 Tìm hiểu NestJS Thời gian: ngày Trương Hồng Nam Nội dung: Tìm hiểu Framework NestJS - “A progressive Node.js framework for building efficient, reliable and scalable server-side applications.” Framework Node.js tiến để xây dựng ứng dụng phía máy chủ cách hiệu quả, đáng tin cậy dễ dàng mở rộng - Với NestJS viết Javascript Typescript, ngôn ngữ mặc định Typescript Thực hiện: - Tìm hiểu Framework NestJS Cách cài đặt NestJS, cách khởi tạo project với NestJS - Tìm hiểu cấu trúc source NestJS, service viết module Thực hiện: - Tạo thử project NestJS - Viết mototj module NestJS, kiểm tra API xem trả liệu Kết quả: - Có kiến thức NestJS - Có thể xây dựng ứng dụng phía backend với NestJS 2.3.2 Tìm hiểu GraphQL Thời gian: ngày Nội dung: Tìm hiểu GraphQL - Là ngôn ngữ truy vấn liệu cho API - GraphQL khác với Restful API chỗ tùy chỉnh biến trả Điều giúp giảm kích thước payload cách loại bỏ field không cần thiết trả data - Cách cấu hình GraphQL ứng dụng NestJS Thực hiện: - Tìm hiểu GraphQL dẫn anh Supervisor - Cấu hình GraphQL vào ứng dụng NestJS - Thực hành viết API đơn giản với NestJS sử dụng GraphQL Kết quả: - Có kiến thức GraphQL - Có thể cấu hình GraphQL ứng dụng NestJS 2.3.3 Tìm hiểu TypeORM Thời gian: ngày Nội dung: Tìm hiểu TypeORM Trương Hồng Nam - TypeORM ORM chạy NodeJS, React Native, Browser, sử dụng Typesript Javascript để viết code TypeORM hỗ trợ nhiều loại sở liệu quan hệ như: MySQL, Oracle, SQL Server, Postgres, ngồi ra, cịn có hỗ trợ NoSQL MongoDB - Đây ORM cho ứng dụng Node.js mạnh mẽ Nó giúp cho trình phát triển nhanh Thực hiện: - Cấu hình TypeORM vào ứng dụng NestJS - Thực hành kết nối đến Oracle Database tạo schema kỹ thuật code first - Tạo migration thực thay đổi code Kết quả: - Có kiến thức TypeORM - Tạo schema, tạo quan hệ thực thể - Có kiến thức Migration TypeORM Thực project Sau tháng tìm hiểu cơng nghệ, sinh viên có kiến thức NestJS, GraphQL, TypeORM số kiến thức khác tích lũy thời gian Thời gian tiếp theo, sinh viên tham gia vào dự án thực tế công ty tên Questionnaire App Lịch làm việc Tuần Công việc - - Người hướng dẫn Tìm hiểu công ty, cách tổ chức công ty Làm quen với công cụ làm việc công ty Tìm hiểu ngơn ngữ TypeScript Tìm hiểu NestJS Anh Lê Ry Gút, anh Nguyễn Thiện Hải Mức độ hoàn thành Nhận xét người hướng dẫn Anh Lê Ry Gút, Anh Nguyễn Thiện Hải Anh Lê Ry Gút, Anh Nguyễn Thiện 10 Trương Hoàng Nam - - - - - 10 - Hải Anh Nguyễn Thiện Hải Tìm hiểu GraphQL TypeORM Tìm hiểu dự án Questionnaire Tìm hiểu server deploy lên server Tìm hiểu kiểm thử API với Postman Tìm hiểu chứng thực token với JWT Viết module auth cho dự án questionnaire Kiểm thử module auth Viết module maker cho dự án Kiểm thử module maker Viết module product cho dự án Tìm hiểu Subscription GraphQL Làm chức realtime voting Làm chức thống kê Kiểm tra lại toàn chức Deploy backend dự án Anh Nguyễn Xuân Nghiêm, anh Trần Hoàng Sơn Anh Nguyễn Xuân Nghiêm, anh Trần Hoàng Sơn Anh Nguyễn Xuân Nghiêm, anh Trần Hoàng Sơn Anh Nguyễn Xuân Nghiêm, anh Trần Hoàng Sơn Anh Nguyễn Xuân Nghiêm Anh Nguyễn Xuân Nghiêm, anh Nguyễn Thiện Hải 11 Trương Hoàng Nam Chương 3: Chi tiết Project 3.1 Giới thiệu dự án Đầu tiên, Questionnaire App dự án thực tế công ty Đây website cho phép người dùng bình chọn sản phẩm mà u thích Questionnaire sử dụng framework NestJS để viết backend Các API viết dạng GraphQL APIs 3.1.1 Mục đích Questionnaire App cho phép người dùng bình chọn sản phẩm mà họ u thích hội chợ Mirai Ichi Từ bình chọn này, nhà cung cấp sản phẩm phân tích để đưa chiến lược kinh doanh phù hợp với doanh nghiệp 3.1.2 Một số API phục vụ cho hệ thống API login - Cho phép người dùng nhập vào hệ thống cách chứng thực JWT token APIs Maker: - Với API createMaker, quản trị viên thêm nhà cung cấp vào hệ thống - Với API updateMaker, quản trị viên update nhà cung cấp có hệ thống - Với API deleteMaker, quản trị viên xóa nhà cung cấp khỏi hệ thống - Với API makers, quản trị viên lấy danh sách nhà cung cấp có hệ thống - Với API makerById, quản trị viên lấy nhà cung cấp Id APIs Product - Với API createProducts, quản trị viên thêm sản phẩm vào hệ thống - Với API updateProducts, quản trị viên chỉnh sửa thơng tin sản phẩm có hệ thống - Với API deleteProduct, quản trị viên xóa sản phẩm khỏi hệ thống - Với API productById, quản trị viên lấy sản phẩm Id sản phẩm - Với API products, quản trị viên lấy tất sản phẩm có hệ thống 12 Trương Hồng Nam - Với API productByEventId, người dùng xem sản phẩm có kiện diễn APIs Event - Với API createEvent, quản trị viên tạo kiện - Với API updateEvent, quản trị viên chỉnh sửa thơng tin kiện - Với API deleteEvent, quản trị viên xóa kiện - Với API addProductsIntoEvetn, quản trị viên thêm sản phẩm vào kiện cho khách hàng bình chọn - Với API events, quản trị viên lấy danh sách kiện - Với API listEvent, người dùng xem kiện diễn APIs Vote - Với API vote, người dùng bình chọn sản phẩm u thích - Với API voted, quản trị viên xem biết sản phẩm vote API cho phép quản trị viên nhận xem sản phẩm voted, thời gian thực 3.2 Thực 3.2.1 Người thực - Phát triển API cho Questionnaire App: thực tập sinh Trương Hoàng Nam với anh Nguyễn Thiện Hải 13 Trương Hoàng Nam - Phối hợp team frontend gồm anh Nguyễn Xuân Nghiêm anh Trần Hoàng Sơn 3.2.2 Quá trình thực Giai đoạn tìm hiểu dự án - Tìm hiểu yêu cầu dự án - Trao đổi với anh supervisor team frontend để thống công nghệ Kết quả: - Thống dụng ReactJS để viết frontend, backend xây dựng framework NestJS Giai đoạn phát triển - Developer xem tài liệu liên quan để tìm hiểu dự án - Team backend frontend phối hợp với để phát triển Khi có vấn đề nào, đưa vấn đề trao đổi thảo luận Liên lạc với phía khách hàng để chốt phương án đưa - Sau developer hồn thành cơng việc, QC thực phần test để kiểm tra sản phẩm Nếu có sai sót trao đổi với nhóm developer khách hàng để giải Kết - Hoàn thành công việc giao thời hạn 14 Trương Hồng Nam TỔNG KẾT Như vậy, vịng hai tháng, em học hỏi trãi nghiệm nhiều thứ bổ ích Cơng ty giúp em học công nghệ hot NestJS, GraphQL, biết tổ chức làm việc nhóm, trao đổi, giúp đỡ cơng việc Bên cạnh đó, em cịn học tác phong, trách nhiệm nhiệm vụ giao Những kiến thức kinh nghiệm em tích lũy thời gian qua vô quý giá thân Chân thành cảm ơn giúp đỡ anh chị nhóm trainer, đặc biệt anh Nguyễn Thiện Hải, anh Lê Ry Good, anh Nguyễn Xuân Nghiêm anh Trần Hoàng Sơn Em xin cảm ơn quý thầy cô khoa Công nghệ Phần mềm dạy bảo, cung cấp cho em kiến thức tảng để tham gia khóa thực tập công ty Một lần em xin chân thành cảm ơn 15 Trương Hoàng Nam TÀI LIỆU THAM KHẢO NestJS https://nestjs.com TypeORM https://typeorm.io/#/ GraphQL https://graphql.org/ 16 Trương Hoàng Nam ... Trương Hoàng Nam Chương 2: Nội dung thực tập Trong đợt thực tập lần này, để biết thêm công nghệ mới, em xin thực tập vị trí backend developer với cơng nghệ sử dụng NestJS Tìm hiểu cơng ty kỹ công... - Với NestJS viết Javascript Typescript, ngơn ngữ mặc định Typescript Thực hiện: - Tìm hiểu Framework NestJS Cách cài đặt NestJS, cách khởi tạo project với NestJS - Tìm hiểu cấu trúc source NestJS, ... viết module Thực hiện: - Tạo thử project NestJS - Viết mototj module NestJS, kiểm tra API xem trả liệu Kết quả: - Có kiến thức NestJS - Có thể xây dựng ứng dụng phía backend với NestJS 2.3.2