Skip to content

dlsqja/todak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ν† λ‹₯

반렀인의 병원 λ°©λ¬Έ λ²ˆκ±°λ‘œμ›€μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ°˜λ €λ™λ¬Ό λΉ„λŒ€λ©΄ μ§„λ£Œ μ„œλΉ„μŠ€

alt text

πŸ“œ λͺ©μ°¨

πŸ“μ„œλΉ„μŠ€ κ°œμš”

병원 방문이 μ–΄λ €μš΄ λ°”μœ λ°˜λ €μΈλ“€μ„ μœ„ν•œ λ°˜λ €λ™λ¬Ό λΉ„λŒ€λ©΄ 의료 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

페λ₯΄μ†Œλ‚˜

ꡬ름이λ₯Ό ν‚€μš°λŠ” 반렀인 '이반렀'

  • 문제점 :
    • μ•½λ¬Ό νˆ¬μ—¬μ‹œκΈ° 결정을 μœ„ν•΄ λ³‘μ›μ—μ„œ 주기적인 κ΄€μ°° μ§„λ£Œκ°€ ν•„μš”
    • 병원에 λŒ€ν•œ μŠ€νŠΈλ ˆμŠ€κ°€ λ†’μŒ
  • ν•„μš”ν•œ 점 :
    • 병원에 λ°©λ¬Έν•˜μ§€ μ•Šκ³  κ΄€μ°° μ§„λ£Œ ν•„μš”
    • μ‹œκ°„, 곡간에 μ œμ•½ 없이 μ§„λ£Œ ν•„μš”

βš‘μ£Όμš” κΈ°λŠ₯

ν† λ‹₯은 반렀인, μˆ˜μ˜μ‚¬ , 병원 κ΄€κ³„μž 3κ°€μ§€μ˜ μ‚¬μš©μž μœ ν˜•μ΄ 쑴재

반렀인 ν™ˆ μˆ˜μ˜μ‚¬ ν™ˆ λ³‘μ›κ΄€κ³„μž ν™ˆ

1. 반렀인

λ°˜λ €λ™λ¬Ό 관리

  • ν”„λ‘œν•„ 등둝 : λ°˜λ €λ™λ¬Όμ˜ 정보λ₯Ό ν”„λ‘œν•„ ν˜•νƒœλ‘œ λ“±λ‘ν•˜μ—¬ 정보 μ—΄λžŒ 및 관리
μ˜ˆμ•½ μ‹ μ²­1 μ˜ˆμ•½ μ‹ μ²­2 μ˜ˆμ•½ μ‹ μ²­3

μ§„λ£Œ λ‚΄μ—­ 쑰회

  • μ˜ˆμ•½ μš”μ•½ 제곡 : μž‘μ„±ν–ˆλ˜ μ§„λ£Œ μ‹ μ²­μ„œ λ‚΄μš©μ„ μš”μ•½ν•΄ μ–΄λ–€ μ§„λ£Œ 내역인지 ν•œλˆˆμ— 확인 κ°€λŠ₯
  • AI μš”μ•½ μ§„λ‹¨μ„œ : μˆ˜μ˜μ‚¬μ˜ 검증을 거친 AI μš”μ•½ μ§„λ‹¨μ„œ 보관

μ˜ˆμ•½ μ‹œκ°„ μ„€μ • 1

μ˜ˆμ•½ μ‹ μ²­

  • μ‹ μ²­μ„œ μž‘μ„± : μ›ν•˜λŠ” 병원과 μˆ˜μ˜μ‚¬λ₯Ό 검색 ν›„ μ„ νƒν•˜κ³ , 증상 μž…λ ₯
  • μžλ™ 결제 μˆ˜λ‹¨ 선택 : 카카였페이 결제λ₯Ό 톡해 μ˜ˆμ•½μ„ ν™•μ •ν•˜κ³  승인 λŒ€κΈ° μƒνƒœλ‘œ μ „ν™˜
μ˜ˆμ•½ μ‹ μ²­1 μ˜ˆμ•½ μ‹ μ²­2 μ˜ˆμ•½ μ‹ μ²­3

2. μˆ˜μ˜μ‚¬

λΉ„λŒ€λ©΄ μ§„λ£Œ

  • μ‹€μ‹œκ°„ 1:1μ§„λ£Œ : Kurento 기반 WebRTC κΈ°μˆ μ„ ν™œμš©ν•˜μ—¬ 원격 화상 μ§„λ£Œ 지원
λΉ„λŒ€λ©΄μ§„λ£Œ1 λΉ„λŒ€λ©΄μ§„λ£Œ2

μ§„λ‹¨μ„œ κ²€ν† 

  • STT β†’ text λ³€ν™˜ : Whisper-1을 μ΄μš©ν•΄ λΉ„λŒ€λ©΄ μ§„λ£Œ 쀑 μŒμ„±μ„ ν…μŠ€νŠΈ 파일둜 λ³€ν™˜
  • AI text μš”μ•½ : 의료 μš©μ–΄κ°€ λ§Žμ€ ν…μŠ€νŠΈλ₯Ό ChatGPT 4.1을 톡해 핡심 λ‚΄μš© μš”μ•½
  • μˆ˜μ˜μ‚¬ 검증 : μˆ˜μ˜μ‚¬μ˜ κ²€ν†  절차λ₯Ό 톡해 μˆ˜μ •, 승인

