Skip to content

rmdnps10/KoderRunner-2025-SERVER

Repository files navigation

📌 KodeRunner API 구조 한눈에 보기

🗂️ 엔드포인트 구조

/api/v1/
  ├── attend/
  │     ├── POST   /conference           # 컨퍼런스 출석 등록
  │     ├── POST   /program/{programId} # 프로그램 출석 (코드 입력)
  │     ├── POST   /booth/{boothId}     # 부스 출석
  ├── user/
  │     ├── GET    /{userId}            # 유저 상세 정보
  ├── game/
  │     ├── GET    /{gameId}            # 게임 정보
  │     ├── POST   /{gameId}/start      # 게임 시작
  │     └── POST   /{gameId}/finish     # 게임 종료/우승
  ├── bet/
  │     └── POST   /                    # 베팅 등록
  └── ticket/
        ├── GET    /range               # 응모권 번호 범위

주요 기능 요약

  • 출석 체크: 컨퍼런스, 프로그램, 부스 출석 및 응모권 발급
  • 프로그램 관리: 프로그램 목록/상세/출석코드 제공
  • 유저 관리: 유저 상세, 전체 유저 요약, 출석/응모권/베팅 정보
  • 게임 & 베팅: 게임 생성/진행/종료, 팀 베팅
  • 럭키드로우: 응모권 번호 범위 등

🗃️ 데이터 스키마 요약

�️ Ticket

필드 타입 설명
ticketId integer 응모권 고유 ID
userId string 발급 대상 유저
sourceType string 발급 출처 (conference/session/hands-on/...)
sourceId string 출처 ID
issuedAt datetime 발급 시간

📄 Program

필드 타입 설명
programId string 프로그램 ID
title string 제목
type string 종류 (session/hands-on/discussion)
trackId string 트랙 ID
startTime / endTime datetime 시간 정보
randomCode string 출석용 난수 코드 (nullable)

🏷️ Booth

필드 타입 설명
boothId string 부스 ID
name string 부스 이름
description string 부스 설명 (nullable)

👤 User

필드 타입 설명
userId string 유저 ID
lotteryTickets int[] 응모권 리스트
bettedTeam string (nullable) 베팅한 팀 이름

� Game

필드 타입 설명
gameId string 게임 ID
name string 게임 이름
teams string[] 참여 팀
status string 진행 상태 (NOT_STARTED / ONGOING / COMPLETED)
winner string (nullable) 우승 팀


⚙️ 개발 환경

  • Framework: FastAPI
  • API 문서: Swagger 자동 생성 (/docs 경로)
  • DB: PostgreSQL 또는 SQLite (개발 시)

🚧 TODO

  • 출석 횟수 누적 로직 구현
  • 응모권 중복 발급 방지
  • 베팅 마감 시간 체크
  • Admin 전용 인증 및 권한 처리
  • 에러 응답 통일화

🧩 데이터 스키마 요약

📄 Ticket

필드 타입 설명
ticketId integer 응모권 고유 ID
userId string 발급 대상 유저
sourceType string 발급 출처 (conference/session/hands-on/...)
sourceId string 출처 ID
issuedAt datetime 발급 시간

📄 Program

필드 타입 설명
programId string 프로그램 ID
title string 제목
type string 종류 (session/hands-on/discussion)
trackId string 트랙 ID
startTime / endTime datetime 시간 정보
randomCode string 출석용 난수 코드 (nullable)

📄 User

필드 타입 설명
userId string 유저 ID
lotteryTickets int[] 응모권 리스트
bettedTeam string (nullable) 베팅한 팀 이름

📄 Game

필드 타입 설명
gameId string 게임 ID
name string 게임 이름
teams string[] 참여 팀
status string 진행 상태 (NOT_STARTED / ONGOING / COMPLETED)
winner string (nullable) 우승 팀

📦 개발 환경

  • Framework: FastAPI
  • API 문서: Swagger 자동 생성 (/docs 경로)
  • DB: PostgreSQL

🚧 TODO

  • Admin 전용 인증 및 권한 처리

About

카카오뱅크 기술 컨퍼런스 코드러너 진행을 위한 메인 서버

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages