Create a warm year-end with SantaTellMe. Express your heart with voice and words!
λ°λ»ν μ°λ§μ μν ν¬λ¦¬μ€λ§μ€ κ²λ¦΄λΌ μλΉμ€! κΈ°μ‘΄ νΈλ¦¬κΎΈλ―ΈκΈ°λ₯Ό λ°μ μμΌ, μ΅λͺ μ μ°ν λͺ©μλ¦¬λ‘ λ§μμ μ νκ³ λ§ν보λ μ°νΈν¨.
- λ°°ν¬μ¬μ΄νΈ: https://www.santa-tell-me.com/
- docker, docker compose
- pipenv
- python 3.10
- .env file
- ./SantaTellMe/.env νμΌμ λ Έμ νμ΄μ§μμ 볡μ¬νκΈ°. μΉ΄μΉ΄μ€ λ‘κ·ΈμΈ κ΄λ ¨ μ€λ₯λ .env νμΌμ λ΄μ©μ΄ νμ λ Έμ νμ΄μ§μ .envμ μΌμΉνμ§ μμμ μΌ μ μμ
- santa-db(mysql container) λμΈμ ./SantaTellMe/backend/data μ μμΉν .sql νμΌλ€ μ€νλ¨. table μμ± λ° ν μ€νΈ λ°μ΄ν° μΆκ°.
# μ€ν μμΉ: ./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 -h 127.0.0.1 --port 3306 --user=test_user --password=pass test_db
- μ λͺ λ Ήμ΄ μ λ ₯νλ©΄ mysql clientλ‘ mysql container μ μ
- mysql clientκ° κΉλ €μμ΄μΌ νλ€
# μ€νμμΉ: ./SantaTellMe
# μ°Έκ³ : κΆν λ¬Έμ μμΌλ©΄ chmod u+x test-server.sh ν΄λ³΄κΈ°
# 컀맨λ: ./test-server.sh
# (ex)
./test-server.sh
3 passed, 1 warning in 0.87s
μ€κ°μ μ΄λ κ² λ¨λ©΄ μ±κ³΅
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 무μ νμΌ
μ΄λ¦ | ν | μν |
---|---|---|
λ₯μ§ν | DE | νμ₯/backend/frontend |
κΉμμ€ | DS | modeling |
κΉμμ°¬ | DE | backend |
λ°©μ€ν | DE | frontend |
λ°μ€ν | DE | backend/λͺ¨λΈ μΆλ‘ λ° λ°°ν¬ |
μ΄μΉμ€ | DS | modeling |
νμμ§ | DA | modeling |