Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
1,45 MB
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 LẬP TRÌNH WEB BACKEND VỚI NODEJS Công ty thực tập : Công ty cổ phần công nghệ Eduteck Người phụ trách : Nguyễn Thanh Nhàn Thực tập sinh : Nguyễn Thanh Thọ TP Hồ Chí Minh, tháng 12 năm 2020 LỜI MỞ ĐẦU Ngày công nghệ thông tin phần thiếu sống Nhờ phát triển dịch vụ internet, làm cho việc lướt web diễn hàng ngày Công nghệ web trở thành phần thiếu NodeJS tảng xây dựng V8 JavaScript Engine – trình thơng dịch thực thi mã JavaScript, giúp xây dựng ứng dụng web cách đơn giản dễ dàng mở rộng Nó hệ thống phần mềm thiết kế để viết ứng dụng web, đặc biệt máy chủ web.Việc sữ dụng kỹ thuật điều khiển kiện javascript, việc tối thiểu nhập xuất bất đồng để tối thiểu tổng chi phí tối đa khả mở rộng giúp dễ dàng quản lý ứng dụng Đó lý em định chọn nodejs javascript đồng hành với nghiệp thân Theo khảo sát Stack Overflow framework, tảng sử dụng nhiều năm 2019, NodeJS giành vị trí số với số lượng người dùng lên đến gần 50% Điều cho thấy học NodeJS, hội việc làm bạn vô rộng mở LỜI CẢM ƠN Trân trọng gửi lời cảm ơn đến anh Nguyễn Thanh Nhàn công ty Edutek tạo điều kiện để em học hỏi kinh nghiệm thực tế công ty Với chân thành nhiệt tình từ phía anh Nhàn anh Tâm em giúp em mở rộng tầm hiểu biết, giúp em có nhìn khái qt mặt cơng nghệ thơng tin Ngồi người cịn giúp đỡ em kỹ năng mềm vấn đề tiếp cận công nghệ quản lý team Cũng xin cảm ơn thầy cô 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 Nguyễn Thanh Thọ TPHCM, ngày 30 tháng 12 năm 2020 NHẬN XÉT CỦA KHOA …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Mục lục Mục lục Chương 1: Giới thiệu công ty thực tập Chương 2: Nội dung thực tập Hướng dẫn quy tắc làm việc nhóm quy định cơng ty Nghiên cứu kỹ thuật Tìm hiểu javascript thay đổi ES6 javascript Tìm hiểu reactjs framework liên quan Tìm hiểu expressjs framework liên quan Thực project Lịch làm việc Chương 3: Chi tiết project Giới thiệu dự án Igen let’s speaking Mục đích Các API phục vụ cho hệ thống Igen Thực Kế hoạch 11 11 11 11 17 18 TÀI LIỆU THAM KHẢO 22 TỔNG KẾT 23 Chương 1: Giới thiệu công ty thực tập Sáng lập anh Nguyễn Trung Tâm, công ty Edutek công ty công ty cổ phần giáo dục Tesse Công ty chuyên cung cấp giải pháp công nghệ phục vụ cho tảng giáo dục cho khách hàng, ngồi cơng ty cịn chun cung dịch vụ, tư vấn, giải pháp cho ứng dụng ERP, Blockchain, Ngồi cơng ty cịn cung cấp hệ thống học trực tuyến Tesse Online Classroom, tảng học trực tuyến hệ người Việt tạo 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 sinh viên thực tập đào tạo lập trình web sử dụng Ruby on Rails React, đồng thời rèn luyện kỹ mềm 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 Jira Tại công ty, sinh viên có hội học tập, khám phá làm việc môi trường startup động Sinh viên thực tập công ty tham gia khoá học đào tạo javascript bản, reactjs bản, expressjs Sau hồn thành khố học sinh viên nhận lời khuyên định hướng phát triển khả thân như: front-end, back-end, devops Ngồi việc học cơng nghệ sinh viên hướng dẫn kỹ mềm làm việc teamwork, cách sữ dụng git mô hình hố liệu 2.1 Hướng dẫn quy tắc làm việc nhóm quy định công ty Thời gian : ngày Nội dung : - Giới thiệu hệ thống nhân lịch sử phát triển công ty - Hướng dẫn quy định công ty yêu cầu làm việc nhóm - Giới thiệu dự án cơng ty sách công ty với nhân viên Kết : - Hiếu khó khăn trở thành startup công nghệ - Hiểu sứ mệnh hướng phát triển công ty - Hiểu cách thức làm việc quy trình chuyên nghiệp 2.2 Nghiên cứu kỹ thuật 2.2.1 Tìm hiểu javascript thay đổi ES6 javascript ❖ Thời gian: tuần ❖ Nội dung: ➢ Học nội dung javascript như: biến, kiểu liệu, xử lý mảng đối tượng, phép tính, cách dùng hàm, hàm thường dùng (map, filter, find, reduce, ), mệnh đề điều khiển, callback, promise, cuối ngày có tập review nội dung học ➢ Học kiến thức từ ES6 sau so sánh thay đổi mang lại hiệu cao cho javascript ➢ Tìm hiểu nodejs framework có liên quan ❖ Kết quả: ➢ Có nhìn vừa tổng quan vừa sâu sắc javascript ➢ Nắm nội dung cốt lõi javascript 2.2.2 Tìm hiểu reactjs framework liên quan ❖ Thời gian: tuần ❖ Nội dung: ➢ Học khái niệm reactjs như: element, jsx, props, lifecycle, condition, event handler, cách dùng form ➢ Kết hợp reactjs với số thư viện bootstrap, ant design, material ui, ➢ Học hook reactjs Kiến trúc redux, redux-thunk, reactrouter, để xây dựng single page application ❖ Kết quả: ➢ Nắm nội dung reactjs ➢ Ngồi q trình học cịn tham gia sửa chữa lỗi từ dự án công ty tạo môi trường vừa học vừa làm cho sinh viên 2.2.3 Tìm hiểu expressjs framework liên quan ❖ Thời gian: tuần ❖ Nội dung: ➢ Học khái niệm expressjs như: router, xử lý bất đồng với async await, kiến thức REST API ➢ Kết hợp với số thư viện mongoose để điều khiển việc kết nối với mongodb ➢ Kết hợp với thư viện JWT để tạo token phục vụ cho RESTFUL API ➢ Học kiến thức typescript, nestjs ❖ Kết quả: ➢ Nắm nội dung server-side ➢ Học cách thiết kế api theo chuẩn RestFul API 2.3 Thực project Sau thời gian tuần tiếp cận với javascript dạy tận tình thơng quan buổi seminar tiếp cận với dự án thực tế Các anh giúp em nhận hướng phát triển mơi trường thích hợp với thân server-side Trong thời gian tuần em đóng góp kiến thức để giúp anh tiếp tục hồn thành dự án cơng cơng igen với vị trí backend Link document api https://lseigen.xyz/api/ 2.4 Lịch làm việc Tuần Công việc ● Hướng dẫn quy tắc cơng ty qui tắc làm việc nhóm ● Hướng dẫn đào tạo kiến thức javascript ● Hướng dẫn đào tạo kiến thức reactjs ● Hướng dẫn đào tạo kiến thức expressjs nestjs ● Hướng dẫn đào tạo kiến thức expressjs nestjs ● Hướng dẫn khái niệm NOSQL phương thức restful api ● Tham gia dự án viết api quản lý sản phẩm cho cửa hàng ● Tham gia dự án igen Viết api quản lý speaker dự án ● Học cách dùng swagger để viết document api ● Viết api quản lý topic lesson cho nhiều đối tượng phần cấp hệ thống ● Viết api quản lý lịch học đăng ký lesson từ hệ thống Người hướng dẫn Anh Tâm, Nhàn Mức độ hoàn thành Nhận xét người hướng dẫn anh Anh Nhàn Anh Nhàn Anh Nhàn Anh Tâm Anh Nhàn Anh Nhàn Anh Nhàn 10 Chương 3: Chi tiết project 3.1 Giới thiệu dự án Igen let’s speaking Igen cộng đồng người học thích tiếng anh thuộc câu lạc trường đại học kinh tế luật Ở họ giúp cho người học tiếng anh giao lưu trực tiếp với người nước ngồi để trao đổi văn hố, kiến thức với 3.1.1 Mục đích Dự án đóng vai trị cầu nối cho sinh viên đăng ký buổi học tạo từ speaker Hệ thống cịn giúp nhắc nhở thơng báo cho người dùng đến thời gian học Thông qua dự án người dùng học trực tuyến tảng zoom, google meet hệ thống công ty mẹ tesse Giúp cho người quản lý dự án bỏ cơng sức làm việc hiệu việc đăng viết lên mạng xã hội, quản lý thông tin user, speaker hệ thống thông qua file excel khơng đảm bảo thơng tin an tồn 3.1.2 Các API phục vụ cho hệ thống Igen ➢ APIs quản lý speaker: ○ Yêu cầu tài khoản đăng nhập với quyền admin srm gọi api hình 3.1 ○ Với phương thức GET /speaker giúp speaker quản lý tài khoản người gọi Những cài đặt gửi lên giá trị nhận gọi api tương tự hình 3.2 hình 3.3 ○ Với phương thức POST /speaker giúp người lập trình frontend xác định giá trị mà server nhận lưu vào database liệu trả lưu hình ○ Với PUT /speaker DELETE /speaker tương tự phương thức POST Hình 3.1 Danh sách api quản lý speaker 11 Hình 3.2 Mơ tả chi tiết api get all speaker Hình 3.3 Dữ liệu trả lấy danh sách speaker 12 Hình 3.4 Schema cho phương thức POST ➢ APIs quản lý tài khoản hình 3.5: ○ Với phương GET /getInfo giúp lấy thông tin người dùng ○ Với phương thức POST /changePassword giúp kiểm tra cũ thay đổi mật cho tài khoản ○ Với phương thức POST /getCode giúp kiểm tra email tài khoản nhận lại mã áp dụng cho việc reset password ○ Với phương thức POST /resetPassword giúp kiểm tra mã cấp q trình get code cịn hạn sử dụng hay khơng sau thay đổi password 13 Hình 3.5 Quản lý tài khoản ➢ APIs xác thực người dùng hình 3.6: ○ Với phương thức POST /auth/register dùng để đăng ký tài khoản hệ thống ngồi đăng ký google, facebook thơng qua POST /auth/userRegister ○ Với phương thức POST /auth/login dùng để đăng nhập tài khoản đăng ký hệ thống Với tài khoản đăng nhập google facebook đăng nhập POST /auth/loginWithOther ○ Với phương thức POST /auth/activeUser tài khoản tạo hệ thống phải thực xác nhận thơng qua gmail để kích hoạt Hình 3.6 Xác thực người dùng ➢ APIs quản lý lesson cho người dùng hệ thống hình 3.7 ○ Với phương thức GET /lesson hỗ trợ cho tài khoản admin để lấy danh sách tất lesson speaker ○ Với phương thức GET /lesson/mySpeaker hỗ trợ cho tài khoản srm để lấy danh sách tất lesson cách speaker thuộc quản lý họ ○ Với phương thức GET /lesson/myLesson giúp cho tài khoản speaker lấy lesson ○ Với phương thức POST /lesson hỗ trợ cho tài khoản có 14 role khác user để tạo lesson ○ Với phương thức PUT /lesson hỗ trợ cho tài khoản có role khác user để cập nhật thông tin cho lesson, với lesson có người đăng ký học không đc thay đổi thông ○ Với phương thức DELETE /lesson hỗ trợ cho tài khoản có role admin Khi thực chức xoá sẽ thực gửi mail đến toàn tài khoản đăng ký lesson speaker lesson Hình 3.7 Quản lý lesson cho người quản lý hệ thống ➢ APIs cho tài khoản user đăng ký lesson topic hệ thống hình 3.8: ○ Với phương thức GET /topics/getAllTopicByDay lấy danh sách topic diễn lesson theo ngày sau ○ Với phương thức POST /topics/book-topic giúp kiểm tra tài khoản user có phép đăng ký lesson thuộc topic hay khơng ○ Với phương thức POST /topics/join-topic đến thời gian user tham gia lớp học tảng zoom, google meeting ○ Với phương thức GET /topics/getMyHistory lấy danh sách topic đăng ký 15 Hình 3.8 Quản lý lesson ➢ APIs quản lý user admin ○ Với phương thức GET /users/getAllUser giúp lấy tất user từ hệ thống ○ Với phương thức GET /users/getAllUserBlock giúp lấy tất user bị khoá từ hệ thống ○ Với phương thức POST /users/createUser giúp tài khoản với role admin thêm tài khoản khác ○ Với phương thức PUT /user/updateUser giúp tài khoản admin có thẻ chỉnh lại role, type account, name, phone cho tài khoản khác ○ Với phương thức POST /users/sendMailFeedback giúp admin nhắn tin trực tiếp từ hệ thống đến user khác mà không cần vào email ○ Với phương thức POST /users/verifyAccountSuccess giúp admin verify tài khoản hợp lệ phép sử dụng hệ thống Hình 3.8 Quản lý users ➢ APIs quản lý nhóm speaker ○ Với phương thức GET /room lấy danh sách kênh Mỗi kênh có Host, deputy nhiều speaker khách ○ Với phương thức POST /room cho phép admin tạo kênh khác srm hệ thống dễ dàng quản lý speaker ○ Với phương thức PUT /room cho phép admin thay đổi cập nhật speaker srm kênh ○ Với phương thức DELETE /room cho phép admin xóa kênh gửi mail đến toàn speaker kênh 16 3.2 Thực Các thành viên team internship: ❖ Nguyễn Thanh Thọ ❖ Bùi Bình Và giúp đỡ tận tình anh Tâm, anh Nhàn 3.3 Kế hoạch ❖ Sprint: ➢ Phân tích yêu cầu từ phía khách hàng ➢ Mơ hình hóa chức thơng quan sơ đồ Usecase diagram, Activity diagram, Class diagram ➢ Viết api xử lý liệu phía server ❖ Kết : ➢ Hồn thành mơ hình hố liệu: ■ Sơ đồ usecase 17 18 ■ Sơ đồ class diagram 19 TÀI LIỆU THAM KHẢO Javascript https://developer.mozilla.org/ ReactJS https://reactjs.org/ NodeJS https://nodejs.vn/ NestJS https://nestjs.com/ Mongoose https://mongoosejs.com/ 20 TỔNG KẾT Trong thời gian tháng làm việc môi trường chuyên nghiệp Em nhận giúp đỡ anh Học khả suy nghĩ độc lập, phân tích giải vấn đề, nâng cao khả tự học Học kiến thức javascript phát triển khả tư server-side thân Chân thành cảm ơn thầy cô anh chị công ty Edutek tạo điều kiện môi trường để sinh viên tụi em chuẩn bị hành trang chặn đường dài tới 21 ... dung thực tập Đợt thực tập ứng dụng mơ hình làm việc Scrum sinh viên thực tập đào tạo lập trình web sử dụng Ruby on Rails React, đồng thời rèn luyện kỹ mềm làm việc nhóm theo Scrum, thuyết trình, ... cho việc lướt web diễn hàng ngày Công nghệ web trở thành phần thiếu NodeJS tảng xây dựng V8 JavaScript Engine – trình thơng dịch thực thi mã JavaScript, giúp xây dựng ứng dụng web cách đơn giản... API 2.3 Thực project Sau thời gian tuần tiếp cận với javascript dạy tận tình thơng quan buổi seminar tiếp cận với dự án thực tế Các anh giúp em nhận hướng phát triển mơi trường thích hợp với thân