watsonx.ai κΈ°λ° λνμ λ§μΆ€ν AI νμ μ€μΌμ€ λμ°λ―Έ
λνμμ΄ μμ°μ΄λ‘ μ λ ₯ν ν μΌ(κ³Όμ , μν, νν, λμΈνλ λ±)μ AIκ° μλμΌλ‘ λΆμΒ·λΆλ₯νκ³ , μ€μλμ λ§κ°κΈ°νμ κ³ λ €ν΄ μ°μ μμλ₯Ό μΆμ²νλ μ€λ§νΈ νμ΅ λμ°λ―Έμ λλ€.
- μμ°μ΄ μΌμ μΆκ°: "λ€μ μ£Ό μμμΌκΉμ§ μλ£κ΅¬μ‘° κ³Όμ " β AIκ° μλ νμ±νμ¬ μΌμ λ±λ‘
- λ€μ€ μΌμ μ²λ¦¬: μ¬λ¬ μΌμ μ ν λ²μ μΈμνκ³ κ°λ³ νμΈ/μ·¨μ κ°λ₯
- μλ¦Ό μμ½: "νμ 10λΆ μ μ μλ¦Ό μμ½ν΄μ€" β μΌμ μ ν ν νΈμ μλ¦Ό μλ μμ½
- μ°μ μμ μΆμ²: "μ°μ μμ λμ μΌμ μΆμ²ν΄μ€" β μ€μ μΌμ λͺ©λ‘ νμ
- μΌμ κ²μ/μ‘°ν: "μ΄λ² μ£Ό μΌμ μλ €μ€", "μ€λ ν μΌ λμΌ?"
- μκ°ν μΈμ: "μκ°ν μ¬μ§μ μλ κ°μ μΆκ°ν΄μ€" β λν μκ°ν μ΄λ―Έμ§μμ κ°μ μλ μΆμΆ
- μν/κ³Όμ μΌμ ν μλ μΆμΆ: μ΄λ―Έμ§μμ μΌμ μ μΈμνμ¬ μλ λ±λ‘
- 곡λͺ¨μ ν¬μ€ν° λΆμ: λν μΌμ , λ§κ°κΈ°ν, μΈλΆ μΌμ (Sub-task) μλ μμ±
- μκ° μΊλ¦°λ: μ 체 μΌμ νλμ νμΈ, λ μ§λ³ μΌμ νμ
- μ£Όκ° μκ°ν: κ°μ μκ°ν κ΄λ¦¬, λλκ·Έ μ€ λλ‘μΌλ‘ μκ° μμ
- Google Calendar μ°λ: μΈλΆ μΊλ¦°λμ λκΈ°ν (μ€μ μμ μ°κ²°)
- λ°±μλ μλ¦Ό API: μλ¦Ό μμ½, μ‘°ν, νμΈ μ²λ¦¬ (1λΆ ν΄λ§)
- λΈλΌμ°μ νΈμ μλ¦Ό: Web Notification API νμ©
- λ§κ° μλ° μλ¦Ό: D-day κΈ°λ° μλ 리λ§μΈλ
- AI λ°μΌλ¦¬ λΈλ¦¬ν: λ§€μΌ μ€μ λ μκ°μ μ€λ μΌμ μμ½ μλ¦Ό
- ν μ€ μ€νμΌ μλ¦Ό νμ΄μ§: κΉλν μλ¦Ό λͺ©λ‘ UI
- AI κΈ°λ° μ°μ μμ μΆμ²: λ§κ°κΈ°ν, μμ μκ°, μ€μλ λΆμ
- μΉ΄ν κ³ λ¦¬ λΆλ₯: μμ , κ³Όμ , μν, νν, λμΈνλ μλ λΆλ₯
- Sub-task κ΄λ¦¬: ν° μΌμ μ μΈλΆ μμ μΌλ‘ λΆν
- React 18.2: UI λΌμ΄λΈλ¬λ¦¬
- Vite 5.0: λΉλ λꡬ λ° κ°λ° μλ²
- Axios: HTTP ν΄λΌμ΄μΈνΈ
- React Router: ν΄λΌμ΄μΈνΈ λΌμ°ν
- Web Notification API: λΈλΌμ°μ νΈμ μλ¦Ό
- FastAPI: Python μΉ νλ μμν¬
- MySQL 8.0: κ΄κ³ν λ°μ΄ν°λ² μ΄μ€
- Alembic: λ°μ΄ν°λ² μ΄μ€ λ§μ΄κ·Έλ μ΄μ
- SQLAlchemy: ORM
- Pydantic: λ°μ΄ν° κ²μ¦
- IBM watsonx.ai: Llama 3.3 70B λͺ¨λΈ (μμ°μ΄ μ²λ¦¬, μΌμ λΆμ)
- IBM Cloud: ν΄λΌμ°λ μΈνλΌ
- Google Calendar API: μΊλ¦°λ μ°λ
- Docker & Docker Compose: 컨ν μ΄λν (frontend, backend, db)
- GitHub: λ²μ κ΄λ¦¬
| μ΄λ¦ | λ΄λΉ μμ | μ£Όμ κΈ°μ¬ |
|---|---|---|
| μλ―Όμ£Ό | Project Manager & Frontend Developer | νλ‘ νΈμλ μ 체 κΈ°λ₯ ꡬν(μΌμ /ν μΌ, μΊλ¦°λ, μκ°ν, AI μ±λ΄, μλ¦Ό, μ€μ ), UX/UI λμμΈ, νμλ‘Β·μΌμ κ΄λ¦¬, λ°νμλ£ μ μ |
| μ²μ§μ° | Prompt Engineer & Domain Expert | λ°ν μ§ν |
| κΉνμ | Frontend Developer | UX/UI λμμΈ |
| μ‘°νμ | Backend Developer & AI Engineer | AI μ 체 κΈ°λ₯ ꡬν(μ΄λ―Έμ§ λΆμ, AI Assistant μ±ν , μμ°μ΄ μ λ ₯ λΆμ), sub-task μμ± κΈ°λ₯ ꡬν, ν둬ννΈ μ€κ³ |
| κΉμ§μ | Backend Developer & AI Engineer | DBΒ·API μ€κ³, μΌμ Β·ν μΌ κΈ°λ₯ ꡬν |
# νλ‘μ νΈ ν΄λ‘
git clone https://github.com/ibm-ai-hackathon/five-today-schedule.git
cd five-today-schedule
# .env νμΌ μ€μ (μλ νκ²½ λ³μ μ°Έκ³ )
# Docker Composeλ‘ μ€ν
docker-compose up -d --build
# μ μ
# Frontend: http://localhost:5173
# Backend API: http://localhost:8000
# API λ¬Έμ: http://localhost:8000/docs# Database
DATABASE_URL=mysql+pymysql://root:1869@db:3306/five_today_schedule
MYSQL_ROOT_PASSWORD=1869
MYSQL_DATABASE=five_today_schedule
# IBM watsonx.ai
WATSONX_API_KEY=your_api_key
WATSONX_URL=https://us-south.ml.cloud.ibm.com/
WATSONX_PROJECT_ID=your_project_id
WATSONX_MODEL_ID=meta-llama/llama-3-3-70b-instruct
# Frontend
VITE_API_BASE_URL=http://localhost:8000/apicd frontend
npm install
npm run dev
# http://localhost:5173 μμ νμΈcd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
# http://localhost:8000 μμ νμΈfive-today-schedule/
βββ frontend/ # React νλ‘ νΈμλ
β βββ src/
β β βββ components/ # μ¬μ¬μ© μ»΄ν¬λνΈ
β β βββ pages/ # νμ΄μ§ μ»΄ν¬λνΈ
β β βββ hooks/ # 컀μ€ν
ν
β β βββ services/ # API μλΉμ€
β β βββ utils/ # μ νΈλ¦¬ν° ν¨μ
β βββ ...
βββ backend/ # FastAPI λ°±μλ
β βββ app/
β β βββ api/ # API λΌμ°ν°
β β βββ models/ # λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈ
β β βββ schemas/ # Pydantic μ€ν€λ§
β β βββ db/ # λ°μ΄ν°λ² μ΄μ€ μ€μ
β βββ ...
βββ docs/ # λ¬Έμ
βββ docker-compose.yml # Docker μ€μ
| νμ | μ€λͺ |
|---|---|
feat |
μλ‘μ΄ κΈ°λ₯ μΆκ° |
fix |
λ²κ·Έ μμ |
docs |
λ¬Έμ μμ |
style |
μ½λ ν¬λ§·ν |
refactor |
μ½λ 리ν©ν λ§ |
test |
ν μ€νΈ μ½λ |
chore |
λΉλ, ν¨ν€μ§ μ€μ |
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€λ₯Ό λ°λ¦ λλ€.