Giter Club home page Giter Club logo

tchatong's Introduction

Contributors Forks Stargazers Issues MIT License


Logo

트위치 채팅 통계 서비스

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. License
  4. History
  5. Contact

About The Project

Product Name Screen Shot server

트채통은 인터넷 방송 플랫폼 "트위치"의 채팅로그를 분석, 시각화하여 보여주는 서비스 입니다.

트채통은 Twitch에서 운영하는 사이트가 아닙니다.

(back to top)

Built With

Google Cloud MariaDB Redis Big Query Next JS Go Python Nginx Docker GitHub Actions Grafana InfluxDB Telegraf PhpMyAdmin

(back to top)

Getting Started

아래에서는 로컬에서 프로젝트를 실행하는 방법을 설명합니다.

Prerequisites

다음과 같은 프로그램이 설치되어 있어야 합니다.

  • Docker
  • Docker Compose

Start

  1. 프로젝트를 클론 받습니다.
     git clone https://github.com/team-irc/tchatong
  2. 프로젝트의 루트에 docker.env라는 파일을 만들고 아래의 내용을 채웁니다.
     # redis
     REDIS_HOST=YOUR_REDIS_HOST
     REDIS_PORT=YOUR_REDIS_PORT
     
     # mariaDB
     DB_HOST=YOUR_DB_HOST
     DB_USER=YOUR_DB_USER
     DB_PASSWORD=YOUR_DB_PASSWORD
     DB_NAME=YOUR_DB_NAME
     
     # google big query
     GOOGLE_PROJECT_ID=YOUR_GOOGLE_PROJECT_ID
     GOOGLE_DATASET_ID=YOUR_GOOGLE_DATASET_ID
     GOOGLE_TABLE_ID=YOUR_GOOGLE_TABLE_ID
     GOOGLE_APPLICATION_CREDENTIALS=/backend/key_name.json
     
     # twitch chat bot
     TWITCH_ID=YOUR_TWITCH_IRC_ID
     TWITCH_PW=YOUR_TWITCH_IRC_PASSWORD
     
     # twitch api
     TWITCH_API_CLIENT_ID=YOUR_TWITCH_API_CLIENT_ID
     TWITCH_API_CLIENT_SECRET=YOUR_TWITCH_API_CLIENT_SECRET
     TWITCH_API_ACCESS_TOKEN=YOUR_TWITCH_API_ACCESS_TOKEN
     
     # influxDB
     INFLUXDB_DB=YOUR_INFLUXDB_NAME
     INFLUXDB_USER=YOUR_INFLUXDB_USER
     INFLUXDB_ADMIN_ENABLED=true
     INFLUXDB_ADMIN_USER=YOUR_INFLUXDB_ADMIN_USER
     INFLUXDB_ADMIN_PASSWORD=YOUR_INFLUXDB_ADMIN_PASSWORD
     
     # grafana
     GRAFANA_ADMIN=YOUR_GRAFANA_ADMIN
     GRAFANA_ADMIN_PASSWORD=YOUR_GRAFANA_ADMIN_PASSWORD
     
     # phpmyadmin
     PMA_HOST=YOUR_PMA_HOST
     PMA_PORT=YOUR_PMA_PORT
     PMA_ARBITRARY=YOUR_PMA_ARBITRARY
     PMA_ABSOLUTE_URI=YOUR_PMA_ABSOLUTE_URI
  3. app/db/srcs 폴더에 init_db.sql 파일을 생성하고 내용을 채웁니다.
     FLUSH PRIVILEGES;
     CREATE DATABASE YOUR_DB_NAME;
     CREATE USER YOUR_USER_NAME'%' IDENTIFIED BY 'YOUR_PASSWORD';
     GRANT ALL ON *.* to YOUR_USER_NAME'%' IDENTIFIED BY 'YOUR_PASSWORD';
     FLUSH PRIVILEGES;
  4. app/backend 폴더에 Google Big Query Key를 넣습니다.
  5. 컨테이너를 실행시킵니다.
    docker-compose up --build

(back to top)

License

MIT 라이선스에 따라 배포됩니다. 자세한 내용은 LICENSE.txt를 확인해주세요.

(back to top)

History

v1.0.0

Next.js, Nest.js, GraphQL, MariaDB 등을 사용해 트채통 서비스 구축

v2.0.0

Nest.js + GraphQL로 구현된 백엔드 서버가 느려서 Golang + RESTful API로 마이그레이션

v2.0.1

redis를 사용해서 API 응답 캐싱

v2.1.0

Google Big Query 서비스를 이용해 종합 통계 기능 추가

v2.1.1

백엔드 서버에서 주는 timestamp를 safari에서 파싱하지 못하는 버그 수정

v2.1.2

top word 카운트 버그 수정

Contact

AMATEURTOSS - [email protected]
HanGyeolN - [email protected]

(back to top)

tchatong's People

Contributors

amateurtoss avatar hangyeoln avatar

Stargazers

Muhammed  avatar ARINDAM BHATTACHARJEE avatar  avatar Khắc Thuận avatar

tchatong's Issues

[FEATURE] 스트리머 정보를 SSR처리

기능을 설명해주세요
스트리머 정보를 지금 클라이언트쪽에서 가져오는데 이를 서버쪽에서 가져와서 렌더링 하는것으로 변경하면 좋을 것 같음

더 자세한 내용
현재 통계페이지에 들어가면 html head에 들어갈 스트리머 닉네임이 없을 때 트채통 | 이라고 출력됨
이걸 SSR을 사용하면 트채통 | 닉네임으로 출력되게 바꿀 수 있을것 같음

topword count 추가

top word 각각 단어들이 몇번 쓰였는지 db에 추가하고 api에 넣어야함

프론트엔드 로딩 구현

Is your feature request related to a problem? Please describe.
현재 로딩이 되는 순서대로 화면이 그려지는데 데이터 로딩이 끝났는지가 불분명해서 불편함

Describe the solution you'd like
로딩중에는 로딩 컴포넌트를 띄워야 함

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.