Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

107 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📱 Calculator

Calculator는 단순한 계산기처럼 보이지만, 비밀번호(기본: 1111)를 입력하면 AI 연애 코칭 & 유틸리티 앱으로 변신하는 시크릿 앱입니다. 연인과의 관계 회복, 데이트 가이드, 추억 기록 등 다양한 기능을 제공합니다.


✨ 주요 기능 (Key Features)

1. 🧮 위장용 계산기 (Fake Calculator)

  • 평소에는 완벽하게 작동하는 iOS 스타일 계산기입니다.
  • 특정 비밀번호(1111) 입력 시 unlock 애니메이션과 함께 메인 앱으로 진입합니다.

2. 🧠 연락 언락 (Crisis Management - AI Coach)

  • 상담소: 연애 고민을 입력하면 AI(Kim/Ahn 페르소나)가 해결책을 제시합니다.
  • 답변소 (answer-guide):
    • 상황과 내 입장을 입력하면, 상대방의 MBTI에 최적화된 화해/답장 메시지를 생성해줍니다.
    • 특징: 무조건 져주는 것이 아니라, 다정함을 유지하되 내 억울함과 감정을 예쁘게 녹여내는 화법을 구사합니다.

3. 📸 여친 렌즈 (Life-shot Lens)

  • 고스트 오버레이: 저장해둔 인생샷을 투명하게 띄워, 같은 구도로 사진을 찍을 수 있게 도와줍니다.
  • 수평계: 자이로스코프를 이용해 완벽한 수평을 맞출 수 있습니다.
  • 예시 사진: 기본 제공되는 포즈 가이드로 초보자도 쉽게 인생샷을 건질 수 있습니다.

4. 📝 까먹지마 (Don't Forget Note)

  • 연인의 사소한 취향(좋아하는 것, 싫어하는 것)을 기록하는 비밀 노트입니다.
  • CRUD 기능: 노트 생성, 조회, 삭제가 가능하며 AWS DynamoDB에 안전하게 저장됩니다.

5. 🎁 선물 추천 (Gift Guide)

  • 기념일과 가격대를 입력하면 AI가 센스 있는 선물을 추천해줍니다.

🏗 시스템 아키텍처 (Architecture)

graph TD
    User([User]) --> |App Interaction| Client["Frontend (React Native)"]
    
    subgraph AWS Cloud
        Client --> |API Request| APIG[API Gateway]
        
        APIG --> |/crisis| L_Crisis[Crisis Handler]
        APIG --> |/answer-guide| L_Answer[Answer Guide Handler]
        APIG --> |/gift| L_Gift[Gift Handler]
        APIG --> |/notes| L_Note[Note Handler]
        
        L_Crisis --> |Auth| Cognito[Cognito]
        L_Crisis & L_Answer & L_Gift --> |Prompt| OpenAI[OpenAI API]
        L_Gift & L_Note --> |CRUD| DB[(DynamoDB)]
    end
    
    style Client fill:#EA6EB2,stroke:#333,stroke-width:2px,color:white
    style APIG fill:#FF9900,stroke:#333,stroke-width:2px,color:white
    style OpenAI fill:#00A67E,stroke:#333,stroke-width:2px,color:white
    style DB fill:#3D48CC,stroke:#333,stroke-width:2px,color:white```
Loading

Frontend

  • Framework: React Native (CLI)
  • Language: TypeScript
  • State Management: Zustand
  • Navigation: React Navigation (Stack/Tab)
  • Features: Camera, Sensors (Gyroscope), Axios, Lottie Animations

Backend (Serverless)

  • Platform: AWS Lambda (Node.js)
  • Database: AWS DynamoDB
  • Gateway: API Gateway
  • AI: OpenAI API (GPT-4)
서비스 Lambda 핸들러 역할
AI 코칭 crisis-handler 고민 상담 솔루션 제공
답변 생성 answer-guide-handler MBTI 기반 맞춤 메시지 생성
선물 추천 gift-handler 상황별 선물 추천
노트 저장 note-handler 노트 CRUD (DynamoDB 연동)

🚀 설치 및 실행 (Getting Started)

1. 환경 설정 (.env)

프로젝트 루트(Frontend/.env)에 아래 키가 필수입니다.

# API 설정
API_BASE_URL=https://your-api-gateway-url.amazonaws.com/production
API_KEY=your-x-api-key-here  # Note 기능 등 일부 API는 필수

# (선택) 로컬 개발 시 필요한 기타 키들...


### 2. 설치 (Installation)
```bash
# Frontend 의존성 설치
cd Frontend
npm install

# iOS 라이브러리 설치 (Mac Only)
cd ios
pod install

3. 실행 (Run)

# Metro Bundler 실행
npm start

# iOS 시뮬레이터
npm run ios

---

## ☁️ 백엔드 배포 (Backend Deployment)

백엔드 코드는 `Backend/aws` 폴더에 위치합니다.

### 배포 스크립트 실행
```bash
cd Backend/aws/scripts

# 실행 권한 부여
chmod +x deploy.sh

# 전체 배포 (Infrastructure + All Lambdas)
./deploy.sh

람다 개별 패키징 (package.sh)

새로운 라이브러리를 추가했거나 특정 함수만 업데이트하려면:

cd Backend/aws/lambda
./package.sh

note-handleranswer-guide-handlernode_modules를 포함하여 패키징됩니다.


⚠️ 트러블슈팅 (Troubleshooting)

Q. 노트 저장이 안돼요 (403 Error)

  • .env 파일에 API_KEY가 올바르게 설정되어 있는지 확인하세요. /notes API는 API Key가 필수입니다.

Q. 카메라 권한 오류

  • 실제 기기에서 테스트하는 것을 권장합니다. 시뮬레이터에서는 카메라 기능이 제한될 수 있습니다.

Q. 빌드 실패 (Hermes/Pod 관련)

  • ios/Podfile.lock을 삭제하고 pod install --repo-update를 시도해보세요.

About

몰입캠프2분반_3주차_이건임남중

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages