Skip to content

문제 추천 시스템, 유저 관리 등의 기능을 지원하는 알고리즘 스터디 사이트 API 서버

Notifications You must be signed in to change notification settings

GPGT-Algorithm-Study/GPGT-Server

Repository files navigation

GPGT: 알고리즘 스터디 동기부여 플랫폼

GPGT 로고

🔗 GPGT 웹사이트

프로젝트 개요

GPGT는 대표적인 알고리즘 문제 풀이 사이트인 'Baekjoon Online Judge'와 'Solved.ac'의 데이터를 기반으로 스터디원의 문제 풀이 현황을 자동으로 관리하고, 규칙에 따라 경고를 부여하며, 동기부여를 촉진하는 알고리즘 스터디 플랫폼입니다.

주요 기능

  • 랜덤 문제 스트릭: 매일 난이도 구간에 맞는 랜덤 문제 제공.
  • 문제 추천: 머신러닝 기반 또는 단순랜덤 문제 추천 시스템.
  • 포인트 시스템: 문제 해결, 팀 경쟁 승리 시 포인트 획득 및 아이템 구매.
  • 팀 경쟁 시스템: 매주 팀 대결을 통한 스터디 동기부여.
  • 유저 통계: 개인의 문제 풀이 통계 및 포인트 확인.
  • 게시판 기능: Markdown 형식의 글 작성 및 댓글 기능.
  • 알고리즘 로드맵: 주차별 문제 구성을 통한 체계적인 학습.

사용 기술







프로젝트 배경

이 프로젝트는 알고리즘 스터디의 효율성을 높이기 위해 조직되었습니다. 기존 스터디에서는 매일 수기로 유저의 문제 풀이 현황을 확인하고 관리하는 작업이 필요했으며, 이러한 반복적인 작업을 자동화하고, 스터디원들의 동기부여를 위해 새로운 기능들을 추가한 사이트입니다.

서비스 기능 상세

1. 랜덤 문제 스트릭

  • 사용자가 원하는 난이도 구간을 설정하면, 해당 구간의 문제를 매일 하나씩 추천받습니다. 문제를 풀면 스트릭이 채워지며 동기부여를 제공합니다.

랜덤 문제 스트릭

2. 팀 대항 시스템

  • 매주 두 팀으로 나뉘어 팀 대결을 진행합니다. 팀원의 문제 해결 난이도에 따라 점수가 책정되며, 승리 팀에게 추가 포인트가 부여됩니다.

팀 대항

3. 유저 통계

  • 사용자의 문제 풀이 현황 및 포인트를 시각적으로 확인할 수 있습니다.

유저 통계

4. 마크다운 게시판

  • Markdown 형식의 글 작성과 댓글 기능을 지원하는 게시판을 제공합니다. 문제풀이와 질문 게시판에서는 문제 번호를 입력하면 자동으로 해당 문제의 정보가 링크됩니다.

마크다운 게시판

5. 아이템 상점

  • 문제 풀이로 얻은 포인트로 아이템을 구매하고 사용할 수 있는 상점 기능을 제공합니다.

아이템 상점

6. 프로필 상세 페이지

  • 사용자 프로필에서 랜덤 스트릭 정보, 게시글, 포인트 및 경고 로그를 조회할 수 있습니다.

프로필 페이지

서비스 아키텍처

서버 구조

개발 환경

  • OpenJDK 11

시작하기

1. 빌드

# 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} &

2. Docker 사용

# Docker 이미지 빌드
docker build -t [{dockerID}/{dockerHubRepository}] .

# DockerHub에 이미지 푸시
docker push [{image}/{Repository}]

# Docker 컨테이너 실행
docker run -p 8080:8080 {dockerHubID}/{image}

About

문제 추천 시스템, 유저 관리 등의 기능을 지원하는 알고리즘 스터디 사이트 API 서버

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages