UniBooks는 사용자의 전공 분야, 관심 기술, 학습 난이도를 분석하여 ChatGPT API를 통해 맞춤형 도서를 추천해주는 Flutter 앱입니다.
- 📚 전공 분야별 맞춤 도서 추천
- 🔍 관심 기술에 따른 개인화된 추천
- 📊 학습 난이도 설정 (초급/중급/고급)
- 🤖 ChatGPT API를 활용한 AI 기반 추천
- 📱 직관적이고 현대적인 UI/UX
- OpenAI 웹사이트에서 계정을 생성하고 API 키를 발급받습니다.
- 프로젝트 루트 디렉토리의
.env파일을 열어 다음과 같이 설정합니다:
OPENAI_API_KEY=your_actual_api_key_here
중요: .env 파일에는 실제 API 키를 입력해야 하며, 이 파일은 절대 Git에 커밋하지 마세요.
flutter pub get flutter packages pub run build_runner build
flutter run
현재 앱은 테스트를 위해 Mock 데이터를 사용하고 있습니다. 실제 ChatGPT API를 사용하려면:
.env파일에 유효한 OpenAI API 키를 설정합니다.lib/screens/home_screen.dart파일의_getRecommendations()메서드에서 다음 부분을 변경합니다:
// 현재 (Mock 데이터 사용): final recommendations = await MockBookService.getMockRecommendations( major: _majorController.text, interests: _interestsController.text, difficulty: _selectedDifficulty, ); // 실제 API 사용으로 변경: final recommendations = await ChatGPTService.getBookRecommendations( major: _majorController.text, interests: _interestsController.text, difficulty: _selectedDifficulty, );
lib/
├── main.dart # 앱 진입점
├── models/
│ └── book_recommendation.dart # 도서 추천 데이터 모델
├── services/
│ └── chatgpt_service.dart # ChatGPT API 서비스
└── screens/
└── home_screen.dart # 메인 화면
http: HTTP 요청을 위한 패키지flutter_riverpod: 상태 관리 패키지json_annotation: JSON 직렬화를 위한 어노테이션json_serializable: JSON 직렬화 코드 자동 생성build_runner: 코드 생성 도구dartz: 함수형 프로그래밍 지원
- 백엔드 서버가 실행되어 있어야 앱이 정상적으로 작동합니다.
- 개발 중에는 적절한 테스트 데이터를 사용하는 것을 권장합니다.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 MIT 라이센스 하에 있습니다.