Công ty phần mềm 4PSoft được thành lập với sứ mệnh cung cấp đến khách hàng những giải pháp, ứng dụng công nghệ thông tin hiệu quả và chuyên nghiệp nhất.. Dịch vụ phần mềm Công ty Cô phần
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP HỎ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
ISO 9001 : 2008
BAO CAO THUC TAP TOT NGHIEP
XAY DUNG UNG DUNG WEB VOI SHINY
TRONG R VA THAO TAC VOI DU LIEU TRONG
PYTHON
Giảng viên hướng dan:
Sinh viên thực hiện:
Trang 2TP.HCM, tháng 04 năm 2024
Trang 3BAO CAO THUC TAP TOT NGHIEP
XAY DUNG UNG DUNG WEB VOI SHINY
TRONG R VA THAO TAC VOI DU LIEU TRONG
PYTHON
Giảng viên hướng dan: — ‘TS Tran Khai Thién
Sinh viên thực hiện: Nguyễn Khánh Min
Mã số sinh viên: 20DH112080
Chuyén nganh: Công nghệ phần mềm
Đơn vị thực tập: CONG TY CO PHAN PHAN MEM 4P
TP.HCM, thang 04 nam 2024
Trang 4
Trần Khải Thiện
Em cảm nhận được g1á trị của sự hỗ trợ tận tâm từ Công ty Cổ phần Phần mềm 4P và sự hướng dẫn chuyên sâu từ TS Trần Khải Thiện đã giúp em vượt qua những thách thức trong quá trình thực tập Những kiến thức và kỹ năng em học được sẽ là nên tảng vững chắc cho sự phát triển tương lai của em trong lĩnh vực này
Một lần nữa, em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến Công ty Cổ phần Phần mềm 4P và TS Trần Khải Thiện về cơ hội thực tập và sự hướng dẫn tận tâm Em hứa sẽ luôn phi nhớ và trân trọng những giá trị và kinh nghiệm mà em đã được học hỏi từ hai bên này
Trang 5LỜI MỞ ĐẦU
Trong bước tiến của cuộc cách mạng công nghệ, Công ty Cô phần Phần mềm 4P là công ty chuyên gia về phần mềm, lập trình lập trình thiết kế website thương mại, triển khai lắp đặt các hệ thống mạng và xây dựng các chiến lược kinh doanh tiếp thị trực tuyến Công ty được thành lập với sứ mệnh cung cấp đến khách hàng những giải pháp, ứng dụng công nghệ thông tin hiệu quả và chuyên nghiệp nhất Mỗi sản phâm, dịch vụ của Công ty Cô phần Phần mềm 4P được tạo ra và cung cấp luôn thoả mãn các tiêu chí của khách hàng về cả chất lượng và cả giá cả
Với ước mơ xây dựng một phần mềm đến tay khách hàng, em xin chia sẻ những góc nhìn và sự học hỏi của mình từ việc thực tập tại Công ty Cổ phan Phan mềm 4P thông qua báo cáo này
11
Trang 6NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
1PHCMI, Ngày thang năm 20 Giảng viên hướng dẫn (Ký tên, đóng dấu)
TS Trần Khải Thiện
IV
Trang 7NHẬN XÉT CỦA CƠ QUAN THỰC TẬP
1PHCMI, Ngày thang năm 20
Xác nhận của đơn vị thực tập (Ký tên, đóng dấu)
Phạm Thị Thanh Huyền MỤC LỤC
Trang 8LOI MG DAU ® iii NHAN XET CUA GIANG VIEN HUGNG DAN cccccecccccssteceesteeeesteeeesteeeeeneeeeieee: iv NHAN XET CUA CO QUAN THUC TABP.o.oeccccccscesscseessssessessessnseessvsesssensstsersvsters V CHƯƠNG I: GIỚI THIỆU 22222 22221112222111122221112221111122111 0212111 l
2.1.1 Get Started with ShIny - - - 20 2201120111211 1 1211152111211 1011111520111 1 12g 2 2.1.2 Inputs, Ôutputs, and LayOUfS - c1 2 221121112111 1211 1112112111 11111 111g keg 3 2.1.3 Reactive Propramm1np ác + c 2211211121 1121 111115112 1101118111111 011 111111 xe 5 2.1.4 Build Shiny Apps L1 Q11 2212112112111 20111011 2111011 1111111 11x ka 6 2.2 Joinning Data with pandas - G0 2221201121112 1 12111911181 2111 1111111011118 111 tk 9 2.2.1 Data Mereøing BasIcs - L1 1211121111112 1 12211011 1111111 11111111 111g ky 9
2.2.2 Merging Tables With Different JoIn Ïypes - ì Sọcàn se 11
2.2.3 Advanced Mergpine and Concatenating - : c2: 2112221122212 xe2 13 2.2.4 Mereine Ordered and Time-Serles Ïata - - 0 2112 2 21222212 exe 16 2.3 Writine Efficlent Python Code c2 1211211121111 1121111111111 11181152 18 2.3.1 Foundations for efÍÍCIeIIC16s c2 12.111 211111 1112111211111112 1118111 1 Xrr 18 2.3.2 Timing and profiling cođe - 0 222121112112 21 22111811151 1111 151111111 xe 20 2.3.3 Gaininp efficlehcI€s - - c1 2112111211121 111 112 110111011 15011 2111110125168 kg 20 2.3.4 Basic pandas optIn1ZatIOI§ 2 0 1201211121112 112111511111 1111 1511111811 21
Trang 92.4 Functions for Manipulating Data in PostpreSQL, cc c2 sese2 22 2.4.1 Overview of Common Data ÏYpes 0 20 1201221122121 12118 xe ray 22
2.4.2 Working with DATA/TIME Functlons and ÔperafOrs 25
2.4.3 Parsing and Manipulating Ïlext 12c 21121112112 1112211125212 ray 26 2.4.4 Full-text Search and PostperesSQL, Extensions - 2c cà cà 26
VI
Trang 10DANH MỤC CÁC BẢNG BIÊU
Bảng l Bảng nhật kí thực tập .- - 2 0 22 122112211211 12111111111 1111011 1811111 11111111 kg XI
vill
Trang 11DANH MỤC CÁC BẢNG HÌNH
Hinh 1 Shiny 0 1
Hình 2 Ứng dụng UFO Sightings- Plot 22 22 9S2212212275122122712711271 1121221 Hinh 3 Ung dung UFO Sightings — Table 2222 22 9 221212273122122212711112221 2E xee Hình 4 Ứng dung 2014 Mental Health in Tech Survey 2 2©2s2222zc22E22212 2x xe
Hình 5 Ứng dụng Mass shootings à- ST 21111 1101221112121 21g rya Hình 6 Ví dụ Inner JoIn - 5 2G 1 111125211111 1119512111111 115111111 n E411 11 1c 9111111112151 1 2x4 Hinh 7 Vi du quan hé bedi .-:
Hinh 8 Vi dụ quan hé 1 — NAIGU occ cece ccececcessessesesestessessesersetesessseteetitesessietsesitanees Hinh 9 Vi dụ hop nhat nhidu bang ccccccccccesesseessesesssessessesssesessesesseseeseneeseseeseees
Hinh 15 Ví dụ phương thức merge orderd|() ác : c1 221211 1212 1121251111211 re
Hình 16 Ví dụ phương thức merøe_ asofŸ) - c0 121121112112 1212 111811111 1111111 18111 Hình 17 Ví dụ phương thức query() - 12c 12012211121 111 1121122211 1118111111128 1 key Hình 18 Ví dụ phương thức melÌf() - - :- 5c 2c 2212212123121 1151122212 111811111152 81 11111 ty Hình 19 Ví dụ phương thức range() -: 12.1221 12211211 12111211111 1111 1128111181111 x xay Hinh 20 Ví dụ phương thức enumerate() - c1 2 1212211121121 12122211811 1811111 1 xe2 Hinh 21 Ví dụ phương thức mapi() c2 2221221 12211221 12111211211 181 111121158111 8g re
Hình 22 Ví dụ về kiểu dữ liệu TIMESTAME 25: 222t 2211221222221 cee Hình 23 Ví dụ kiểu dữ liệu DATE và TIME .s: 5222:2222 2221112211212 Hình 24 Ví dụ về kiểu dữ liệu INTERVALL 2222222222212 1212 cee
Hinh 25 Chimg chi Joming Data with pandas 5 0 221221 112211211121 111181121 se
Hinh 26 Chứng chi Writing Efficient Python Cod& - c2 n2 211211 12g
Hinh 27 Chimg chi Functions For Manipulating Data in PostereSQL,
Hinh 28 Chứng chỉ Building Web Applications with Shiny 1m R eee eens
1X
Trang 12DANH MUC CAC TU VIET TAT
CMS
CMS la chit viét tat cua Content Management
System Con goi la hé thống quản trị nội dung
ERP
ERP là từ viết tắt của Enterprise Resource
Planning, day la hệ thống giúp hoạch định
nguồn lực của doanh nghiệp
Trang 13
TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC
ISO 9001 : 2008 TP HỎ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
SO NHAT KY THUC TAP
Trang 14thực tập Tìm hiểu về công ty Cổ phần Phân
' mêm 4P cũng như các quy trỉnh
đến 03/02/2024 làm việc trong công ty
Từ 15/02/2024
Tìm hiệu và làm bài tập của các
chương trong khóa Joining Data
4 chương trong khóa Building Web
đến 24/02/2024 Applications with Shiny in R
Tìm hiểu va làm bài tập của các
5 Efficient Python Code
Trang 15
® Tìm hiệu và làm bài tập của các
chương trong khóa Functions For
Từ 04/03/2024 Manipulating Data in PostgreSQL
Phạm Thị Thanh Huyền
Trang 16TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN
HOC TP HO CHI MINH
Địa chỉ 828 Sư Vạn Hạnh, Phường 13, Quận 10, TP Hồ Chí Minh
Điện thoại: (+84 2%) 38 632 052 - 38 629 232 Fax: (+84 28) 38 650 99]
Email: contact@huflit.edu.vn
PHIEU NHAN XET SINH VIEN THUC TAP
(Vui long danh dau [x] vao 6 thich hop)
Họ và tên sinh viên: Nguyễn Khánh Min Lớp: PM2006
Cơ quan tiếp nhận: Công ty Cô phần Phần mềm 4P
1 Nhận xét của cơ quan về chất lượng công việc được giao:
Các công việc được giao:
se Tốt ® Trung bình
Hoàn tất cổng việc được giao:
® Hoàn thành đúng ® Thính thoảng đúng ® Không đúng thời hạn lĩnh hữu hiệu của đợt thực tập đối với cơ quan
© Không giúp ích gì mấy cho hoạt động của cơ quan
2 Nhận xét của cơ quan về bản thân sinh viên
Năng lực chuyên môn sứ dụng vào công việc được giao ở mức:
Tình thân, thái độ đối với công việc được giao:
e© Tích cực
® Binh thường
e©_ Thiếu tích cực
Trang 17Đám bảo ký luật lao động (giờ giác lao động, nghỉ làm, )
se Tốt
® Trung binh
® Kém
Thái độ đối với cán bộ, công nhân viên trong cơ quan:
® Chan hòa ® Không có gì đáng nói ® Rutré
3 Nếu được, xin cho biết một “thành tích nỗi bật” của sinh viên (nếu không có, xin bỏ qua)
5 Đánh giá (theo thang điểm 10)
a) Điểm chuyên cần, phong cách:
b) Điểm chuyên môn:
Vui lòng xin cho biết thêm:
- Họ và tên người nhận xét: Phạm Thị Thanh Huyền
- Chức vụ trong cơ quan: Phó Giám Đốc
Ngày Tháng Năm 20 Trưởng đơn vị Người nhận xét
(ký tên, đóng dấu và ghi rõ họ tên) (Ký và ghi rõ họ tên)
XV
Trang 18CHUONG I1: GIỚI THIỆU
1.1 Giới thiệu về công ty
1.1.1 Sơ lược về công ty
Được thành lập vào năm 2004, Công ty Cô phần Phần mềm 4P là công ty
chuyên gia về gia công phần mềm, lập trình thiết kế website thương mại, triển khai lắp đặt các hệ thông mạng và xây dựng các chiến lược kinh doanh tiếp thị trực tuyến Công ty phần mềm 4PSoft được thành lập với sứ mệnh cung cấp đến khách hàng những giải pháp, ứng dụng công nghệ thông tin hiệu quả và chuyên nghiệp nhất
1.1.2 Dịch vụ phần mềm
Công ty Cô phần Phần mềm 4P mang đến một loạt dịch vụ đa dạng, tạo nên sự đột phá và tiên tiến trong nhiều lĩnh vực, mỗi sản phân dịch vụ được tạo ra và cung cấp là thành quả của sự kết hợp giữa kinh nghiệm và những công nghệ tiên tiến nhất thỏa mãn các tiêu chí về chất lượng, giá cả, đầy đủ tài liệu hướng dẫn và tuân thủ chế
độ bảo hành và hỗ trợ kĩ thuật mọi lúc mọi nơi
- Dịch vụ thiết kế website: Công ty sử dụng công nghệ mới, giúp thiết kế website theo đúng chuẩn Google với chương trình CMS — Hệ thống quản lí nội dụng website
- Thiết kế phần mềm: Các giải pháp về ERP giúp các doanh nghiệp quản tri tai nguyên một cách hiệu quả, ngoải ra còn có các hệ thống tính lương va cham công
giúp các doanh nghiệp tiết kiệm nhiều thời gian và công sức
- Hoạt động chuyên môn, khoa học và công nghệ khác: Công ty cung cấp các dịch vụ chuyên môn, khoa học và công nghệ đa dạng, đáp ứng nhu cầu đa dạng của khách hàng
1.1.3 Vai tro của bản thân trong công ty
- Lập trình viên Backend: Xây dựng và duy trì phần mềm chạy phía server, xử
lý dữ liệu và logic nghiệp vụ
Trang 19- Lập trình viên Frontend: Tạo giao điện người đùng thân thiện, tương tác và tối
ưu trai nghiém trên các thiết bị khác nhau
Trang 20CHƯƠNG 2: NỘI DUNG THỰC TẬP 2.1 Building Web Application with Shiny in R
2.1.1 Get Started with Shiny
Shiny là một gói phần mềm R cho phép tạo các ứng đụng web tương tác Nó sử dung m6 hinh lập trình phản ứng, nghĩa la giao diện người dùng sẽ tự động cập nhật khi dữ liệu thay đổi Điều này làm cho Shiny trở thành một công cụ mạnh mẽ để tạo các bảng điều khiến, biểu đồ và các hình ảnh trực quan khác Shiny có thể được sử dụng để tạo nhiều loại ứng dụng web khác nhau, bao gồm: Bảng điều khiến: Bảng điều khiến là các ứng dụng web cung cấp cho người dùng cái nhìn tổng quan về dữ liệu Chúng thường bao gồm các biêu đồ, đỗ thị và các chỉ báo khác Biếu đỗ: Biểu
đề là các biểu diễn trực quan của đữ liệu Shiny có thê được sử dụng để tạo nhiều loại biểu đồ khác nhau, bao gồm biểu đồ đường, biểu đồ thanh, biểu đồ pie và biểu đồ phân tán Hình ảnh trực quan khác: Shiny cũng có thể được sử dụng để tạo các hình ảnh trực quan khác, chắng hạn như bản đồ và mạng lưới Shiny là một công cụ mạnh
mẽ và linh hoạt có thể được sử dụng để tạo nhiều loại ứng dụng web khác nhau Nó tương đối dé học và sử dụng, ngay cả đối với những người mới bắt đầu sử dụng R
* Ưu điểm của việc sử dụng Shiny:
- - Tương tác: Shiny cho phép người dùng tương tác với dữ liệu của họ theo thời
gian thực, giúp họ khám phá và hiệu đữ liệu tốt hơn
- Linh hoat: Shiny co thể được sử dụng để tạo nhiều loại ứng dụng web khác nhau, từ bảng điều khiến đơn giản đến các ứng dụng phức tạp với nhiều tính năng
- _ Dễ sử dụng: Shiny tương đối dễ học và sử dụng, ngay cả đối với những người mới bắt đầu sử dụng R
- _ Mã nguồn mở: Shiny là mã nguồn mở, có nghĩa là nó miễn phí để sử đụng và sửa đối Cộng đồng lớn: Shiny có một cộng đồng người dùng lớn và tích cực, những người có thể cung cấp hỗ trợ và hướng dẫn
Trang 21* Nhược điểm của Shiny: Mặc dù Shiny có nhiều ưu điểm, nó cũng có một số nhược điểm cần lưu ý:
- _ Khả năng tương thích: Shiny có thế không tương thích với một số gói R nhất
định
- Hiệu suất: Mặc dù Shiny duoc tối ưu hóa để chạy nhanh và hiểu quả, nhưng hiệu suất của ứng dụng Shiny có thê bị ảnh hưởng bởi một số yếu tố, bao gồm kích thước của tập dữ liệu và độ phức tạp của ứng dụng
Hinh 1 Shiny in R
2.1.2 Inputs, Outputs, and Layouts
> Inputs: La cdc thành phần tương tác mà người đùng có thế sử dụng để cung cấp dữ liệu hoặc điều khiến hành vi của ứng dụng
s* Ví dụ:
- Thanh trượt (sliderInput()) dé chọn giá trị số trong một phạm vi Hộp kiểm (checkboxInput()) cho các tùy chọn đúng/sai
Trang 22- Menu thả xuống (selectlnput()) để chọn từ một tập hợp các tùy chọn được xác định trước
- Trường nhập văn bản (textlInput()) để nhập văn bản tự do
- Nút tải lên tệp (fileInput()) cho phép người dùng tải lên tệp đề xử lý
> Outputs: Là các thành phần động hiển thị kết quả của tương tác người dùng hoặc tính toán của ứng dụng Tự động cập nhật dựa trên các thay đổi trong giá trị đầu vào
s* Ví dụ:
- _ Biểu đồ (plotOutput()) để trực quan hóa đữ liệu
- Bang (tableOutput) dé trình bảy dữ liệu ở dạng bảng
- _ Hộp văn bản (verbatimTextOutput()) đề hiển thị văn bản hoặc mã
- Hinh anh (imageOutput()) dé hiển thị hình ảnh dựa trên tính toán
> Layouts: Là cấu trúc tô chức sắp xếp các đầu vào và đầu ra trên trang web Cung cấp giao diện trực quan và thân thiện với người dùng
s* Các chức năng bố cục phổ biến:
-_ fuidPage(): Bố cục cơ bản cho ứng dụng Shiny một trang
-_ sidebarLayout(): Tạo bố cục hai bảng điều khiến với thanh bên cho đầu vào và bảng điều khiến chính cho đầu ra
- _ tabsetPanel(): Sắp xếp nội dung thành nhiều tab
- fluidRow() va column(): Xac dinh các hàng và cột trong một bố cục đề định vị
Trang 23- Cap nhat đầu ra: Dữ liệu hoặc kết quả cập nhật được gửi trở lại phía máy khách
-_ Cập nhật UI: Shiny cập nhật động phân tử đầu ra tương ứng trên trang web
s% Các thành phân chính:
- _ Reactive Expressions (Biểu thức phản ứng): Là những đoạn mã R tính toán một giá trị dựa trên các đầu vào hoặc các biểu thức phản ứng khác Chúng chỉ tính toán lại khi các giá trị đầu vào của chúng thay đổi Sử dụng hàm reactive() dé tao biếu thức phản ứng
- Reactive Values (Gia trị phản ứng): Là những biến lưu trữ các giá trị được tính toán bởi các biểu thức phản ứng G1á trị này cũng chỉ được cập nhật khi biếu thức phản ứng phụ thuộc vào nó tính toán lại Sử dụng hàm reactiveVal() dé tao giá trị phản ứng
- Observers (Người quan sát): Là các hàm được kích hoạt khi một giá trị phản ứngthay đổi Chúng thường được sử dụng để cập nhật giao diện người dùng (UI) của ứng dụng Sử dụng hàm observe() để tạo observer
¢ Uu diém:
- Tinh linh hoạt: Cho phép bạn dễ dàng xây dựng các ứng dụng phức tạp với nhiều đầu vào và đầu ra
- Hiệu suất: Chỉ tính toán lại các phần cần thiết khi có thay đổi, giúp cải
thiện hiệu suất
-_ Dễ gỡ lỗi: Logic ứng dụng được tách biệt rõ ràng, giúp việc theo dõi và
sửa lỗi dễ dàng hơn
Trang 242.1.4 Build Shiny Apps
Xây dựng bốn ứng dụng khác nhau bằng cách sử dụng những gì học được trong
suốt khóa học cùng với một số khái niệm mới Bao gồm một ứng dụng cho phép bạn
thu thập thông tin chi tiết từ Khảo sát về sức khỏe tâm thần trong công nghệ và một ứng dụng khác sử dụng các thành phần công thức làm đầu vào đề phân loại chính xác các món ăn khác nhau trên thế giới Đồng thời, bạn cũng sẽ tìm hiểu về các tiện ích đầu vào và đầu ra nâng cao hơn, chẳng hạn như xác thực đầu vào, đám mây từ và bản
đồ tương tác
% Xây dựng trang Dashhoard cho Alien Sightings
Ứng dụng sẽ cho phép người dùng chọn một tiêu bang của Hoa Kỳ, sử dụng bộ chọn thả xuống, sau đó là một khoảng thời gian được triển khai bằng dateRangelnput Trang tông quan sử dụng bố cục tab Tab đầu tiên là biếu đồ thanh về số lượng người ngoài hành tỉnh được nhìn thấy theo hình dạng ở trạng thái và khoảng thời gian đã chọn
Tab thứ hai của bảng điều khiến là một bảng tóm tắt, theo hình dạng, về thời lượng trung bình, trung bình, tối thiểu và tối đa của việc quan sát đối với các đầu vào
đã chọn Nó cũng bao gồm số lượng từng hình dạng được nhìn thấy, đây là cách thực hành tốt khi bạn báo cáo số liệu thống kê tóm tắt như thế này Có rất nhiều dữ liệu khác mà bạn có thể sử dụng để tự mình mở rộng ứng dụng, chẳng hạn như vĩ độ và kinh đệ của các lân nhìn thây
Trang 25Shape
Hinh 2 Ung dung UFO Sightings- Plot
UFO Sightings
Choose a U.S state: Plot | Table
™ shape nb sighted avg duration min median duration min min duration min max đuration min
cyliner 1 4500 4500 4500 4500 choose cate 08: disk 3 022 017 017 033
1920-01-01 to 1950-01-01 other 1 007 007 007 007
sphere 1 12000 120.00 12000 12000
Hinh 3 Ung dung UFO Sightings — Table