Giúp cho những người quản lý dự án có thể bỏ ít công sức hơn nhưnglàm việc hiệu quả hơn là việc đăng các bài viết lên mạng xã hội, quản lý thôngtin user, speaker của hệ thống thông qua n
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2LỜI MỞ ĐẦU
Ngày nay công nghệ thông tin là một phần không thể thiếu đối với cuộcsống của chúng ta Nhờ sự phát triển của dịch vụ internet, nó đã làm cho việc lướtweb diễn ra hàng ngày Công nghệ web trở thành một phần không thể thiếu trongchúng ta
NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trìnhthông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơngiản và dễ dàng mở rộng Nó là 1 hệ thống phần mềm được thiết kế để viết các ứngdụng web, đặc biệt là máy chủ web.Việc sữ dụng kỹ thuật điều khiển sự kiện củajavascript, việc tối thiểu nhập xuất bất đồng bộ để tối thiểu tổng chi phí và tối đakhả năng mở rộng giúp chúng ta dễ dàng quản lý ứng dụng Đó là lý do em quyếtđịnh chọn nodejs và javascript đồng hành với sự nghiệp của bản thân
Theo khảo sát của Stack Overflow về các framework, nền tảng được sử dụngnhiều nhất năm 2019, NodeJS đã giành vị trí số 1 với số lượng người dùng lên đếngần 50% Điều đó cho thấy nếu học NodeJS, cơ hội việc làm của bạn sẽ vô cùngrộng mở
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến anh Nguyễn Thanh Nhàn của công ty Edutek đãtạo điều kiện để em được học hỏi kinh nghiệm thực tế ở công ty
Với sự chân thành và nhiệt tình từ phía anh Nhàn và anh Tâm em đã giúp em
mở rộng tầm hiểu biết, giúp em có cái nhìn khái quát hơn về mặt công nghệ thông tin.Ngoài ra mọi người còn giúp đỡ em trong những kỹ năng năng mềm trong vấn đề tiếpcận công nghệ mới và quản lý team
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ,tạo điều kiện em làm bài báo cáo này
Nguyễn Thanh ThọTPHCM, ngày 30 tháng 12 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5Mục lục
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
Tìm hiểu về javascript và những thay đổi của ES6 trong javascript 7Tìm hiểu về reactjs và những framework liên quan 8Tìm hiểu về expressjs và những framework liên quan 8
Giới thiệu về dự án Igen let’s speaking 11
Trang 6Chương 1: Giới thiệu công ty thực tập
Sáng lập bởi anh Nguyễn Trung Tâm, công ty Edutek là công ty con của công
ty cổ phần giáo dục Tesse Công ty chuyên cung cấp những giải pháp công nghệ phục
vụ cho nền tảng giáo dục cho khách hàng, ngoài ra công ty còn chuyên cung dịch vụ,
tư vấn, giải pháp cho các ứng dụng ERP, Blockchain, Ngoài ra công ty còn cung cấp
hệ thống học trực tuyến Tesse Online Classroom, một nền tảng học trực tuyến thế hệmới do chính người Việt tạo ra
Trang 7Chươ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 đàotạo cơ bản về lập trình web sử dụng Ruby on Rails và React, đồng thời rèn luyệnnhững kỹ năng mềm như làm việc nhóm theo Scrum, thuyết trình, giao tiếp, sử dụngcông cụ quản lý công việc như Jira 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
Sinh viên khi thực tập ở công ty sẽ được tham gia khoá học đào tạo javascript
cơ bản, reactjs cơ bản, expressjs cơ bản Sau khi hoàn thành các khoá học cơ bản sinhviên sẽ nhận được lời khuyên về định hướng phát triển về khả năng bản thân như:front-end, back-end, devops Ngoài việc học về công nghệ sinh viên còn được hướngdẫ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
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
Thời gian : 1 ngày
Nội dung :
- Giới thiệu về hệ thống nhân sự và lịch sử phát triển của công ty
- Hướng dẫn những quy định của công ty và những yêu cầu cơ bản khilàm việc nhóm
- Giới thiệu những dự án hiện tại của công ty và những chính sách củacông ty với nhân viên
Kết quả :
- Hiếu được những khó khăn khi trở thành startup công nghệ
- Hiểu được sứ mệnh và hướng phát triển của công ty
- Hiểu được cách thức làm việc của quy trình chuyên nghiệp
2.2.1 Tìm hiểu về javascript và những thay đổi của ES6 trong javascript
❖ Thời gian: 1 tuần.
❖ Nội dung:
Trang 8➢ Học những nội dung cơ bản về javascript như: biến, kiểu dữ liệu,
xử lý mảng đối tượng, các phép tính, cách dùng hàm, các hàmthường dùng (map, filter, find, reduce, ), các mệnh đề điềukhiển, callback, promise, và cuối ngày sẽ có bài tập review vềnội dung được học
➢ Học những kiến thức từ ES6 về sau và so sánh những thay đổimang lại hiệu quả cao cho javascript
➢ Tìm hiểu về nodejs và những framework có liên quan
❖ Kết quả:
➢ Có cái nhìn vừa tổng quan vừa sâu sắc trong javascript
➢ Nắm được những nội dung cốt lõi của javascript
2.2.2 Tìm hiểu về reactjs và những framework liên quan
❖ Thời gian: 1 tuần.
➢ Nắm được những nội dung cơ bản về reactjs
➢ Ngoài ra trong quá trình học còn được tham gia sửa chữa nhữnglỗi cơ bản từ những dự án của công ty tạo ra môi trường vừa họcvừa làm cho sinh viên
2.2.3 Tìm hiểu về expressjs và những framework liên quan
❖ Thời gian: 1 tuần.
➢ Nắm được những nội dung cơ bản về server-side
➢ Học được cách thiết kế api theo chuẩn RestFul API
Trang 92.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
2 ● Hướng dẫn đào tạo kiếnthức căn bản reactjs. Anh Nhàn.
3 ● Hướng dẫn đào tạo kiến
● Tham gia dự án viết api
quản lý sản phẩm cho cửahàng
Anh Tâm
6
● Tham gia dự án igen Viết
api quản lý các speaker của
● Viết api quản lý các topic
và lesson cho nhiều đốitượng được phần cấp trong
hệ thống
Anh Nhàn
8
● Viết api quản lý lịch học và
đăng ký lesson mới từ hệthống
Anh Nhàn
Trang 11Chương 3: Chi tiết về project
3.1 Giới thiệu về dự án Igen let’s speaking
Igen là một cộng đồng người học thích tiếng anh thuộc câu lạc bộ củatrường đại học kinh tế luật Ở đây họ giúp cho những người học tiếng anh cóthể được giao lưu trực tiếp với những người nước ngoài để có thể trao đổi vănhoá, kiến thức với nhau
3.1.1 Mục đích
Dự án đóng vai trò cầu nối cho các sinh viên đăng ký những buổi họcđược tạo ra từ các speaker Hệ thống còn giúp nhắc nhở thông báo cho ngườidùng khi đến thời gian học Thông qua dự án người dùng sẽ được học trựctuyến trên các nền tảng như zoom, google meet và hệ thống của công ty mẹ làtesse
Giúp cho những người quản lý dự án có thể bỏ ít công sức hơn nhưnglàm việc hiệu quả hơn là việc đăng các bài viết lên mạng xã hội, quản lý thôngtin user, speaker của hệ thống thông qua những file excel hoặc không đảm bảođược thông tin an toà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 hoặc srm mới cóthể gọi được các api như hình 3.1
○ Với phương thức GET /speaker sẽ giúp ra các speaker được
quản lý bởi tài khoản người gọi Những cài đặt khi gửi lên và giátrị nhận về khi gọi api tương tự như hình 3.2 và hình 3.3
○ Với phương thức POST /speaker sẽ giúp người lập trình
front-end xác định những giá trị mà server có thể nhận và lưu vàodatabase và dữ liệu được trả về sao khi lưu hình
○ Với PUT /speaker DELETE /speaker tương tự như phương
thức POST
Trang 12Hình 3.1 Danh sách các api trong quản lý speaker
Hình 3.2 Mô tả chi tiết về api get all speaker
Trang 13Hình 3.3 Dữ liệu trả về khi lấy danh sách speaker
Hình 3.4 Schema cho phương thức POST
➢ APIs quản lý tài khoản như hình 3.5:
Trang 14○ Với phương GET /getInfo giúp lấy ra thông tin cơ bản
của người dùng
○ Với phương thức POST /changePassword giúp kiểm tra
khẩu cũ và thay đổi mật khẩu mới cho tài khoản
○ Với phương thức POST /getCode giúp kiểm tra email tài
khoản và 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 cấp trong quá trình get code còn hạn sử dụng hay không và sau đó thay đổi password
Hình 3.5 Quản lý tài khoản.
➢ APIs xác thực người dùng như hình 3.6:
○ Với phương thức POST /auth/register dùng để đăng ký
tài khoản trên hệ thống ngoài ra có thể đăng ký bằng
google, facebook thông qua POST /auth/userRegister.
○ Với phương thức POST /auth/login dùng để đăng nhập
bằng tài khoản đã được đăng ký trên hệ thống Với những tài khoản đăng nhập bằng google hoặc facebook thì sẽ
được đăng nhập bằng POST /auth/loginWithOther
○ Với phương thức POST /auth/activeUser đối với những
tài khoản tạo trên hệ thống thì phải thực hiện xác nhận thông qua gmail để được kích hoạt
Trang 15Hì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 chỉ hỗ trợ cho tài khoản là
admin để lấy ra danh sách tất cả các lesson của các
speaker
○ Với phương thức GET /lesson/mySpeaker chỉ hỗ trợ cho
tài khoản là srm để lấy ra danh sách tất cả các lesson của cách speaker thuộc sự quản lý của họ
○ Với phương thức GET /lesson/myLesson giúp cho những
tài khoản speaker lấy ra những lesson hiện tại của mình
○ Với phương thức POST /lesson hỗ trợ cho tài khoản có
role khác user để tạo ra các 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 các lesson, với những lesson đã có người đăng ký học thì sẽ không đc thay đổi thông
○ Với phương thức DELETE /lesson hỗ trợ cho tài khoản
có role là admin Khi thực hiện chức năng xoá sẽ sẽ thực hiện gửi mail đến toàn bộ những tài khoản đã đăng ký lesson và speaker của 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 của các topic trên hệ
thống hình 3.8:
○ Với phương thức GET /topics/getAllTopicByDay lấy ra
danh sách các topic đang diễn ra lesson theo ngày hiện tại
về sau
○ Với phương thức POST /topics/book-topic giúp kiểm tra
tài khoản user có được phép đăng ký lesson thuộc topic đóhay không
Trang 16○ Với phương thức POST /topics/join-topic khi đến thời
gian user có thể tham gia lớp học ở các nền tảng như zoom, google meeting
○ Với phương thức GET /topics/getMyHistory lấy ra danh
sách các topic đã đăng ký
Hình 3.8 Quản lý lesson
➢ APIs quản lý user của admin
○ Với phương thức GET /users/getAllUser giúp lấy ra tất
cả user từ hệ thống
○ Với phương thức GET /users/getAllUserBlock giúp lấy
ra tất cả user bị khoá từ hệ thống
○ Với phương thức POST /users/createUser giúp các tài
khoản với role là admin có thể thêm mới các tài khoản khác
○ Với phương thức PUT /user/updateUser giúp các tài
khoản admin có thẻ chỉnh lại role, type account, name, phone cho các tài khoản khác
○ Với phương thức POST /users/sendMailFeedback giúp
các admin có thể nhắn tin trực tiếp từ hệ thống đến các user khác mà không cần vào email
○ Với phương thức POST /users/verifyAccountSuccess
giúp admin có thể verify các tài khoản hợp lệ được phép
sử dụng hệ thống
Hình 3.8 Quản lý users
➢ APIs quản lý nhóm speaker
Trang 17○ Với phương thức GET /room lấy ra danh sách các kênh
hiện tại Mỗi kênh thì sẽ có một Host, một deputy và nhiềuspeaker khách
○ Với phương thức POST /room cho phép admin tạo ra
những kênh khác nhau để cho các srm trong hệ thống dễ dàng quản lý các speaker
○ Với phương thức PUT /room cho phép admin thay đổi
cập nhật các speaker và các srm trong kênh
○ Với phương thức DELETE /room cho phép admin xóa
kênh và gửi mail đến toàn bộ những speaker đang ở trong kênh
➢ Phân tích yêu cầu từ phía khách hàng
➢ Mô hình hóa chức năng thông quan sơ đồ Usecase diagram,Activity diagram, Class diagram
➢ Viết api xử lý dữ liệu phía server
❖ Kết quả :
Trang 18➢ Hoàn thành mô hình hoá dữ liệu:
■ Sơ đồ usecase
Trang 20■ Sơ đồ class diagram
Trang 21TÀI LIỆU THAM KHẢO
Trang 22TỔNG KẾT
Trong thời gian 2 tháng làm việc trong môi trường chuyên nghiệp Em đã nhậnđược sự giúp đỡ của các anh Học được khả năng suy nghĩ độc lập, phân tích và giảiquyết vấn đề, nâng cao khả năng tự học Học được những kiến thức căn bản vềjavascript và phát triển khả năng tư duy server-side của bản thân
Chân thành cảm ơn thầy cô và các anh chị của công ty Edutek đã tạo điều kiện
và môi trường để những sinh viên như tụi em chuẩn bị hành trang trong chặn đườngdài sắp tới