Skip to content

yjoonh/oddlab

Repository files navigation

Oddlab - 스포츠 배당 분석

스포츠토토 배당 데이터 기반 분석 서비스

Next.js TypeScript SQLite Docker

주요 기능

  • 경기 배당 조회: 회차별 승무패 / 핸디캡 / 언더오버 배당 확인
  • 배당 분석 모달: 동일 배당 과거 통계, 상대 전적 H2H, 팀별 최근 10경기
  • 장바구니: 다중 경기 배당 선택 및 예상 배당률 계산
  • 소셜 피드: 다른 유저의 구매 내역 확인 및 팔로우
  • 마이페이지: 구매 내역, GP 잔액, 팔로잉 탭
  • 유저 프로필: 유저별 전적 및 구매 히스토리

기술 스택

영역 기술
프레임워크 Next.js 16 (App Router)
UI Tailwind CSS v4 + CSS Variables
상태 관리 Zustand (장바구니 / 유저) + TanStack Query
DB SQLite + Drizzle ORM (better-sqlite3)
배포 Docker Compose

시작하기

필수 요구사항

  • Node.js 20+

로컬 개발 환경 설정

  1. 의존성 설치
git clone https://github.com/yjoonh/oddlab.git
cd oddlab
npm install
  1. DB 초기화
npx tsx scripts/import.ts
  1. 개발 서버 실행
npm run dev

http://localhost:3003 에서 확인

Docker 배포

docker compose up -d --build

DB 파일은 ./db 디렉토리에 볼륨 마운트되어 컨테이너 재시작 시에도 데이터가 유지됩니다.

프로젝트 구조

oddlab/
├── app/
│   ├── api/
│   │   ├── bets/             # 경기 배당 조회 API
│   │   ├── analysis/         # 배당 분석 통계 API
│   │   ├── auth/             # 로그인/인증 API
│   │   ├── purchase/         # 구매 처리 API
│   │   ├── purchases/        # 구매 내역 조회 API
│   │   ├── follow/           # 팔로우/언팔로우 API
│   │   ├── feed/             # 피드 API
│   │   ├── gp/               # GP 잔액 조회 API
│   │   └── user/             # 유저 프로필 API
│   ├── feed/                 # 피드 페이지
│   ├── mypage/               # 마이페이지
│   ├── user/[username]/      # 유저 프로필 페이지
│   └── page.tsx              # 홈 (경기 목록)
├── components/
│   ├── HomeClient.tsx        # 홈 클라이언트 (회차 선택, 필터)
│   ├── BetRow.tsx            # 경기 배당 행 컴포넌트
│   ├── CartPanel.tsx         # 장바구니 (모바일/데스크탑)
│   ├── AnalysisModal.tsx     # 배당 분석 모달
│   └── Header.tsx            # 헤더 네비게이션
├── db/
│   ├── schema.ts             # Drizzle 스키마
│   └── index.ts              # DB 연결 및 마이그레이션
├── store/
│   ├── cartStore.ts          # 장바구니 Zustand 스토어
│   └── userStore.ts          # 유저 Zustand 스토어
├── lib/
│   ├── basePath.ts           # API fetch 경로 헬퍼
│   └── constants.ts          # 종목/카테고리 상수
├── scripts/
│   └── import.ts             # 데이터 임포트 스크립트
├── Dockerfile
└── docker-compose.yml

개발 스크립트

npm run dev          # 개발 서버 실행
npm run build        # 프로덕션 빌드

라이선스

MIT

About

스포츠토토 배당 데이터 기반 분석 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages