đồ án 2 phát triển ứng dụng trực quan hóa phân tích dữ liệu kinh doanh game trên steam

34 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 phát triển ứng dụng trực quan hóa phân tích dữ liệu kinh doanh game trên steam

Đ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

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN

Trang 3

LỜI NÓI ĐẦU

Đầu tiên nhóm chúng em xin chân thành cảm ơn cô Nguyễn Thị Thanh Trúc vì sự hướng dẫn nhiệt tình và kĩ lưỡng của thầy trong suốt quá trình xây dựng và hoàn thiện sản phẩm.

Trong khoảng thời gian 12 tuần, qua các buổi học, các bài thực hành hay các buổi báo cáo tiến độ, nhờ sự chỉ dẫn nhiệt tình của thầy, chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích cùng những góp ý chân thành để có thể làm được một đồ án hoàn chỉnh Suốt thời gian ấy, chúng em cũng đã họchỏi được thêm nhiều kiến thức, kinh nghiệm và phần nào đó hình dung được quy trình để tạo ra một sản phẩm phân tích dữ liệu.

Trong thời đại số hóa ngày nay, thị trường game trực tuyến đang phát triển mạnh mẽ, và Steam là một trong những nền tảng lớn nhất trên thế giới Ứng dụng của chúng em không chỉ nhằm mục đích cung cấp cái nhìn toàn diện về xu hướng và thị trường game trên Steam mà còn giúp doanh nghiệp và nhà phát triển hiểu rõ hơn về người chơi, các thể loại game phổ biến, và cơ hội kinh doanh tiềm năng Chúng em hy vọng rằng đề tài này sẽ đóng góp vào sự hiểu biết và định hình chiến lược kinh doanh trong ngành công nghiệp game đang ngày càng phức tạp Chính vì điều đó, nhóm chúng em đã cùng nhau tiến hành tìm hiểu, nghiên cứu và xây dựng thành công phần mềm “Phân tích dữ liệu kinhdoanh game trên steam” với những tính năng cần thiết, đáp ứng mọi tiêu chí củanhững người có đam mê với game, giúp công việc phân tích, đánh giá trở nên thuận tiện và hiệu quả.

Trong suốt quá trình xây dựng phần mềm nhóm chúng em không thể tránh khỏi những sai sót, rất mong nhận được sự thông cảm và góp ý chân thànhtừ các thầy cô Chúng em xin chân thành cảm ơn!

Trang 4

MỤC LỤC

Chương 1 Tổng Quan 6

1.1 Mục tiêu và ý nghĩa của đồ án 6

1.2 Đối tượng nghiên cứu 6

1.3 Các hướng nghiên cứu 7

Chương 2 Cơ Sở Lý Thuyết & Công Nghệ 9

2.1 Cơ sở lý thuyết 9

2.1.1 Trực Quan Hóa Dữ Liệu & Giao Diện Người Dùng 9

2.1.2 Phân Tích Dữ Liệu Tài Chính & Kế Toán 9

2.1.3 Công Nghệ & Ngôn Ngữ Lập Trình 9

2.1.4 An Toàn & Bảo Mật Dữ Liệu 10

Chương 4 Thiết kế cơ sở dữ liệu 27

4.1 Lược đồ cơ sở dữ liệu 27

4.2 Mô tả chi tiết 27

4.2.1 Game 27

Trang 5

5.3.4 Màn hình chọn Filter thể loại Action 32

5.3.5 Màn hình chọn Filter theo thời gian 33

5.3.6 Màn hình mô tả game bằng API của open AI 33

Chương 6 Kết luận và hướng phát triển 34

Trang 6

Chương 1 Tổng Quan

1.1 Mục tiêu và ý nghĩa của đồ án

❖ Mục tiêu chính của đồ án là phát triển một ứng dụng trực quan hóa dữ liệu giúp phân tích tài chính và hiệu suất của các game trên nền tảng Steam Cụ thể:

➢ Thu thập Dữ Liệu:

■ Tự động thu thập thông tin đa dạng từ Steam API và các nguồn dữ liệu khác về doanh thu, doanh số bán, số lượng người chơi, và đánh giá của các game.

➢ Trực Quan Hóa Thông Tin:

■ Tạo các biểu đồ và đồ thị trực quan để hiển thị sự thay đổi của doanh thu, doanh số và rating theo thời gian.

■ Phân tích sự tương quan giữa các yếu tố như giá bán, thể loại game, và đánh giá từ người chơi.