μˆ˜μ˜μ‚¬μ§„λ£Œμƒμ„Έ

3. 병원 κ΄€κ³„μž

μ§„λ£Œ 일정 관리

  • μ˜ˆμ•½ μ‹œκ°„ μ„€μ • : λ²„νŠΌ 토클 λ°©μ‹μœΌλ‘œ μ§„λ£Œ κ°€λŠ₯/λΆˆκ°€ μ‹œκ°„ μ„€μ •
μ˜ˆμ•½ μ‹œκ°„ μ„€μ • 1 μ˜ˆμ•½ μ‹œκ°„ μ„€μ • 2

μ˜ˆμ•½ 관리

  • μ‹ μ²­ λͺ©λ‘ 확인 : 전체 μ˜ˆμ•½ 내역을 μ‘°νšŒν•˜κ³ , λ‚΄μš©μ„ κ²€ν† ν•œ λ’€ 승인 λ˜λŠ” 반렀 처리 κ°€λŠ₯
μ˜ˆμ•½ 승인 μ˜ˆμ•½ 반렀

결제 관리

  • μˆ˜λ‚© : μ§„λ£Œ μ’…λ£Œ ν›„ 결제 κΈˆμ•‘ μž…λ ₯ β†’ μžλ™ 결제 μš”μ²­

μ˜ˆμ•½ μ‹œκ°„ μ„€μ • 1

πŸ› κΈ°μˆ  μŠ€νƒ

Frontend

  • Language: TypeScript
  • Framework: React 19
  • UI/μŠ€νƒ€μΌλ§: TailwindCSS
  • μƒνƒœ 관리: Zustand
  • λΌμš°νŒ…: React Router Dom
  • 개발 도ꡬ: Vit

Backend

  • Language: Java 17
  • Framework: Spring Boot 3.3.3
  • Database: MySQL, Redis, Elasticsearch
  • ORM: Spring Data JPA
  • 인증/λ³΄μ•ˆ: JWT (jjwt), Spring Security
  • λ©”μ‹œμ§• μ„œλΉ„μŠ€: RabbitMQ
  • API λ¬Έμ„œν™”: Swagger
  • μ›Ήμ†ŒμΌ“: Spring WebSocket
  • 개발 도ꡬ: Lombok, Devtools
  • AI : GMS

Infra

  • Containerization: Docker
  • CI/CD: Jenkins
  • Cloud: AWS ,S3 Bucket

πŸ“μ•„ν‚€ν…μ²˜ ꡬ성

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

alt text

ERD

alt text

πŸ“‚ν΄λ” ꡬ쑰

  • Frontend
