/PL_Stats

React.js + Node.js + Firebase DB 프리미어리그 스탯 웹페이지 토이 프로젝트

Primary LanguageJavaScript

개요

⚽💂‍♂️ 프리미어리그 순위 및 통계

API-FOOTBALL을 호출하여 리그 정보를 받아옴.

비용 문제로 웹 스크래핑으로 변경.

기본 화면은 리그 순위 표기.

내비게이션을 이용한 선수 및 팀 통계, 득점, 도움 순위 간 이동.

🔨 구현 사항


📺 Front-end

리그 순위

  • 리그 순위 표기
  • 챔피언스리그, 유로파리그, 유로파리그 컨퍼런스, 강등권 구분
  • 팀 클릭시 팀 정보로 이동
  • 팀 로고 표기

선수 통계

  • 득점 도움 패스 키패스 드리블 Top 10 순위
  • 소속팀 로고 표기
  • [ ] 선수 사진 표기, 초상권
  • 반응형 웹으로 변경

팀 통계

  • 득점, 실점, 점유율 표기
  • 팀 로고 표기
  • 반응형 웹으로 변경

로딩

  • 로딩 스피너

연도별 순위 표기 추후 추가 예정.

팀별 커뮤니티

  • 팀별 페이지 생성

📡 Back-end

node.js를 이용한 서버 구현.

  • Firebase Realtime Database에 스크래핑한 데이터 요청.
  • 프론트 단에 데이터 전송.

팀별 게시판 CRUD 기능 추가 예정.

로그인 기능 추가 예정.

Scrapper

  • Python의 Scheduler 라이브러리로 일정 시간마다 DB를 최신화하도록 하기 위해 스크래핑에는 Python을 이용.

🤦‍♂️ 배포 후 문제점 발견

[fixed] 스크래핑 + 프록시 서버를 한 번 더 거치기 때문에 속도가 굉장히 느림.

[ ] 해결책 : 파이어베이스 DB에 하루에 한 번 자동업데이트하는 프로그램 제작 후 파이어베이스에서 데이터를 가져오기. DB 구축 후 속도 개선 완료.


📱 실행 화면

폰트 : https://s-core.co.kr/company/font/ (S-Core 폰트로 상업적 이용 가능함.)

🏆 리그 순위

league_table

리그 순위 표기 화면. 각 팀의 table row를 클릭하면 각 팀에 맞는 페이지로 이동. 추후 시즌별 리그 성적을 추가할 예정.

🚪 팀별 페이지

team_page

각 팀 페이지 및 게시판은 구현 예정.

📊 팀 통계

팀을 클릭했을 때도 마찬가지로 팀 게시판으로 이동할 예정.

🏅 선수 통계

선수 이름을 클릭시 해당 선수를 구글에서 검색하도록 연결.