➢ Tương Tác Người Dùng:

■ Cung cấp giao diện người dùng thân thiện, cho phép ngườidùng tương tác với dữ liệu một cách dễ dàng và linh hoạt.❖ Việc phát triển ứng dụng nhằm mang lại những ý nghĩa sau:

➢ Hỗ Trợ Quyết Định Chiến Lược:

■ Cung cấp thông tin đầy đủ và minh bạch giúp các nhà pháttriển game và nhà phân phối đưa ra quyết định chiến lược về việc phát triển, quảng cáo và giá cả.

➢ Tối Ưu Hóa Hiệu Suất:

■ Hỗ trợ các quyết định về phát triển game bằng cách xác định các yếu tố ảnh hưởng đến hiệu suất và doanh thu.➢ Tăng Cường Trải Nghiệm Người Chơi:

■ Dựa trên thông tin thu thập được, cung cấp cái nhìn sâu sắc về những game có thể thu hút người chơi và cung cấp thông tin để cải thiện chất lượng và nội dung game.

➢ Tiết Kiệm Thời Gian và Nỗ Lực:

■ Tự động hóa quá trình thu thập và phân tích dữ liệu, giúp tiết kiệm thời gian và nỗ lực so với việc thực hiện thủ công.

1.2 Đối tượng nghiên cứu

❖ Đối tượng nghiên cứu chính của đồ án bao gồm các dự án phân tích dữ liệu Steam đã tồn tại Cụ thể:

Trang 7

■ Sử dụng các mô hình dự đoán để ước tính doanh thu tươnglai của các tựa game.

■ Tập trung vào thu thập dữ liệu từ cộng đồng người chơi để đánh giá sự ưa thích và đánh giá của họ đối với các game.■ Cung cấp khả năng so sánh giữa các game theo các yếu tố

➢ Người Chơi Tiêu Biểu:

■ Người chơi thường xuyên mua sắm và tham gia cộng đồnggame trên Steam.

■ Nhiều lựa chọn về game và đánh giá cao sự chất lượng củatrải nghiệm chơi game.

➢ Nhóm Người Chơi Mục Tiêu:

■ Người chơi mới, chưa quen với thị trường game trên Steam và cần thông tin để đưa ra quyết định mua sắm.

1.3 Các hướng nghiên cứu

❖ Tối Ưu Hóa Thu Thập Dữ Liệu:

➢ Nghiên cứu cách tối ưu hóa quá trình thu thập dữ liệu từ Steam API và nguồn dữ liệu khác để đảm bảo tính chính xác và đầy đủ của thông tin.❖ Phân Tích Tương Tác Người Dùng:

➢ Nghiên cứu cách người dùng tương tác với ứng dụng và đề xuất cải tiến để tối ưu hóa trải nghiệm người dùng.

❖ Dự Đoán Hiệu Suất Game:

➢ Nghiên cứu và phát triển các mô hình dự đoán hiệu suất tương lai của các game dựa trên dữ liệu lịch sử.

❖ So Sánh với Các Dự Án Tương Tự:

➢ So sánh ứng dụng của bạn với các dự án phân tích dữ liệu Steam khác đểxem điểm mạnh và điểm yếu, từ đó đề xuất cải tiến và nâng cao tính cạnh tranh.

❖ Phân Tích Yếu Tố Ảnh Hưởng Đến Đánh Giá Game:

➢ Nghiên cứu yếu tố nào ảnh hưởng lớn đến đánh giá của người chơi đối với một game, bao gồm giá cả, thể loại, và các yếu tố khác.

❖ Phân Loại Game Dựa Trên Xu Hướng Người Chơi:

➢ Phát triển mô hình để phân loại các game dựa trên sở thích và xu hướng của người chơi.

❖ Đối Tượng Nghiên Cứu - Sự Chênh Lệch Giữa Các Nhóm Người Chơi:

➢ Nghiên cứu sự chênh lệch giữa các nhóm người chơi để hiểu rõ hơn về yêu cầu và mong muốn của từng đối tượng.

❖ Dữ Liệu Người Dùng Kết Hợp:

Trang 8

➢ Kết hợp dữ liệu từ nhiều nguồn khác nhau, bao gồm cả các diễn đàn game, mạng xã hội và đánh giá ngoại trực để có cái nhìn toàn diện hơn về sự ưa thích của người chơi.

❖ Nghiên Cứu Tác Động của Các Sự Kiện Chiến Lược:

➢ Nghiên cứu tác động của các sự kiện chiến lược như giảm giá, sự kiện đặc biệt, và các chiến lược quảng cáo đối với hiệu suất của game.❖ Bảo Mật Dữ Liệu:

➢ Nghiên cứu về các phương pháp bảo mật dữ liệu đặc biệt khi xử lý thôngtin nhạy cảm của người chơi.

Trang 9

Chương 2 Cơ Sở Lý Thuyết & Công Nghệ2.1 Cơ sở lý thuyết

2.1.1 Trực Quan Hóa Dữ Liệu & Giao Diện Người Dùng

2.2.1.1 Trực Quan Hóa Dữ Liệu

❖ Mục Tiêu: Hiểu rõ về vai trò của trực quan hóa dữ liệu trong việc truyền đạt thông tin một cách hiệu quả.

❖ Nội Dung:

➢ Các loại biểu đồ và đồ thị phổ biến như line charts, bar charts, pie charts,scatter plots.

➢ Các nguyên tắc thiết kế trực quan hóa dữ liệu: tối giản, mô tả, tương tác.

2.1.1.2 Giao Diện Người Dùng (UI) và Trải Nghiệm Người Dùng (UX)

❖ Mục Tiêu: Xây dựng một giao diện người dùng thân thiện và trải nghiệm ngườidùng tốt.

❖ Nội Dung:

➢ Nguyên tắc thiết kế giao diện người dùng (UI design principles).

➢ Các yếu tố tạo nên trải nghiệm người dùng tích cực: sự dễ sử dụng, tính tương tác, và hiệu suất.

2.1.2 Phân Tích Dữ Liệu Tài Chính & Kế Toán

❖ Mục Tiêu: Hiểu cơ bản về các khái niệm tài chính và kế toán.❖ Nội Dung:

➢ Nguyên tắc kế toán cơ bản.

➢ Các chỉ số và biểu đồ phổ biến trong phân tích tài chính.

2.1.3 Công Nghệ & Ngôn Ngữ Lập Trình

➢ Cấu trúc cơ bản của Dash.

➢ Tích hợp Dash với các thư viện trực quan hóa như Plotly.

2.1.3.3 Github Actions

❖ Mục Tiêu: Hiểu cách sử dụng GitHub Actions để tự động hóa các quy trình phát triển và triển khai.

❖ Nội dung:

Trang 10

➢ Cài đặt và cấu hình GitHub Actions để tự động hoá các quy trình thu thập thông tin.

2.1.3.6 ChartJS

❖ Mục tiêu: Hiểu cách sử dụng thư viện JavaScript mã nguồn mở như Chart.js để tạo các biểu đồ và đồ thị tương tác trên trang ứng dụng.

2.1.4 An Toàn & Bảo Mật Dữ Liệu

2.1.4.1 Bảo Mật Dữ Liệu Cơ Bản

❖ Mục Tiêu: Hiểu về các nguyên tắc cơ bản của bảo mật dữ liệu.❖ Nội Dung:

➢ Bảo vệ dữ liệu nhạy cảm và quản lý rủi ro bảo mật.

2.1.4.2 Bảo Mật trong Ứng Dụng Web

❖ Mục Tiêu: Nắm vững cách bảo vệ ứng dụng web khỏi các mối đe dọa bảo mật.❖ Nội Dung:

➢ Chống lại tấn công SQL Injection và Cross-Site Scripting (XSS).➢ Sử dụng HTTPS và mã hóa dữ liệu.

2.2 Phân tích công nghệ sử dụng2.2.1 Python

❖ Ngôn Ngữ Lập Trình Chính: Python là một ngôn ngữ lập trình linh hoạt,dễ đọc và dễ hiểu, thích hợp cho phát triển ứng dụng và xử lý dữ liệu.❖ Áp Dụng:

➢ Sử dụng Python làm ngôn ngữ chính cho việc phát triển ứng dụng.

Trang 11

➢ Tận dụng tính linh hoạt và đa nhiệm của Python để xử lý nhiều nhiệm vụ khác nhau trong dự án.

2.2.2 NumPy

❖ Thư Viện Toán Học: NumPy cung cấp một loạt các hàm và công cụ mạnh mẽ để thực hiện các phép toán toán học và thống kê trên mảng số học.

Trang 12

2.2.4 GitHub Action

❖ Tự Động Hóa Quy Trình Phát Triển: GitHub Actions là một công cụ giúp tự động hóa các bước trong quy trình phát triển, kiểm thử và triển khai.

Trang 13

➢ Sử dụng filters để cho phép người dùng lọc và tìm kiếm dữ liệu một cách dễ dàng.

2.2.6 Chart.js

❖ Chart.js là một thư viện JavaScript mã nguồn mở được sử dụng để tạo các biểu đồ và đồ thị tương tác trên trang web: Thư viện này cung cấp một cách đơn giản và linh hoạt để hiển thị dữ liệu số liệu trong các biểu đồ dễ đọc và trực quan.

2.2.7 MongoDB

❖ MongoDB là một hệ quản trị cơ sở dữ liệu (DBMS) phi quan hệ và hướng tài liệu: Nó lưu trữ dữ liệu dưới dạng tài liệu JSON-like, được gọilà BSON (Binary JSON) MongoDB được phát triển bởi MongoDB, Inc., và nó là một hệ quản trị cơ sở dữ liệu mã nguồn mở được sử dụng rộng rãi cho các ứng dụng web và các hệ thống có yêu cầu linh hoạt về cấu trúc dữ liệu.

❖ Áp dụng:

➢ Sử dụng MongoDB làm cơ sở dữ liệu, lập chỉ mục trên các trường quan trọng trong dữ liệu của ứng dụng

Trang 14

➢ Phân tán xử lý dữ liệu qua nhiều node, giúp tối ưu hóa hiệu suất.➢ Đảm bảo sự an toàn và sẵn sàng của dữ liệu, cũng như mở rộng

hệ thống.

2.2.8 Rest API - OpenAI

❖ OpenAI cung cấp một API cho dịch vụ của mình API này được thiết kế để kết nối ứng dụng và dịch vụ với mô hình ngôn ngữ mạnh mẽ của OpenAI thông qua các cuộc gọi HTTP Quy trình sử dụng API này không phải là RESTful API truyền thống Để sử dụng OpenAI API, cần thực hiện các cuộc gọi HTTP POST đặc biệt đến endpoint của OpenAI.

❖ Thông tin cơ bản về API OpenAI bao gồm:➢ Endpoint:

■ Endpoint chính: https://api.openai.com/v1/➢ Authentication:

■ Cần cung cấp khóa API để xác thực mỗi cuộc gọi API Khóa API này được cung cấp khi bạn đăng ký và có tài khoản OpenAI.➢ Cuộc Gọi API:

■ Phương thức: POST

■ Endpoint cụ thể tùy thuộc vào loại dịch vụ sử dụng, chẳng hạn như completions cho mô hình GPT-3.

➢ Dữ Liệu Đầu Vào và Đầu Ra:

■ Dữ liệu đầu vào thường được truyền qua các tham số như prompt,temperature, max_tokens, vv.

■ Dữ liệu đầu ra được trả về dưới dạng JSON, và bạn có thể trích xuất thông tin cần thiết từ phản hồi.

❖ Áp dụng:

➢ Sử dụng các giao thức HTTP là chủ yếu.➢

Trang 15

Chương 3 Thiết kế hệ thống3.1 Use case

3.1.1 Sơ đồ Use case

Trang 16

3.1.2 Danh sách ActorsST

Bảng 3.1 Bảng danh sách các actors

3.1.3 Danh sách các Use case

Usecase chínhPhân rã Use-caseÝ nghĩa/Ghi chú

Phân tích xếphạng trò chơimiễn phí với trò

Filters Cập nhật theo Filters

Phân tích xếphạng chức năng

của trò chơi

Xếp hạng 5 chứcnăng trò chơi

Cập nhật dữ liệu và hiển thị liên tụcvề 5 chức năng của các trò chơi thịnh

hành nhấtFilters Cập nhật theo Filters

Phân tích xếphạng trò chơithịnh hành

Hiển thị theo Biểu đồô vuông

Xếp hạng 10 trò chơi theo số lượngngười chơi từ cao đến thấp Filters Cập nhật theo Filters

Phân tích xếphạng số lượngtrò chơi của mỗi

thể loại

Hiển thị theo Biểu đồcột ngang

Xếp hạng 10 thể loại trò chơi có sốlượng trò chơi từ cao đến thấpFilters Cập nhật theo Filters

Phân tích sốlượng người chơi

theo thời gian

Hiển thị theo Biểu đồcột đứng

Xếp hạng số lượng người chơi củaSteam theo thời gian từng giờFilters Cập nhật theo Filters

Trang 17

Update data Làm mới mỗi 1 giờ

Xem theo Filters

Filters theo thời gian Hiển thị phân tích theo thời gianFilters theo thể loại

Free or Paid or Both

Hiển thị phân tích theo Free or Paid orBoth

Filters theo thể loạigame

Hiển thị phân tích theo từng thể loạitrò chơi hoặc tất cả

Bảng 3.2 Danh sách các use case

3.1.4 Đặc tả Use case

3.1.4.1 Đặc tả Use case Phân tích xếp hạng trò chơi miễn phí với trò chơi tính phí

a Đặc tả Use case Hiển thị theo Biểu đồ tròn

Use case: Hiển thị theo Biểu đồ trònTác nhân chính: User

Mô tả ngắn gọn:

− Xem độ chênh lệch giữa trò chơi tính phí và miễn phí.

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Không cóĐiều kiện thực hiện: Không có Luồng sự kiện chính:

− Hiển thị biểu đồ tròn thể hiện dữ liệu được cập nhật.− Cập nhật dữ liệu mỗi một giờ.

− Thay đổi theo Filters

b Đặc tả Use case Filters

Use case: FiltersTác nhân chính: UserMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

Trang 18

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Bấm vào các lựa chọn Filters Điều kiện thực hiện: Không có

Luồng sự kiện chính:

− Sau khi bấm vào các nút filters hiện ra các lựa chọn.− Chọn filter mong muốn.

− Bấm chọn.

c Đặc tả Use case Update data

Use case: Update dataMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Mỗi một giờ Github Actions thực hiện CI/CD.Điều kiện thực hiện: Không có

Luồng sự kiện chính:

− Hệ thống tự thực hiện CI/CD mỗi giờ.− Dữ liệu mới được cập nhật.

3.1.4.2 Đặc tả Use case Phân tích xếp hạng chức năng trong trò chơi

a Đặc tả Use case Xếp hạng 5 chức năng trò chơi phổ biến nhất

Use case: Hiển thị danh sách 5 thể loại trò chơi phổ biến nhấtTác nhân chính: User

Mô tả ngắn gọn:

− Xem danh sách 5 thể loại trò chơi phổ biến nhất

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Không cóĐiều kiện thực hiện: Không có Luồng sự kiện chính:

Trang 19

− Hiển thị dữ liệu được cập nhật.− Cập nhật dữ liệu mỗi một giờ.− Thay đổi theo Filters

b Đặc tả Use case Filters

Use case: FiltersTác nhân chính: UserMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Bấm vào các lựa chọn Filters Điều kiện thực hiện: Không có

Luồng sự kiện chính:

− Sau khi bấm vào các nút filters hiện ra các lựa chọn.− Chọn filter mong muốn.

− Bấm chọn.

c Đặc tả Use case Update data

Use case: Update dataMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Mỗi một giờ Github Actions thực hiện CI/CD.Điều kiện thực hiện: Không có

Luồng sự kiện chính:

− Hệ thống tự thực hiện CI/CD mỗi giờ.− Dữ liệu mới được cập nhật.

3.1.4.3 Đặc tả Use case Phân tích xếp hạng trò chơi thịnh hành

a Đặc tả Use case Hiển thị theo Biểu đồ ô vuông

Use case: Hiển thị theo Biểu đồ ô vuôngTác nhân chính: User

Trang 20

Mô tả ngắn gọn:

− Xem danh sách top 10 trò chơi thịnh hành theo lượt chơi từ cao đến thấp

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Không cóĐiều kiện thực hiện: Không có Luồng sự kiện chính:

− Hiển thị dữ liệu được cập nhật.− Cập nhật dữ liệu mỗi một giờ.− Thay đổi theo Filters

b Đặc tả Use case Filters

Use case: FiltersTác nhân chính: UserMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

− Hệ thống đang ở trạng thái hoạt động.

Sự kiện kích hoạt: Bấm vào các lựa chọn Filters Điều kiện thực hiện: Không có

Luồng sự kiện chính:

− Sau khi bấm vào các nút filters hiện ra các lựa chọn.− Chọn filter mong muốn.

− Bấm chọn.

c Đặc tả Use case Update data

Use case: Update dataMô tả ngắn gọn:

− Thay đổi chế độ hiển thị theo Filters

Điều kiện tiên quyết:

Ngày đăng: 15/05/2024, 09:24

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

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

Tài liệu liên quan