项目作者: wally-wally

项目描述 :
:racing_car: Analyzing Online Game 'Kartrider' Ranking Time Attack Info
高级语言: Python
项目地址: git://github.com/wally-wally/Analyzing_Kartrider_Ranking_Time_Attack_Info.git


:pencil: README


:one: Summary

:racing_car: 온라인 게임 ‘Kartrider’의 Timeattack 데이터를 수집하고 분석

:round_pushpin: Django를 이용하여 랭킹 타임어택 데이터를 관리할 수 있는 홈페이지 제작

:round_pushpin: 유저의 닉네임과 채널명을 입력하여 csv 파일로 타임어택 데이터 수집

:round_pushpin: 작성된 csv 파일로 데이터를 분석하여 원하는 정보를 차트형태로 출력


:two: Tech Stack

:round_pushpin: Programming Language : Python 3.7.4

:round_pushpin: Frontend, Backend : Django 2.2.4

:round_pushpin: Database : sqlite3

:round_pushpin: Data Analysis : numpy 1.17.0

:round_pushpin: Chart Library : matplotlib 3.1.1

:round_pushpin: Development Enviornment : Windows 10

:round_pushpin: Using Editor : Visual Studio Code


:three: Getting Started

:heavy_check_mark: 소스 코드 clone 받기

  1. git clone https://github.com/wally-wally/Analyzing_Kartrider_Ranking_Time_Attack_Info.git

:heavy_check_mark: 가상환경 설정

  • Python 3.7 이상의 버전을 우선 설치하고 아래 명령어를 입력해주세요.
  1. python -m venv venv
  2. source venv/Scripts/activate

:heavy_check_mark: 필요한 라이브러리 패키지 설치

  1. pip install -r requirements.txt

:heavy_check_mark: Database 설정

  • sqlite3를 우선 설치하고 아래 명령어를 입력해주세요.
  1. python manage.py makemigrations
  2. python manage.py migrate

:heavy_check_mark: 로컬환경에서 서버 실행

  1. python manage.py runserver

:heavy_check_mark: 메인 페이지로 이동

  • http://127.0.0.1:8000/data_pages/


:four: Flow Chart

flow_chart


:five: Homepage Configuration

(1) 메인 페이지, 회원가입, 로그인

001

002

003


(2) 데이터 수집

004
005

  • 유저 닉네임과 채널명을 선택한 후 Send 버튼을 누르면 카트라이더 내 차고 페이지에서 해당 유저의 랭킹 타임어택 데이터를 크롤링합니다.
  • 데이터 수집이 완료되었습니다. 라는 문구가 나오면 성공적으로 크롤링한 데이터를 csv 파일로 저장했고 이 파일은 해당 프로젝트의 루트 디렉토리에 저장됩니다.
  • 만약 해당 채널(ex. S1)에서 랭킹 타임어택을 진행하지 않은 경우 S1의 타임어택을 진행하지 않았습니다. 라는 문구가 나오고 유저 닉네임이 존재하지 않으면 OOO님의 라이더 정보가 없습니다. 라는 문구가 나옵니다.


(3) 데이터 분석

  • 타임어택에서 사용된 차량의 비율(파이 차트)

006
007
008

  • 타임어택 순위 분포도(막대 그래프)

009
010

  • 유저 닉네임과 채널명 그리고 보고 싶은 데이터의 유형을 선택한 후 Send 버튼을 클릭하면 Data Storage 페이지로 이동됩니다.
  • 그 후 DETAIL 버튼을 클릭하면 분석된 차트 정보를 볼 수 있습니다.
  • 참고로 타임어택 순위 분포도는 순위 간격을 지정해줘야 하기 때문에 rank interval 항목을 꼭 입력해줘야 합니다.
  • 그리고 데이터 분석은 데이터 수집이 완료된 항목에 대해서만 가능하지 이점 유의하시기 바랍니다!
    • ABC님의 S2 채널 랭킹 타임어택 데이터를 수집한 경우 ABC님의 S2 채널 데이터 분석 가능하지만 S1 채널 데이터는 수집하지 않았기 때문에 S1 채널의 데이터 분석은 불가능