Báo cáo thực tập xây dựng server với NodeJS ExpressJS

20 15 0
Báo cáo thực tập xây dựng server với NodeJS   ExpressJS

Đ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

0 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 Xây dựng server với NodeJS - ExpressJS Công ty thực tập : TNHH Công Nghệ SUMVIET Người phụ trách : Nguyễn Vĩnh Khiêm Thực tập sinh : Trương Viết Huy Phong TP Hồ Chí Minh, tháng 01 năm 2021 Nguyễn Vĩnh Khiêm Trương Viết Huy Phong LỜI MỞ ĐẦU Hàng triệu doanh nghiệp sử dụng Internet kênh truyền thông giúp tiết kiệm chi phí Nó cho phép doanh nghiệp trao đổi thơng tin với thị trường mục tiêu thực giao dịch cách nhanh chóng, an toàn Tuy nhiên, hoạt động trở nên hiệu doanh nghiệp nắm bắt lưu trữ tất liệu cần thiết có phương tiện xử lý tồn thơng tin này, sau tiến hành trình bày kết cho người dùng Từ xuất Web app ứng dụng chạy web Thông qua web app, người dùng thực số cơng việc: tính tốn, chia sẻ hình ảnh, mua sắm … Tính tương tác web app cao website nhiều Bên cạnh đó, tập đồn lớn Google, Facebook mắt framework hỗ trợ lập trình viên xây dựng ứng dụng web NodeJS, Express với nhiều phiên khác Cùng với xu đó, Cơng ty Cổ phần Codosa Holing , cụ thể mảng Codosa Tech chọn tập trung nghiên cứu xây dựng ứng dụng theo mã nguồn mở Và thực tập sinh trực tiếp tham gia vào trình hướng dẫn, định hướng công ty Sau ba năm học tập trường, với mong muốn có thêm kinh nghiệm thực tế, tham gia phát triển ứng dụng di động môi trường chuyên nghiệp, nên em định chọn Codosa nơi giúp em thực dự định Nguyễn Vĩnh Khiêm Trương Viết Huy Phong LỜI CẢM ƠN Em xin gửi lời cảm ơn đến Trường đại học Công Nghệ Thông Tin, quý thầy cô trường tận tình dạy để bổ sung kiến thức cho em suốt thời gian theo học trường Và em xin gửi lời cảm ơn đến anh Nguyễn Vĩnh Khiêm, anh Nguyễn Quốc Khánh tạo điều kiện cho em có hội thực tập công ty, tất anh giúp đỡ, bảo trình thực tập Q trình thực tập cơng ty giúp em học hỏi nhiều, từ tác phong, thái độ làm việc đến vấn đề kỹ thuật, bước hoàn thiện sản phẩm… Xin cảm ơn tất người động viên, giúp đỡ chia sẻ kinh nghiệm quý báu, giúp em có trải nghiệm tuyệt vời thời gian công ty Trương Viết Huy Phong TP Hồ Chí Minh, ngày 14 tháng 01 năm 2021 Nguyễn Vĩnh Khiêm Trương Viết Huy Phong NHẬN XÉT CỦA KHOA Nguyễn Vĩnh Khiêm Trương Viết Huy Phong MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN .2 Chương 1: Giới thiêu công ty thực tập .5 Giới thiệu công ty Gameloft 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 .6 Nghiên cứu kỹ thuật .6 Thực project Lịch làm việc Chương 3: Chi tiết project 12 Giới thiệu PawnVn 12 Thực 17 TÀI LIỆU THAM KHẢO 18 TỔNG KẾT 19 Nguyễn Vĩnh Khiêm Trương Viết Huy Phong Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty Gameloft Tên công ty: Codosa Holding Địa chỉ: 74/43/8 Đường số 20, Khu phố 1, Phường Long Thạnh Mỹ, Quận 9, TP Hồ Chí Minh Email: codosaholding@gmail.com Điện thoại: 0931 78 00 31 - 0936 04 72 39 SUMVIET công ty startup trực thuộc công ty CODOSA HOLDING thành lâp từ năm 2017, công ty phát triển sản phẩm công nghệ: Blockchain, Smart Contract, sàn thương mại điện tử, ví điện tử, … tảng Web, Android, IOS Sản phẩm công ty Codosa Tech cung cấp sản phẩm công nghệ từ website (Thương mại điện tử, Fintech, … ), ứng dụng di động (Ví điện tử, … ) đến game, sàn trade dựa tảng Binary Option, MT4 & MT6 Platform, trade Forex, Crypto, … Nguyễn Vĩnh Khiêm Trương Viết Huy Phong Chương 2: Nội dung thực tập Trong tập này, em phối hợp bạn khác ( bạn front-end, bạn backend) phát triển giai đoạn cho dự án ứng dụng Pawnvn - hỗ trợ khách hang có nhu cầu mua bán trao đổi sản phẩm, qua trung gian thực việc cầm cố tài sản Nhóm bắt đầu dự án với giới thiệu mô tả sản phẩm từ phía cơng ty, với dẫn giúp đỡ anh chị hướng dẫn, đến thời điểm em viết báo cáo này, nhóm hồn thành module chức giai đoạn 1( Chi tiết dự án mô tả phần sau giới hạn theo quy định cơng ty) Tìm hiểu cơng ty kỹ công ty Thời gian : ngày Nội dung : Giới thiệu công ty, cách tổ chức công ty Được nghe người phụ trách giới thiệu công ty, trình thành lập 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ơng ty Ngồi ra, 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 email công việc… Kết : Hiểu thêm cơng ty, q trình thành lập phát triển Có thêm kỹ việc sử dụng email cơng việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm 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 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 cơng cụ giúp ích cho công việc sau Một số phần mềm số Gitlab 2.2 - sử dụng làm việc nhóm, VScode - editor để xây dựng ứng dụng Thực : Thực hành sử dụng phần mềm nêu Kết : Lập trình sử dụng cơng cụ miễn phí, giúp dễ dàng kết hợp công cụ với nhau, so với việc dung IDE Tìm hiểu ngơn ngữ Typescript Thời gian : ngày (1 tuần) Nguyễn Vĩnh Khiêm Trương Viết Huy Phong Nội dung : Ôn tập kiến thức javascript bản, javascript ES6 ( arrow functions, async, await, promise, … ) training kỹ thuật typescript, khác typescript javascript, sử dụng typescript với framework Express để xây dựng phát triển server Thực : - Tham gia đầy đủ buổi training công ty - Làm thực hành, kiểm tra kiến thức học Kết : - 2.3 Nâng cao kỹ lập trình với ngơn ngữ typescript Có kiến thức quan trọng cho việc lập trình server sau Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu Tìm hiểu RESTful API Framework ExpressJS Thờ gian: ngày (2 tuần) Nội dung: Các kiến thức RESTfulAPI ExpressJS - Cơ RESTful API RESTful API tiêu chuẩn dùng việc thiết kế API cho ứng dụng web (thiết kế Web services) để tiện cho việc quản lý resource Nó trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, liệu động…), bao gồm trạng thái tài nguyên định dạng truyền tải - qua HTTP Framework React Native Expressjs framework xây dựng tảng Nodejs Nó cung cấp tính mạnh mẽ để phát triển web mobile Expressjs hỗ trợ method HTTP midleware tạo API vô mạnh mẽ dễ sử dụng.… Thực : - Tham gia đầy đủ buổi trainning Nguyễn Vĩnh Khiêm Trương Viết Huy Phong - Tự đọc thêm tài liệu, nghiên cứu thêm library, luyện tập thêm cách cài đặt, sử dụng library Kết : 2.4 - Làm quen, hiểu kiến trúc thành phần NodeJS, - ExpressJS Thành thạo việc cài đặt, config sử dụng thư viện cần dùng cho project Tìm hiểu MongoDB Nội dung : Các kỹ thuật mongodb - Định nghĩa MongoDB: MongoDB sở liệu mã nguồn mở sở liệu NoSQL(*) hàng đầu, hàng triệu người sử dụng MongoDB viết C++ Ngoài ra, MongoDB sở liệu đa tảng, hoạt động khái niệm Collection Document, cung cấp hiệu suất cao, tính khả dụng cao khả mở rộng dễ dàng - Sử dụng thư viện mongoose hỗ trợ thao tác với mongodb Mongoose thư viện JavaScript cho phép bạn định nghĩa schema với liệu định kiểu rõ ràng Khi schema định nghĩa, Mongoose cho phép bạn tạo Model dựa schema cụ thể Model Mongoose sau ánh xạ tới MongoDB document thông qua định nghĩa schema Model Thực : - Tham gia đầy đủ buổi training Xây dựng model api thực thi transaction model Kết quả: - Đã xây dựng model hệ thống, thực thi transaction model thông qua API Thực project Nguyễn Vĩnh Khiêm Trương Viết Huy Phong Sau tháng training, thực hành tự nghiên cứu tìm hiểu thêm Typescript ExpressJS thực tập sinh trang bị kiến thức lập trình server, sử dụng công cụ hỗ trợ debug, quy tắc code dễ đọc, dễ hiểu bảo trì, cách tổ chức cấu trúc thư mục, tận dụng tái sử dụng code Thực tập sinh xếp tham gia vào 01 team để xây dựng ứng dụng công ty bắt đầu phát triển áp dụng kiến thức học để thực Chi tiết đồ án nói phần sau Lịch làm việc Tuần Mức độ Công việc Người hướng dẫn hồn thành - Tìm hiểu cơng ty, Anh Nguyễn Vĩnh 100% cách tổ chức Khiêm công ty - Làm quen với công cụ làm việc công ty - Học cách trao đổi, làm việc qua email - Học tập ôn lại Anh Nguyễn Quốc 100% kiến thức cũ, nắm Khánh Anh Nguyễn Cơng học Minh - Tìm hiểu, ơn tập Typescript, NodeJS, ExpressJS - Tìm hiểu Anh Nguyễn Quốc 100% MongoDB, sử dụng Khánh thư viện mongoose Anh Nguyễn Công để làm việc với Minh mongoDB - Cấu trúc source code Anh Nguyễn Quốc 100% - Tìm hiểu, nắm bắt Khánh thơng tin dự án - Tìm hiểu quy trình ứng dụng Nhận xét người hướng dẫn Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 10 PawnVN chuẩn bị triển khai Tiến hành dự án Anh Nguyễn Vĩnh 100% PawnVn, giai đoạn Khiêm - Thực chức đăng nhập, đăng kí, xác thực thơng qua sms - Xây dựng model tổng quan authencation - 6&7 & 10 11 trở Thực chức phân quyền cho admin - Xây dựng service xác thực người dùng theo chế token - Xây dựng chức xác thực KYC người dùng - Các api liên quan đến thơng tin người dùng - Tìm hiểu ci/cd, docker giúp triển khai ứng dụng liên tục - Tìm hiểu PM2, Nginx config ecosystem file pm2 - Phân tích chức hệ thống theo nhu cầu anh Nguyễn Vĩnh Khiêm - Xây dựng model ứng dụng - Xây dựng API - Anh Nguyễn Vĩnh 100% Khiêm Anh Nguyễn Vĩnh 100% Khiêm Anh Nguyễn Quốc 100% Khánh Anh Nguyễn Công Minh Anh Nguyễn Vĩnh 100% Khiêm Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 11 - Viết document Swageer Viết Unit test cho hệ thống Phân công công việc cho thành viên nhóm Tham gia hoạt động nghiên cứu, thi công ty Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 12 Chương 3: Chi tiết project Theo quy chế 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 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, liệu, …) Phần b.Thông tin công ty: … Đảm bảo an tồn thơng tin sản phẩm, dự án giai đoạn kế hoạch, phát triển sản phẩm chưa phép công bố Nên phần mơ tả giới hạn q trình thực tập Giới thiệu PawnVn 1.1 Giới thiệu PawnVn ứng dụng thương mại điện tử theo hình thức P2P kết hợp với mall từ đối tác sở hữu 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 kiểm duyệt sản phẩm từ cửa hàng chuyên gia kiểm định nhằm đem lại sản phẩm an toàn với người mua người bán 1.2 Chi tiết ứng dụng Ứng dụng xây dựng ReactJs, server sử dụng NodeJS với mục đích tiết kiệm chi phí phát triển ứng dụng Các công nghệ sử dụng dự án: o Mongoose: Mongoose framework JavaScript thường sử dụng ứng dụng Node.js với database MongoDB o Bcrypt: BCrypt thuật tốn mã hóa mật thiết kế Niels Provos and David Mazières BCrypt đánh giá bảo mật an toàn so với MD5 SHA lần thực băm lại cho giá trị khác nhau, việc khiến cho việc dị tìm mật trở nên khó o Jsonwebtoken: JSON Web Token (JWT) tiêu chuẩn mở (RFC 7519) định nghĩa cách thức truyền tin an toàn thành viên đối tượng JSON Thơng tin xác thực đánh dấu tin cậy nhờ Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 13 vào “chữ ký” Phần chữ ký JWT mã hóa lại HMAC RSA o Swagger-ui-express: Swagger UI tool cho phép - từ developers end users - hình dung tương tác với tài nguyên API dự án Tool tự động generates API documents từ file config Swagger, với nhìn trực quan việc triển khai trở nên dễ dàng cho phía client o Axios: Axios HTTP Client viết dựa Promise, dùng cho việc hỗ trợ xây dựng ứng dụng API, sử dụng React, Vue, Angular… o Cors: CORS chế cho phép nhiều tài nguyên khác (fonts, Javascript, v.v…) trang web truy vấn từ domain khác với domain trang CORS viết tắt từ Cross-origin resource sharing o Helmet: Helmet package viêt để giúp bạn bảo vệ ứng dụng khỏi lỗ hổng biết cách thiết lập Http headers cách phù hợp Thực tế Helmet tập hợp Middleware nhỏ làm nhiệm vụ thiết lập Http headers liên quan đến bảo mật o PM2: pm2 trình quản lý process (tiến trình) dành cho ứng dụng Nodejs Nó viết Nodejs Shell PM2 tích hợp cân tải (load balancer) Bạn giữ cho process server sống reload/restart với zero downtime 1.3 o Nginx: phần mềm web server mã nguồn mở nỗi tiếng Ban đầu dùng để phục vụ web HTTP Tuy nhiên, ngày dùng làm reverse proxy, HTTP load balancer email proxy IMAP, POP3, SMTP Một số giao diện: Một sô hình giao diện hệ thống hình giao diện swagger Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 14 Màn hình swagger thể thơng tin api ứng dụng Màn hình terminal deploy ứng dụng thơng qua pm2 Màn hình log thơng tin ứng dụng chạy Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 15 Màn hình đăng nhập Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 16 Màn hình đăng kí Màn hình xác thực OTP Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 17 Màn hình phân quyền Thực thành viên team fresher PawnVN: - Trương Viết Huy Phong Chung Nguyễn Trường Duy Võ Phi Nhật Duy Trần Quốc An Và giúp đỡ tận tình team trainer Codosa Holding Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 18 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/ Nguyễn Vĩnh Khiêm Trương Viết Huy Phong 19 TỔNG KẾT Sau tháng thực tập công ty, em học nhiều đều, không kiến thức riêng lập trình mà cịn quy chuẩn làm việc công ty, để biết doanh nghiệp làm việc nào, phối hợp nhân lực Hơn nữa, em tiếp thu kinh nghiệp quý báu từ anh chị đồng nghiệp, góp phần giúp em hồn thiện kiến thức, kỹ đạt số thành cơng định q trình thực tập công ty Về tư tưởng thân, em biết để trở thành lập trình viên, lập trình viên khác giải vấn đề, nghề nghiệp làm tương lai, định hướng nghề nghiệp Nguyễn Vĩnh Khiêm Trương Viết Huy Phong ... dụng web NodeJS, Express với nhiều phiên khác Cùng với xu đó, Cơng ty Cổ phần Codosa Holing , cụ thể mảng Codosa Tech chọn tập trung nghiên cứu xây dựng ứng dụng theo mã nguồn mở Và thực tập sinh... schema Model Thực : - Tham gia đầy đủ buổi training Xây dựng model api thực thi transaction model Kết quả: - Đã xây dựng model hệ thống, thực thi transaction model thông qua API Thực project... đoạn Khiêm - Thực chức đăng nhập, đăng kí, xác thực thông qua sms - Xây dựng model tổng quan authencation - 6&7 & 10 11 trở Thực chức phân quyền cho admin - Xây dựng service xác thực người dùng

Ngày đăng: 05/09/2021, 21:07

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦ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 Gameloft

    • 2. Sản phẩm của công ty

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

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

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

      • 3. Thực hiện project

      • 4. Lịch làm việc

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

        • 1. Giới thiệu về PawnVn

        • 2. Thực hiện

        • TÀI LIỆU THAM KHẢO

        • TỔNG KẾT

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan