Skip to content

ysoh20/Nikey-Point

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

43 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NikePoint

AI ๊ธฐ๋ฐ˜ ๋Ÿฌ๋‹ ์ž์„ธ ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ

์‚ฌ์šฉ์ž์˜ ๋Ÿฌ๋‹ ์˜์ƒ์„ ๋ถ„์„ํ•˜์—ฌ MediaPipe๋ฅผ ํ†ตํ•ด ์ž์„ธ๋ฅผ ์ถ”์ถœํ•˜๊ณ , AI ๊ธฐ๋ฐ˜ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ํ”„๋ก ํŠธ์—”๋“œ: Flutter (iOS - iPhone 15 Pro)
  • ๋ฐฑ์—”๋“œ: FastAPI + PostgreSQL + Celery
  • CV ์—”์ง„: Google MediaPipe Pose
  • ํŒจํ„ด: klid-aicb (๊ธฐ๋Šฅ๋ณ„ ๋ชจ๋“ˆํ™”)

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

NikePoint/
โ”œโ”€โ”€ backend/              # FastAPI ๋ฐฑ์—”๋“œ
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ core/        # ๊ณตํ†ต ์„ค์ •
โ”‚   โ”‚   โ”œโ”€โ”€ user/        # ์‚ฌ์šฉ์ž ์ธ์ฆ
โ”‚   โ”‚   โ”œโ”€โ”€ video/       # ์˜์ƒ ์—…๋กœ๋“œ/๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ pose_detection/  # MediaPipe ํ‚คํฌ์ธํŠธ ์ถ”์ถœ
โ”‚   โ”‚   โ”œโ”€โ”€ workers/     # Celery ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…
โ”‚   โ”‚   โ””โ”€โ”€ main.py      # FastAPI ์•ฑ
โ”‚   โ”œโ”€โ”€ tests/           # ํ…Œ์ŠคํŠธ
โ”‚   โ”œโ”€โ”€ alembic/         # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
โ”‚   โ””โ”€โ”€ storage/         # ๋กœ์ปฌ ํŒŒ์ผ ์ €์žฅ์†Œ
โ”‚
โ”œโ”€โ”€ frontend/            # Flutter ์•ฑ โœ… ์™„์„ฑ!
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ config/      # API & ํ…Œ๋งˆ ์„ค์ •
โ”‚   โ”‚   โ”œโ”€โ”€ models/      # ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
โ”‚   โ”‚   โ”œโ”€โ”€ services/    # API ์„œ๋น„์Šค
โ”‚   โ”‚   โ”œโ”€โ”€ providers/   # ์ƒํƒœ ๊ด€๋ฆฌ
โ”‚   โ”‚   โ”œโ”€โ”€ screens/     # ํ™”๋ฉด UI
โ”‚   โ”‚   โ””โ”€โ”€ widgets/     # ์žฌ์‚ฌ์šฉ ์œ„์ ฏ
โ”‚   โ””โ”€โ”€ ios/            # iOS ์„ค์ •
โ””โ”€โ”€ README.md

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘ (Docker)

1. ์‚ฌ์ „ ์ค€๋น„

  • Docker & Docker Compose ์„ค์น˜
  • Git

2. ํ”„๋กœ์ ํŠธ ํด๋ก 

git clone <repository-url>
cd NikePoint

3. Docker Compose๋กœ ์‹คํ–‰

cd backend
docker-compose up -d

์ด ๋ช…๋ น์œผ๋กœ ๋‹ค์Œ ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค:

  • PostgreSQL (ํฌํŠธ 5432)
  • Redis (ํฌํŠธ 6379)
  • FastAPI ์„œ๋ฒ„ (ํฌํŠธ 8000)
  • Celery ์›Œ์ปค

4. API ์ ‘์†

๐Ÿ’ป ๋กœ์ปฌ ๊ฐœ๋ฐœ (uv ์‚ฌ์šฉ)

1. ์‚ฌ์ „ ์ค€๋น„

# uv ์„ค์น˜
curl -LsSf https://astral.sh/uv/install.sh | sh

# PostgreSQL & Redis ์„ค์น˜ (๋˜๋Š” Docker๋กœ ์‹คํ–‰)
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=dev_password postgres:15
docker run -d -p 6379:6379 redis:7

2. ์˜์กด์„ฑ ์„ค์น˜

cd backend
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv sync

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

# ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉ
alembic upgrade head

4. ์„œ๋ฒ„ ์‹คํ–‰

# FastAPI ์„œ๋ฒ„
uvicorn src.main:app --reload --port 8000

# Celery ์›Œ์ปค (๋ณ„๋„ ํ„ฐ๋ฏธ๋„)
celery -A src.workers.tasks worker --loglevel=info

๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ

User (์‚ฌ์šฉ์ž)
  - id, email, password_hash
  - height (ํ‚ค), weight, age
  
Video (์˜์ƒ)
  - id, user_id
  - file_path, status
  - uploaded_at, processed_at
  
Keypoint (ํ‚คํฌ์ธํŠธ)
  - id, video_id
  - frame_number, timestamp
  - landmarks (JSONB - 33๊ฐœ ํฌ์ธํŠธ)

๐Ÿ”Œ API ์—”๋“œํฌ์ธํŠธ

์ธ์ฆ

# ํšŒ์›๊ฐ€์ž…
POST /api/auth/register
{
  "email": "user@example.com",
  "password": "password123",
  "height": 175.5
}

# ๋กœ๊ทธ์ธ
POST /api/auth/login
{
  "email": "user@example.com",
  "password": "password123"
}

์˜์ƒ ์ฒ˜๋ฆฌ

# ์˜์ƒ ์—…๋กœ๋“œ
POST /api/video/upload
Content-Type: multipart/form-data
  - user_id: <user_id>
  - file: <video_file>

# ์ฒ˜๋ฆฌ ์ƒํƒœ ํ™•์ธ
GET /api/video/{video_id}/status

# ํ‚คํฌ์ธํŠธ ์กฐํšŒ
GET /api/pose/video/{video_id}/keypoints

๐Ÿงช ํ…Œ์ŠคํŠธ

# ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์‹คํ–‰
pytest

# ํŠน์ • ํ…Œ์ŠคํŠธ๋งŒ ์‹คํ–‰
pytest tests/test_user/

# ์ปค๋ฒ„๋ฆฌ์ง€ ํฌํ•จ
pytest --cov=src tests/

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Backend

  • FastAPI: ๊ณ ์„ฑ๋Šฅ ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • SQLAlchemy: ORM
  • Alembic: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • Celery: ๋น„๋™๊ธฐ ์ž‘์—… ํ
  • Redis: ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค
  • PostgreSQL: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • MediaPipe: ์ž์„ธ ์ถ”์ถœ
  • OpenCV: ์˜์ƒ ์ฒ˜๋ฆฌ

Development

  • uv: ๋น ๋ฅธ Python ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
  • Docker: ์ปจํ…Œ์ด๋„ˆํ™”
  • pytest: ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

๐Ÿ“ˆ ์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ

Backend (Phase 1) โœ…

  • โœ… ์‚ฌ์šฉ์ž ์ธ์ฆ (ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ)
  • โœ… ์˜์ƒ ์—…๋กœ๋“œ ๋ฐ ์ €์žฅ
  • โœ… MediaPipe๋ฅผ ์ด์šฉํ•œ ํ‚คํฌ์ธํŠธ ์ถ”์ถœ
  • โœ… Celery ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
  • โœ… RESTful API
  • โœ… Docker ๋ฐฐํฌ ํ™˜๊ฒฝ
  • โœ… ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

Frontend (Flutter) โœ…

  • โœ… ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์˜์ƒ ์„ ํƒ
  • โœ… ํ‚ค(์‹ ์žฅ) ์ž…๋ ฅ UI
  • โœ… ๋ฐฑ์—”๋“œ API ์—ฐ๋™
  • โœ… ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ์ƒํƒœ ํ‘œ์‹œ
  • โœ… 33๊ฐœ ํ‚คํฌ์ธํŠธ ์‹œ๊ฐํ™”
  • โœ… ํ”„๋ ˆ์ž„๋ณ„ ์• ๋‹ˆ๋ฉ”์ด์…˜
  • โœ… Provider ์ƒํƒœ ๊ด€๋ฆฌ

