AI 철학 상담 앱은 역사적 철학자들의 사상과 상담 기법을 AI로 구현한 혁신적인 상담 서비스입니다. OpenRouter API를 통해 각 철학자의 고유한 상담 스타일을 재현하며, 5단계 상담 프로세스를 통해 체계적인 심리 상담을 제공합니다.
- 🤖 30+ AI 철학자/상담사 - 소크라테스부터 현대 심리학자까지
- 🔄 5단계 상담 프로세스 - AI가 자율적으로 상담 단계 전환
- 🔐 OAuth 2.0 인증 - Google, Kakao, Naver 소셜 로그인
- 📱 RESTful API - 모바일 앱 연동 준비 완료
- ✅ 100% 테스트 커버리지 - 103개 테스트 케이스 통과
- JDK 21+
- Gradle 8.5+
- PostgreSQL 14+ (Production)
- Clone the repository
git clone https://github.com/Mrbaeksang/ai-counseling-app.git
cd ai-counseling-app- Set environment variables
# .env 파일 생성
OPENROUTER_API_KEY=your_api_key_here
JWT_SECRET=your_jwt_secret_here
DB_URL=jdbc:postgresql://localhost:5432/aicounseling
DB_USERNAME=your_username
DB_PASSWORD=your_password- Run the application
./gradlew bootRun- Access Swagger UI
http://localhost:8080/swagger-ui.html
|
Backend
|
Infrastructure
|
src/main/kotlin/com/aicounseling/app/
├── 📁 domain/ # 비즈니스 도메인
│ ├── 👤 user/ # 사용자 관리
│ │ ├── entity/
│ │ ├── service/
│ │ ├── repository/
│ │ └── controller/
│ ├── 🧑🏫 counselor/ # 상담사 관리
│ │ ├── entity/
│ │ ├── service/
│ │ ├── repository/
│ │ └── controller/
│ └── 💬 session/ # 상담 세션
│ ├── entity/
│ ├── service/
│ ├── repository/
│ └── controller/
└── 🌐 global/ # 공통 관심사
├── auth/ # OAuth 인증
├── config/ # Spring 설정
├── security/ # JWT 보안
├── openrouter/ # AI API 통합
└── exception/ # 전역 예외 처리
| Document | Description |
|---|---|
| 📘 API Specification | OpenAPI 3.0 스펙 문서 |
| 🏛️ System Architecture | 시스템 아키텍처 설계 |
| 📊 ERD Diagram | 데이터베이스 설계 |
| 📋 Requirements (SRS) | 소프트웨어 요구사항 명세 |
| 🎭 Use Case Diagram | 유스케이스 다이어그램 |
- OAuth 2.0 소셜 로그인 (Google, Kakao, Naver)
- JWT 토큰 기반 인증 (Access + Refresh Token)
- 사용자 프로필 관리
- 회원 탈퇴
- 30+ AI 철학자/상담사 구현
- 5단계 자동 상담 프로세스
ENGAGEMENT- 관계 형성EXPLORATION- 문제 탐색INSIGHT- 통찰 유도ACTION- 행동 계획CLOSING- 마무리
- 실시간 AI 응답 생성
- 대화 히스토리 관리
- 세션 생성/종료
- 세션 북마크
- 세션 제목 자동 생성 및 수정
- 세션별 평가 시스템 (1-10점)
- 상담사 목록 조회
- 상담사 상세 정보
- 즐겨찾기 관리
- 상담사별 통계
- Android 앱 개발
- 세션 요약 기능
- 대화 내용 검색
- 상담 통계 대시보드
# Run all tests
./gradlew test
# Run specific test
./gradlew test --tests "*.UserServiceTest"
# Generate test report
./gradlew jacocoTestReport| Category | Count | Status |
|---|---|---|
| Total Tests | 103 | ✅ All Passed |
| Unit Tests | 78 | ✅ Passed |
| Integration Tests | 25 | ✅ Passed |
| Test Coverage | 100% | 🎯 Complete |
POST /api/auth/login/google # Google OAuth 로그인
POST /api/auth/login/kakao # Kakao OAuth 로그인
POST /api/auth/login/naver # Naver OAuth 로그인
POST /api/auth/refresh # 토큰 갱신GET /api/users/me # 내 정보 조회
PATCH /api/users/nickname # 닉네임 변경
DELETE /api/users/me # 회원 탈퇴GET /api/counselors # 상담사 목록
GET /api/counselors/{id} # 상담사 상세
GET /api/counselors/favorites # 즐겨찾기 목록
POST /api/counselors/{id}/favorite # 즐겨찾기 추가
DELETE /api/counselors/{id}/favorite # 즐겨찾기 제거GET /api/sessions # 세션 목록
POST /api/sessions # 새 세션 시작
POST /api/sessions/{id}/messages # 메시지 전송
GET /api/sessions/{id}/messages # 메시지 조회
POST /api/sessions/{id}/close # 세션 종료
POST /api/sessions/{id}/rating # 세션 평가
POST /api/sessions/{id}/bookmark # 북마크 토글
PATCH /api/sessions/{id}/title # 제목 변경./gradlew bootRun --args='--spring.profiles.active=dev'docker build -t ai-counseling-app .
docker run -p 8080:8080 --env-file .env ai-counseling-app기여는 언제나 환영합니다! 다음 절차를 따라주세요:
- Fork the Project
- Create your Feature Branch (
git checkout -b feat/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feat/AmazingFeature) - Open a Pull Request
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정
refactor: 코드 리팩토링
test: 테스트 추가
style: 코드 포맷팅
Private Repository - 상업적 사용 금지