Skip to content

Create a warm year-end with SantaTellMe. Express your heart with voice and words!

Notifications You must be signed in to change notification settings

RJihyeon/SantaTellMe

Repository files navigation

πŸŽ… 산타텔미 ν”„λ‘œμ νŠΈ

Create a warm year-end with SantaTellMe. Express your heart with voice and words!

λͺ©μ°¨

Intro

λ”°λœ»ν•œ 연말을 μœ„ν•œ 크리슀마슀 게릴라 μ„œλΉ„μŠ€! κΈ°μ‘΄ 트리꾸미기λ₯Ό λ°œμ „μ‹œμΌœ, 읡λͺ…μ˜ 산타 λͺ©μ†Œλ¦¬λ‘œ λ§ˆμŒμ„ μ „ν•˜κ³  λ§žν˜€λ³΄λŠ” μš°νŽΈν•¨.

Demo

스크란샷 2025-01-07 α„‹α…©α„Œα…₯ᆫ 8 34 47 스크란샷 2025-01-07 α„‹α…©α„Œα…₯ᆫ 8 35 41 스크란샷 2025-01-07 α„‹α…©α„Œα…₯ᆫ 8 53 28

recipes

requirments

  • docker, docker compose
  • pipenv
  • python 3.10
  • .env file
    • ./SantaTellMe/.env νŒŒμΌμ„ λ…Έμ…˜ νŽ˜μ΄μ§€μ—μ„œ λ³΅μ‚¬ν•˜κΈ°. 카카였 둜그인 κ΄€λ ¨ 였λ₯˜λŠ” .env 파일의 λ‚΄μš©μ΄ ν˜„μ œ λ…Έμ…˜ νŽ˜μ΄μ§€μ˜ .env와 μΌμΉ˜ν•˜μ§€ μ•Šμ•„μ„œ 일 수 있음

μ°Έκ³ 

  • santa-db(mysql container) λ„μšΈμ‹œ ./SantaTellMe/backend/data 에 μœ„μΉ˜ν•œ .sql νŒŒμΌλ“€ 싀행됨. table 생성 및 ν…ŒμŠ€νŠΈ 데이터 μΆ”κ°€.

docker둜 service κ΅¬λ™μ‹œμΌœλ³΄κΈ°

# μ‹€ν–‰ μœ„μΉ˜: ./SantaTellMe
# μ»€λ§¨λ“œ: docker-compose up -d <serivce_name or omit> --build

# (ex)
docker-compose up -d santa-db, santa-server --build             # mysql, server 만 λ„μš°κΈ°
docker-compose up -d santa-db, santa-server santa-front --build # mysql, server, fe λ„μš°κΈ° μƒλž΅κ³Ό 같은 의미
docker-compose up -d --build                                    # μœ„μ™€ λ˜‘κ°™μ΄ λ™μž‘
  • service_name: santa-db(ν•„μˆ˜), santa-server, santa-front ν˜Ήμ€ λͺ¨λ“  μ„œλΉ„μŠ€λ₯Ό λ„μšΈλ €λ©΄ μƒλž΅
  • --build: μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜ 처음 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰μ‹œν‚¬λ•Œ(이미지가 없을 λ•Œ) κΌ­ 뢙어야함
  • -d: detach mode(둜그λ₯Ό 좜λ ₯ν•˜μ§€ μ•ŠμŒ) 둜그λ₯Ό νŽΈν•˜κ²Œ λ³Ό 수 있음으둜 였λ₯˜ 원인 νŒŒμ•…μ‹œ μ„€μ • ν•˜μ§€ μ•ŠλŠ” 것 μΆ”μ²œ

mysql container 데이터 확인해보기

mysql -h 127.0.0.1 --port 3306 --user=test_user --password=pass test_db
  • μœ„ λͺ…λ Ήμ–΄ μž…λ ₯ν•˜λ©΄ mysql client둜 mysql container 접속
  • mysql clientκ°€ κΉ”λ €μžˆμ–΄μ•Ό ν•œλ‹€

server integration test 해보기

# μ‹€ν–‰μœ„μΉ˜: ./SantaTellMe
# μ°Έκ³ : κΆŒν•œ 문제 있으면 chmod u+x test-server.sh 해보기
# μ»€λ§¨λ“œ: ./test-server.sh