๐Ÿš€ Flutter ์•ฑ ์‹คํ–‰

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

cd frontend
open -a Simulator
flutter run

์‹ค์ œ ๊ธฐ๊ธฐ (์นด๋ฉ”๋ผ ํ…Œ์ŠคํŠธ์šฉ)

cd frontend
flutter devices
flutter run -d <device-id>

์ฃผ์˜: ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ๋Š” lib/config/api_config.dart์—์„œ ๋งฅ๋ถ IP๋กœ ๋ณ€๊ฒฝ ํ•„์š”

๐Ÿšง Phase 2 ๊ณ„ํš

  1. ์นด๋ฉ”๋ผ ์ดฌ์˜ ๊ธฐ๋Šฅ (camera ํŒจํ‚ค์ง€)

    • ์‹ค์‹œ๊ฐ„ ์ดฌ์˜
    • ํ”„๋ฆฌ๋ทฐ ํ™”๋ฉด
  2. ์ž์„ธ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • ๋ณดํญ, ์ฐฉ์ง€๊ฐ๋„, ์ผ€์ด๋˜์Šค ๊ณ„์‚ฐ
    • ์ˆ˜์ง ์ง„๋™, ์ ‘์ง€ ์‹œ๊ฐ„ ์ธก์ •
  3. LLM ํ”ผ๋“œ๋ฐฑ ์ƒ์„ฑ

    • OpenAI GPT-4 ๋˜๋Š” Claude ํ†ตํ•ฉ
    • ์ž์—ฐ์–ด ํ”ผ๋“œ๋ฐฑ ์ƒ์„ฑ
    • ๊ฐœ์„  ์ œ์•ˆ ์ œ๊ณต
  4. ํžˆ์Šคํ† ๋ฆฌ & ํ†ต๊ณ„

    • ๊ณผ๊ฑฐ ๋ถ„์„ ๊ฒฐ๊ณผ ์กฐํšŒ
    • ์ง„์ฒ™๋„ ๊ทธ๋ž˜ํ”„
    • ๊ฐœ์„  ์ถ”์ด ํ‘œ์‹œ
  5. ์ธ์ฆ ๊ฐ•ํ™”

    • JWT ํ† ํฐ ์ธ์ฆ
    • Apple Login ์—ฐ๋™
  6. ์ธํ”„๋ผ ๊ฐœ์„ 

    • AWS S3 ์Šคํ† ๋ฆฌ์ง€
    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ
    • ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ

๐Ÿ“ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

.env ํŒŒ์ผ ์ƒ์„ฑ (.env.example ์ฐธ๊ณ ):

DATABASE_URL=postgresql://nikepoint:dev_password@localhost:5432/nikepoint
REDIS_URL=redis://localhost:6379/0
STORAGE_PATH=./storage/videos
MEDIAPIPE_MODEL_COMPLEXITY=2

๐Ÿค ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

    git checkout -b feature/new-feature
    # ์ฝ”๋“œ ์ž‘์„ฑ
    pytest  # ํ…Œ์ŠคํŠธ ์‹คํ–‰
    git commit -m "feat: add new feature"
  2. ๋กœ์ปฌ ํ…Œ์ŠคํŠธ

    docker-compose up -d
    # API ํ…Œ์ŠคํŠธ
    curl http://localhost:8000/api/health
  3. ๋ฐฐํฌ

    docker-compose build
    docker-compose up -d

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

๐Ÿ‘ฅ ๊ธฐ์—ฌ

์ด์Šˆ์™€ PR์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!


NikePoint - AI ๊ธฐ๋ฐ˜ ๋Ÿฌ๋‹ ์ž์„ธ ๋ถ„์„ ์‹œ์Šคํ…œ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors