Có được bài báo cáo thực tập này, em xin bày tỏ long biết ơn chân thành và sâu sắcđến các anh chị và các bạn cùng thực tập với em trong Công ty TNHH Giải Pháp CôngNghệ IT-Global đã trực
TÌM HIỂU TỔNG QUÁT VỀ Công TY TNHH GIẢI PHÁP CÔNG NGHỆ–IT-GLOBAL
Giei thiệu cơ cấu tổ chức và nhân sự cia đơn vk
3.1 Khhi quht một số nội dung lý thuyết căn bản về chi đề nghiên cứu 3.1.1 RESTFUL API là gì ?
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
- API (Application rogramming Interface) là một tập các quy tắc và cơ chế màP theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.
- REST RE ( presentational tate Transfer) là một dạng chuyển đổi cấu trúc dữS liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu.
- Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.
THỰC TRẠNG CHQ ĐỀ NGHIÊN CỨU
Khhi quht một số nội dung lý thuyết căn bản về chi đề nghiên cứu
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
- API (Application rogramming Interface) là một tập các quy tắc và cơ chế màP theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.
- REST RE ( presentational tate Transfer) là một dạng chuyển đổi cấu trúc dữS liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu.
- Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.
Hình 3.1 Mô hình REST API
- Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng.
- Nodejs được xây dựng và phát triển ti năm 2009, bảo trợ bởi công ty Joyent, trụ sở tại California, Hoa Kỳ Dù sao thì chúng ta cũng nên biết qua một chút chút lịch sử của thứ mà chúng ta đang học một chút chứ nhỉ?
- Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao.
- Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.
- Nest (NestJS) là framwok để xây dựng các ứng dụng phía máy chủ Node.js hiệu quả, có thể mở rộng Nó sử dụng JavaScript lũy tiến, được xây dựng và hỗ trợ đầy đủ TypeScript
- Về cơ bản, Nest sử dụng các khung Máy chủ HTTP mạnh mẽ như Express (mặc định) và có thể được định cấu hình tùy chọn để sử dụng cả Fastify!
- Nest cung cấp mức độ triu tượng cao hơn các khung Node.js phổ biến như Express/Fastify, nhưng cũng hiển thị trực tiếp các API của chúng cho nhà phát triển Điều này cho phnp các nhà phát triển tự do sử dụng vô số mô-đun của bên thứ ba có sẵn cho nền tảng cơ bản.
Hình 3.2 Trang chủ của NestJS
3.1.4 Cơ sở dữ liệu phi quan hệ MongoDB là gì?
- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql và được hàng triệu người sử dụng.
- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ rất nhanh.
- Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (nhưMySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng
- So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng các document thay cho row trong RDBMS.
- Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phnp các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định.
- Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB
Trình bày và phân tích chc dữ liệu, quy trình mà sinh viên thu thập được
- Thực hiện tham gia họp với khách hành để thu thập nhu cầu , đánh giá khả năng của dự án , xem xnt các chức năng dựa trên yêu cầu của khách hàng.
- Thực hiện nghiên cứu về API cũng như hiểu rõ về nodeJS
- Học cách sử dụng Framwork NestJs để viết API giúp thêm , xóa ,sửa , xem và tìm kiếm dựa trên request bên phái Fornt-end.
- Hiểu được cách kết nối dữ liệu với database MongoDB , cách tương tác cũng như truy vấn dữ liệu ti MongoDB
- Tham gia , hỗ trợ việc thêm dữ liệu và gởi về database để kiểm thử độ ổn định và hiệu quả
- Truy cập , cấu hình và kiểm tra database MongodB
Hình 3.3 Trang web MongoDB của dự án
KXT QUẢ THỰC TẬP
Nhiệm vụ
- Thu thập thông tin ti khách hàng - Xây dựng logic để viết RESTFUL API - Tạo cơ sở dữ liệu MongoDB để tương tác với api
- Dùng Postman để gởi các request như GET , POST , PATCH , DELETE để kiểm tra khả năng
Chức năng
- Tạo các module : tin tức , tin tuyển dụng , thư tư vấn ti khác hàng , người dùng - Chức năng xem theo danh sách hoặc xem theo id của ting module
- Chức năng thêm dữ liệu của ting module - Chức năng sửa dữ liệu của ting module - Chức năng xóa dữ liệu của ting module - Chức năng tìm kiếm dữ liệu của ting module - Chức năng phân trang dữ liệu của ting module - Chức năng sắp xếp dữ liệu theo ngày của ting module
- Tương tác dữ liệu qua trang web databe: MongoDB: The Developer Data Platform | MongoDB
- Call api ti serer heroku : Cloud Application Platform | Heroku- Đường dẫn chung api để thực hiện các request : https://be-fe.herokuapp.com
4.2 Phân tích hệ thống đặc tả
- Luồng đi của dữ liệu :
Hình 4.1 Luồng đi của dữ liệu
Hình 4.2 Sơ đồ chức năng của dự án
4.3 Xây dựng chương trình xoay quanh chc module:
4.3.1 Chức năng GET dữ liệu:
- Get dữ liệu, phân trang, sắp xếp theo ngày: dùng post man để thực hiện request lấy tất cả dữ liệu của module , phân trang dữ liệu và sắp xếp theo ngày gần nhất.
Hình 4.3 Lấy tất cả dữ liệu và phân trang
4.3.2 Chức năng POST dữ liệu:
- Post thêm dữ liệu : dùng postman thực hiện request và kiểm tra xem dữ liệu đã được thêm vào chưa
Hình 4.4 Thêm dữ liệu cho module người dùng
4.3.3 Chức năng PATCH dữ liệu :
- Patch sửa dữ liệu : dùng postman thực hiện request sửa 1 hoặc nhiều trường và kiểm tra xem dữ liệu đã được sửa chưa
Hình 4.5 Sửa dữ liệu cho module người dùng dựa trên id
4.3.4 Chức năng DELETE dữ liệu:
- Delete xóa dữ liệu : dùng postman thực hiện request và kiểm tra xem dữ liệu đã được xóa chưa
Hình 4.6 Xóa dữ liệu cho module người dùng dựa trên id
4.3.5 Chức năng SEARCH dữ liệu:
- Search tìm kiếm dữ liệu : dùng postman thực hiện request và kiểm tra xem có tìm thấy dữ liệu dựa trên ti khóa đã nhập vào chưa
Hình 4.7 Tìm kiếm dữ liệu theo từ khóa “Th”
4.4 Tmo lập bảng CSDL (nếu có):
Hình 4.8 Mô hình CSDL của dự án
4.5 So shnh giữa lý thuyết và thực tiễn Nhận xét:
- Môi trường làm việc ở thực tế khác xa với lý thuyết đã học trên trường
- Những kiến thức đã học không áp dụng được nhiều trong thực tế Đhnh gih:
- Lí thuyết và thưc hành phải luôn đi đôi với nhau, lí thuyết là nền tảng cho thực tiễn và thực tiễn cũng là kết quả của viêc h áp dung nhuần nhuyễn lý thuyết
- Để đạt đươc hiệu quả, ngoài những kiến thức ở trường em còn phải trang bi h cho mình kỹ năng mềm, đó là những kỹ năng học h ỏi trong thực tế và biến chúng thành thế mạnh cho bản thân mình Như là kỹ năng làm việc nhóm, kỹ năng sáng tao, tư duy, quan sát, kỹ năng giao tiếp, thuyết trình
4.6 Đề xuất chc giải phhp cải thiện tình hình thực tế
- Rèn luyện kĩ năng viết code
- Không nging trau dồi kiến thức, học tập công nghệ mới
- Nâng cao tinh thần trách nhiệm với công việc được giao
- Tiếp thu các nhận xnt, đánh giá ti những người đi trước và đồng nghiệp
- Tham khảo, tìm hiểu công cụ thích hợp để hỗ trợ tốt cho quá trình lập trình
- Nâng cao kỹ năng giao tiếp và đưa ra câu hỏi.
4.7 Những khó khăn trong quh trình thực tập
- Chưa hoàn thành tốt nhiệm vụ mỗi ngày do khối lượng kiến thức mới cần học hỏi và áp dụng
- Kỹ năng thuyết trình còn yếu knm , cần phải cải thiện - Via phải tham gia học trên trường, via tham gia thực tập ở phía công ty khiến cho việc cân bằng thời gian bị hạn chế nên cũng mất đi những buổi training cần thiết.
- Chưa thích ứng tốt với môi trường làm việc.
Phân tích hệ thống đặc tả
- Luồng đi của dữ liệu :
Hình 4.1 Luồng đi của dữ liệu
Hình 4.2 Sơ đồ chức năng của dự án
Xây dựng chương trình xoay quanh chc module
4.3.1 Chức năng GET dữ liệu:
- Get dữ liệu, phân trang, sắp xếp theo ngày: dùng post man để thực hiện request lấy tất cả dữ liệu của module , phân trang dữ liệu và sắp xếp theo ngày gần nhất.
Hình 4.3 Lấy tất cả dữ liệu và phân trang
4.3.2 Chức năng POST dữ liệu:
- Post thêm dữ liệu : dùng postman thực hiện request và kiểm tra xem dữ liệu đã được thêm vào chưa
Hình 4.4 Thêm dữ liệu cho module người dùng
4.3.3 Chức năng PATCH dữ liệu :
- Patch sửa dữ liệu : dùng postman thực hiện request sửa 1 hoặc nhiều trường và kiểm tra xem dữ liệu đã được sửa chưa
Hình 4.5 Sửa dữ liệu cho module người dùng dựa trên id
4.3.4 Chức năng DELETE dữ liệu:
- Delete xóa dữ liệu : dùng postman thực hiện request và kiểm tra xem dữ liệu đã được xóa chưa
Hình 4.6 Xóa dữ liệu cho module người dùng dựa trên id
4.3.5 Chức năng SEARCH dữ liệu:
- Search tìm kiếm dữ liệu : dùng postman thực hiện request và kiểm tra xem có tìm thấy dữ liệu dựa trên ti khóa đã nhập vào chưa
Hình 4.7 Tìm kiếm dữ liệu theo từ khóa “Th”
Tmo lập bảng CSDL (nếu có)
Hình 4.8 Mô hình CSDL của dự án
So shnh giữa lý thuyết và thực tiễn
- Môi trường làm việc ở thực tế khác xa với lý thuyết đã học trên trường
- Những kiến thức đã học không áp dụng được nhiều trong thực tế Đhnh gih:
- Lí thuyết và thưc hành phải luôn đi đôi với nhau, lí thuyết là nền tảng cho thực tiễn và thực tiễn cũng là kết quả của viêc h áp dung nhuần nhuyễn lý thuyết
- Để đạt đươc hiệu quả, ngoài những kiến thức ở trường em còn phải trang bi h cho mình kỹ năng mềm, đó là những kỹ năng học h ỏi trong thực tế và biến chúng thành thế mạnh cho bản thân mình Như là kỹ năng làm việc nhóm, kỹ năng sáng tao, tư duy, quan sát, kỹ năng giao tiếp, thuyết trình
Đề xuất chc giải phhp cải thiện tình hình thực tế
- Rèn luyện kĩ năng viết code
- Không nging trau dồi kiến thức, học tập công nghệ mới
- Nâng cao tinh thần trách nhiệm với công việc được giao
- Tiếp thu các nhận xnt, đánh giá ti những người đi trước và đồng nghiệp
- Tham khảo, tìm hiểu công cụ thích hợp để hỗ trợ tốt cho quá trình lập trình
- Nâng cao kỹ năng giao tiếp và đưa ra câu hỏi.
Những khó khăn trong quh trình thực tập
- Chưa hoàn thành tốt nhiệm vụ mỗi ngày do khối lượng kiến thức mới cần học hỏi và áp dụng
- Kỹ năng thuyết trình còn yếu knm , cần phải cải thiện - Via phải tham gia học trên trường, via tham gia thực tập ở phía công ty khiến cho việc cân bằng thời gian bị hạn chế nên cũng mất đi những buổi training cần thiết.
- Chưa thích ứng tốt với môi trường làm việc.
KXT LUẬN VÀ ĐỀ XUẤT
Tóm tắt kết quả cia quh trình thực tập
- Được hướng dẫn làm việc với trong quy trình Scrum - Thiết kế được giao diện prototype website bằng figma
- Học hỏi thêm nhiều kiến thức mới lạ
- Cải thiện được khả năng giao tiếp của bản thân
- Có cơ hội để áp dụng kiến thức đã tích lũy vào thực tiễn của doanh nghiệp, phát huy kỹ năng, tích lũy kinh nghiệm nghề nghiệp
- Biết cách phân chia nhiệm vụ qua ứng dụng Trello - Học được cách quản lý source code qua github - Học thêm và cách viết API thông qua framwork NestJS - Tìm ra và đề xuất chỉnh sửa các lỗi Frontend và Backend trên website
- Đề xuất các giao diện mới nhằm thu hút và đem đến trải nghiệm tốt hơn cho người dùng
Chc kiến nghk rWt ra từ kết quả cia đợt thực tập
- Tổ chức thêm các hoạt động học thuật để sinh viên rèn luyện được thêm tính chủ động và khả năng sáng tạo trong công việc
- Có một buổi thảo luận và hướng dẫn cho sinh viên trước khi thực tập để sinh viên không bị bỡ ngỡ hoặc thiếu tự tin trong lần thực tập đầu tiên
- Thời gian thực tập còn ngắn nên nhóm nghiên cứu vẫn chưa học hỏi được những nghiệp vụ cũng như tiếp cận nhiều hơn với các công cụ kiểm thử Hy vọng đợt thực tập sắp tới sẽ có thời gian nhiều hơn để nhóm có thể có nhiều cơ hội trải nghiệp hơn ở doanh nghiệp.