# (ex)
./test-server.sh
  • 3 passed, 1 warning in 0.87s 쀑간에 μ΄λ ‡κ²Œ 뜨면 성곡

μ•„ν‚€ν…μ²˜

스크란샷 2025-01-07 α„‹α…©α„Œα…₯ᆫ 9 22 45

πŸ“ ν”„λ‘œμ νŠΈ 폴더 ꡬ쑰

santatellme/
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ main.py
β”‚   β”‚   β”œβ”€β”€ api/                     # λΌμš°ν„°μ™€ μ—”λ“œν¬μΈνŠΈ 관리
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ auth_router.py       # 카카였 둜그인 κ΄€λ ¨ λΌμš°ν„°
β”‚   β”‚   β”‚   β”œβ”€β”€ user_router.py       # μ‚¬μš©μž κ΄€λ ¨ API λΌμš°ν„°
β”‚   β”‚   β”‚   └── voice_router.py      # μŒμ„± λ©”μ‹œμ§€ κ΄€λ ¨ API λΌμš°ν„°
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ auth/                    # 인증 및 OAuth κ΄€λ ¨ 둜직
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ jwt_handler.py       # JWT 생성 및 검증 둜직
β”‚   β”‚   β”‚   └── kakao_oauth.py       # 카카였 OAuth2.0 인증 처리
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ core/                    # μ„€μ • 및 μœ ν‹Έλ¦¬ν‹°
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ config.py            # ν™˜κ²½ μ„€μ • (ν™˜κ²½λ³€μˆ˜ 관리)
β”‚   β”‚   β”‚   └── utils.py          
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ db/                      # λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° 및 μ΄ˆκΈ°ν™”
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   └── db.py                # DB μ—°κ²° μ„€μ •
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ entity/                  # Pydantic 및 SQLAlchemy λͺ¨λΈ μ •μ˜
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ user.py              # Base ν…Œμ΄λΈ” μ •μ˜
β”‚   β”‚   β”‚   β”œβ”€β”€ user.py              # Users ν…Œμ΄λΈ” λͺ¨λΈ
β”‚   β”‚   β”‚   └── voice.py             # Voice ν…Œμ΄λΈ” λͺ¨λΈ
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ models/                  
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   └── models.py            # λͺ¨λΈ MetaData μ •μ˜
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ repository/     
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py        
β”‚   β”‚   β”‚   β”œβ”€β”€ dependencies.py
β”‚   β”‚   β”‚   β”œβ”€β”€ user_repository.py            
β”‚   β”‚   β”‚   └── voice_repository.py           
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ rvc/                  # μŒμ„± κ΄€λ ¨ 둜직
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   └── request.py         # μŒμ„± 데이터 처리 μš”μ²­            
β”‚   β”‚   β”‚
β”‚   β”‚   └── s3_service/            # AWS S3 κ΄€λ ¨ 둜직
β”‚   β”‚       β”œβ”€β”€ __init__.py
β”‚   β”‚       └── s3.py    
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ init-schema.sql         # DB μ΄ˆκΈ°ν™” SQL 파일
β”‚   β”‚   └── sample-data.sql         # μƒ˜ν”Œ 데이터 SQL 파일
β”‚   β”‚
β”‚   β”œβ”€β”€ integrate_test/             # 톡합 ν…ŒμŠ€νŠΈ
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ conftest.py
β”‚   β”‚   └── test_server.py
β”‚   β”‚
β”‚   β”œβ”€β”€ Dockerfile                  # Docker μ„€μ • 파일
β”‚   β”œβ”€β”€ Pipfile                     # Pipenv νŒ¨ν‚€μ§€ μ„€μ • 파일
β”‚   β”œβ”€β”€ Pipfile.lock                # Pipenv 잠금 파일
β”‚   β”œβ”€β”€ readme.md                   # λ°±μ—”λ“œ μ„€λͺ… λ¬Έμ„œ
β”‚   └── requirements                # μΆ”κ°€ μ˜μ‘΄μ„± 파일
β”‚   
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ app/                        # Next.js μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 디렉토리
β”‚   β”‚   β”œβ”€β”€ api/                    # API λΌμš°νŒ… κ΄€λ ¨ μ½”λ“œ
β”‚   β”‚   β”œβ”€β”€ components/             # 곡톡 및 νŽ˜μ΄μ§€λ³„ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ fonts/                  # 폰트 파일
β”‚   β”‚   β”œβ”€β”€ invite/                 # μ΄ˆλŒ€ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ lib/                    # 곡톡 μœ ν‹Έλ¦¬ν‹°
β”‚   β”‚   β”œβ”€β”€ my/                     # μ‚¬μš©μž κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ send/                   # λ©”μ‹œμ§€ 전솑 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ testcookie/             # ν…ŒμŠ€νŠΈμš© μΏ ν‚€ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ favicon.ico             # μ•„μ΄μ½˜ 파일
β”‚   β”‚   β”œβ”€β”€ globals.css             # μ „μ—­ μŠ€νƒ€μΌ 파일
β”‚   β”‚   β”œβ”€β”€ layout.tsx              # λ ˆμ΄μ•„μ›ƒ 파일
β”‚   β”‚   └── page.tsx                # 메인 νŽ˜μ΄μ§€
β”‚   β”‚   
β”‚   β”œβ”€β”€ public/                     # 정적 파일
β”‚   β”‚   β”œβ”€β”€ oauth/                  # OAuth κ΄€λ ¨ 이미지
β”‚   β”‚   β”œβ”€β”€ share/                  # 곡유 κ΄€λ ¨ 이미지
β”‚   β”‚   β”œβ”€β”€ file.svg
β”‚   β”‚   β”œβ”€β”€ globe.svg
β”‚   β”‚   β”œβ”€β”€ next.svg
β”‚   β”‚   β”œβ”€β”€ santa.png
β”‚   β”‚   β”œβ”€β”€ vercel.svg
β”‚   β”‚   └── window.svg
β”‚   β”‚   
β”‚   β”œβ”€β”€ Dockerfile                  # Docker μ„€μ • 파일
β”‚   β”œβ”€β”€ README.md                   # ν”„λ‘ νŠΈμ—”λ“œ μ„€λͺ… λ¬Έμ„œ
β”‚   β”œβ”€β”€ env.json                    # ν™˜κ²½ λ³€μˆ˜ JSON 파일
β”‚   β”œβ”€β”€ next-env.d.ts               # Next.js νƒ€μž… μ„ μ–Έ
β”‚   β”œβ”€β”€ next.config.ts              # Next.js μ„€μ • 파일
β”‚   β”œβ”€β”€ package-lock.json           # npm 잠금 파일
β”‚   β”œβ”€β”€ package.json                # npm νŒ¨ν‚€μ§€ 파일
β”‚   β”œβ”€β”€ postcss.config.mjs          # PostCSS μ„€μ • 파일
β”‚   β”œβ”€β”€ tailwind.config.ts          # TailwindCSS μ„€μ • 파일
β”‚   └── tsconfig.json               # TypeScript μ„€μ • 파일
β”‚
β”œβ”€β”€ .env                            # ν™˜κ²½ λ³€μˆ˜ μ„€μ • 파일
β”œβ”€β”€ requirements.txt                # Python μ˜μ‘΄μ„± νŒ¨ν‚€μ§€ λͺ©λ‘
β”œβ”€β”€ README.md                       # ν”„λ‘œμ νŠΈ μ„€λͺ… λ¬Έμ„œ
β”œβ”€β”€ docker-compose.yml              # Docker Compose μ„€μ • 파일
└── .gitignore                      # Git λ¬΄μ‹œ 파일

Team Member Info

이름 νŒ€ μ—­ν• 
λ₯˜μ§€ν˜„ DE νŒ€μž₯/backend/frontend
κΉ€μ†Œμœ€ DS modeling
κΉ€μ˜ˆμ°¬ DE backend
λ°©μ€€ν˜• DE frontend
λ°•μ€€ν˜• DE backend/λͺ¨λΈ μΆ”λ‘  및 배포
μ΄μŠΉμ€€ DS modeling
ν•œμ˜ˆμ§€ DA modeling

About

Create a warm year-end with SantaTellMe. Express your heart with voice and words!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published