S

StarCraft2 Build Recommendation

StarCraft2 Build Recommendation Project

Forked from 2013104051

< 스타크래프트2 빌드 추천 프로젝트 >
설명 : 대전 상대의 실력 정도에 따라 빌드를 추천해줌

< KHU-HUB >
Branch를 master + 3가지(API, Build_Data, Site)로 나눠서 작업

0. master : 통합
1. API : API 
2. Build_Data : 추천 빌드, 빌드 오더
3. Site : 사이트 제작

< Local Test >

1. git clone http://khuhub.khu.ac.kr/2013104051/OSS_StarCraft2_Project.git
2. npm install
3. node app.js
4. web에서 localhost:3000

< 21일까지 Test 가능한 AWS 주소 >
13.124.122.119

< 사이트 사용 방법 >

1. 창모드로 플레이, 마우스 커서 가두기 켜기 선택
2. Alt+Tab을 통해 게임 창 빠져나온 후 사이트에서 자신의 종족과 상대방 종족 선택, 상대 아이디 검색
   (랜덤은 제공하지 않으므로, 상대가 랜덤인 경우엔 종족을 확인하게 된 후 검색)
3. 추천 빌드 및 빌드 오더 확인 후 창모드로 계속 플레이 하거나, 화면 설정 변환 후 플레이

< API를 통해 가져올 수 있는 데이터 >

1. 최근 이겼는지 졌는지
2. 맵
3. 종족 레벨
4. 이번 시즌 전체 승률
5. 종족별 승수

< 알고리즘 >

1. 스타2 API로 상대방 데이터를 가져옴
2. 데이터 기반으로 분석 후 상대의 실력 정도(우위, 대등, 열세)를 판단
3. 상대의 실력에 따라 빌드 추천(올인, 타이밍, 운영 등) 및 해당 빌드 오더 제공

<!제한사항!>

1. rankedftw.com에 어떤 아이디를 검색을 하면 rankedftw는 그 문자열을 포함하는 모든 아이디들을 검색하여 결과를 내놓지만, 이 코드는 rankedftw의 검색페이지의 첫 페이지만을 크롤링한다. 그렇기 때문에 첫 페이지에 검색한 아이디가 없을 경우 에러가 발생하여 빌드추천 웹사이트를 다시 로드하여야 한다. ex) Trap(조성호 선수)

2. 상대가 래더를 하지 않거나 매치 전적이 없을 경우 프로필 API에 해당 정보가 비어있어서 다음 request에 사용할 url을 구성하지 못하고 에러가 발생한다. 

3. 잘 동작하는 테스트용 ID : Stats(김대엽 선수), Rogue(이병렬 선수), rogue(일반인)

4. 한글아이디 검색은 구현하지 않아서 불가능하다.

<2018.12.20 추가>
블리자드 API access token의 주기적인 랜덤교체로 router/main.js에서 각 request url 수정함. 
이후 access token의 교체가 또 발생하면 관리자의 access token을 발급받아야함.