GPGT는 대표적인 알고리즘 문제 풀이 사이트인 'Baekjoon Online Judge'와 'Solved.ac'의 데이터를 기반으로 스터디원의 문제 풀이 현황을 자동으로 관리하고, 규칙에 따라 경고를 부여하며, 동기부여를 촉진하는 알고리즘 스터디 플랫폼입니다.
- 랜덤 문제 스트릭: 매일 난이도 구간에 맞는 랜덤 문제 제공.
- 문제 추천: 머신러닝 기반 또는 단순랜덤 문제 추천 시스템.
- 포인트 시스템: 문제 해결, 팀 경쟁 승리 시 포인트 획득 및 아이템 구매.
- 팀 경쟁 시스템: 매주 팀 대결을 통한 스터디 동기부여.
- 유저 통계: 개인의 문제 풀이 통계 및 포인트 확인.
- 게시판 기능: Markdown 형식의 글 작성 및 댓글 기능.
- 알고리즘 로드맵: 주차별 문제 구성을 통한 체계적인 학습.
이 프로젝트는 알고리즘 스터디의 효율성을 높이기 위해 조직되었습니다. 기존 스터디에서는 매일 수기로 유저의 문제 풀이 현황을 확인하고 관리하는 작업이 필요했으며, 이러한 반복적인 작업을 자동화하고, 스터디원들의 동기부여를 위해 새로운 기능들을 추가한 사이트입니다.
- 사용자가 원하는 난이도 구간을 설정하면, 해당 구간의 문제를 매일 하나씩 추천받습니다. 문제를 풀면 스트릭이 채워지며 동기부여를 제공합니다.
- 매주 두 팀으로 나뉘어 팀 대결을 진행합니다. 팀원의 문제 해결 난이도에 따라 점수가 책정되며, 승리 팀에게 추가 포인트가 부여됩니다.
- 사용자의 문제 풀이 현황 및 포인트를 시각적으로 확인할 수 있습니다.
- Markdown 형식의 글 작성과 댓글 기능을 지원하는 게시판을 제공합니다. 문제풀이와 질문 게시판에서는 문제 번호를 입력하면 자동으로 해당 문제의 정보가 링크됩니다.
- 문제 풀이로 얻은 포인트로 아이템을 구매하고 사용할 수 있는 상점 기능을 제공합니다.
- 사용자 프로필에서 랜덤 스트릭 정보, 게시글, 포인트 및 경고 로그를 조회할 수 있습니다.
- OpenJDK 11
# Build
./gradlew build
# Run (OpenJDK 11 필요)
java -jar /build/libs/randomdefence-0.0.1-SNAPSHOT.jar
# Background run
nohup java -jar /build/libs/randomdefence-0.0.1-SNAPSHOT.jar > {my_log_file} &
# Docker 이미지 빌드
docker build -t [{dockerID}/{dockerHubRepository}] .
# DockerHub에 이미지 푸시
docker push [{image}/{Repository}]
# Docker 컨테이너 실행
docker run -p 8080:8080 {dockerHubID}/{image}