TODAK/
β”‚
β”œβ”€β”€ frontend/                               # React + Vite + TypeScript 기반 ν”„λ‘ νŠΈμ—”λ“œ
β”‚   β”œβ”€β”€ public/                             # 정적 λ¦¬μ†ŒμŠ€ (이미지, μ•„μ΄μ½˜ λ“±)
β”‚   β”œβ”€β”€ src/                                # μ£Όμš” ν”„λ‘ νŠΈμ—”λ“œ μ†ŒμŠ€μ½”λ“œ
β”‚   β”‚   β”œβ”€β”€ assets/                         # 이미지/폰트 λ“± 정적 μžμ›
β”‚   β”‚   β”œβ”€β”€ component/                      # 곡톡 UI μ»΄ν¬λ„ŒνŠΈ (Atomic Design)
β”‚   β”‚   β”‚   β”œβ”€β”€ button/                     # λ²„νŠΌ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ card/                       # μΉ΄λ“œν˜• UI (μ§„λ£Œ/μ˜ˆμ•½ λ“±)
β”‚   β”‚   β”‚   β”œβ”€β”€ header/                     # 상단 헀더 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ icon/                       # SVG/PNG 기반 μ•„μ΄μ½˜ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ input/                      # μž…λ ₯ κ΄€λ ¨ UI (검색, 파일 μ—…λ‘œλ“œ λ“±)
β”‚   β”‚   β”‚   β”œβ”€β”€ menubar/                    # 역할별 ν•˜λ‹¨ 메뉴바 (Owner, Staff, Vet)
β”‚   β”‚   β”‚   β”œβ”€β”€ navbar/                     # νƒ­ λ„€λΉ„κ²Œμ΄μ…˜ UI
β”‚   β”‚   β”‚   β”œβ”€β”€ pages/                      # νŽ˜μ΄μ§€ λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ auth/                   # 인증/νšŒμ›κ°€μž…/둜그인 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Owner/                  # 반렀인(μ‚¬μš©μž) κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Staff/                  # 병원 직원 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”‚   └── Vet/                    # μˆ˜μ˜μ‚¬ κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”‚   β”œβ”€β”€ selection/                  # λ“œλ‘­λ‹€μš΄, μ‹œκ°„ 선택 λ“± 선택 UI
β”‚   β”‚   β”‚   β”œβ”€β”€ state/                      # μƒνƒœ 뱃지 λ“± μ‹œκ°ν™” μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ table/                      # ν‘œ/μ‹œκ°„ν‘œ UI
β”‚   β”‚   β”‚   β”œβ”€β”€ template/                   # λͺ¨λ‹¬, μš”μ•½ λ“± ν…œν”Œλ¦Ών˜• UI
β”‚   β”‚   β”‚   └── text/                       # ν…μŠ€νŠΈ/컨텐츠 좜λ ₯용 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ fonts/                          # 폰트 파일
β”‚   β”‚   β”œβ”€β”€ layouts/                        # νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒ (λͺ¨λ°”일, 메인 λ“±)
β”‚   β”‚   β”œβ”€β”€ plugins/                        # μ™ΈλΆ€ ν”ŒλŸ¬κ·ΈμΈ μ„€μ • (axios λ“±)
β”‚   β”‚   β”œβ”€β”€ router/                         # React Router 경둜 관리
β”‚   β”‚   β”œβ”€β”€ RTC/                            # WebRTC μ—°κ²° 둜직
β”‚   β”‚   β”œβ”€β”€ services/                       # API 호좜 μ„œλΉ„μŠ€
β”‚   β”‚   β”œβ”€β”€ store/                          # Zustand μ „μ—­ μƒνƒœ 관리
β”‚   β”‚   β”œβ”€β”€ styles/                         # CSS/Tailwind μŠ€νƒ€μΌ μ •μ˜
β”‚   β”‚   β”œβ”€β”€ types/                          # TypeScript νƒ€μž… μ •μ˜
β”‚   β”‚   └── utils/                          # μœ ν‹Έ ν•¨μˆ˜ λͺ¨μŒ
β”‚   β”œβ”€β”€ μ„€μ • νŒŒμΌλ“€                          # (Dockerfile, ESLint, Vite, TSConfig λ“±)
β”‚
β”œβ”€β”€ backend/                                # Spring Boot 기반 λ°±μ—”λ“œ
β”‚   β”œβ”€β”€ gradle/                             # Gradle Wrapper μ„€μ •
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/com/A409/backend/      # λ°±μ—”λ“œ Java μ½”λ“œ
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BackendApplication.java # Spring Boot μ‹€ν–‰ 메인
β”‚   β”‚   β”‚   β”‚   └── domain/                 # 도메인 계측
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ home/               # ν™ˆ/κΈ°λ³Έ 컨트둀러
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ hospital/           # 병원 (μ—”ν‹°ν‹°, λ ˆν¬μ§€ν† λ¦¬, μ„œλΉ„μŠ€)
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ pay/                # 결제 (카카였페이 연동)
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ pet/                # λ°˜λ €λ™λ¬Ό 관리
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ reservation/        # μ˜ˆμ•½ 관리
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ treatment/          # μ§„λ£Œ 관리
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ user/               # μ‚¬μš©μž (auth/owner/staff/vet)
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ websocket/          # WebSocket + Kurento μ‹œκ·Έλ„λ§
β”‚   β”‚   β”‚   β”‚       └── global/             # 곡톡 μ„€μ •/μœ ν‹Έ (AI, λ³΄μ•ˆ, μ˜ˆμ™Έ, Redis λ“±)
β”‚   β”‚   β”‚   └── resources/                  # μ„€μ • 파일 (application.properties λ“±)
β”‚   β”‚   └── test/                           # ν…ŒμŠ€νŠΈ μ½”λ“œ
β”‚   β”œβ”€β”€ λΉŒλ“œ/배포 μ„€μ •                       # (Gradle, Dockerfile, Jenkinsfile λ“±)
β”‚
β”œβ”€β”€ images/                                 # ν”„λ‘œμ νŠΈ κ΄€λ ¨ 이미지 및 μ‹œμ—° GIF
β”‚   β”œβ”€β”€ ERD.png                             # λ°μ΄ν„°λ² μ΄μŠ€ ERD
β”‚   β”œβ”€β”€ mainpage.png                        # 메인 νŽ˜μ΄μ§€ ν™”λ©΄
β”‚   β”œβ”€β”€ μ‹œμŠ€ν…œ_μ•„ν‚€ν…μ²˜.png                  # 전체 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨
β”‚   β”œβ”€β”€ λͺ©μ—….png                             # UI λͺ©μ—… 이미지
β”‚   └── ...                                 # μ‹œμ—° GIF, ν™”λ©΄ 캑처 λ“±
β”‚
β”œβ”€β”€ package.json                            # 루트 ν”„λ‘œμ νŠΈ μ„€μ • (μ›Œν¬μŠ€νŽ˜μ΄μŠ€)
└── README.md                               # 전체 ν”„λ‘œμ νŠΈ λ¬Έμ„œ

πŸ‘₯νŒ€μ› μ†Œκ°œ

μ΄λŒ€μ—° κΉ€μœ μ„± 솑인범 μ•ˆμ„±μˆ˜ μ „μœ€μ§€ ν•œμ§„κ²½
FE, νŒ€μž₯ BE BE BE FE FE

About

ssafy common project todak

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages