Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
AI 재무 코칭 가계부 - 넛지 기반으로 소비 습관을 코칭해드립니다
Translation pending
FinanceJavaScript · JavaGitHub @jsi4770OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
OSORI 개인 가계부 + AI 코칭 (v2 리퀴드 글래스 리뉴얼 이후 버전)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
OSORI v2 — AI 재무 코칭 가계부 사회초년생을 위한 넛지형 AI 재무 코칭 가계부. AI 재무 코칭을 새로운 차별화 기능으로 추가했습니다. 사후 리포트에 그치지 않는 AI 코칭(소비 이상치 감지 → 맥락 있는 넛지 → 목표 기반 대화형 코칭 → 성장 리포트)을 새로 만들었습니다. 자세한 배경은 docs/PRD.md 참고.Read the full README ↗
사회초년생을 위한 넛지형 AI 재무 코칭 가계부. AI 재무 코칭을 새로운 차별화 기능으로 추가했습니다.
docs/PRD.md사후 리포트에 그치지 않는 AI 코칭(소비 이상치 감지 → 맥락 있는 넛지 → 목표 기반 대화형 코칭 → 성장 리포트)을 새로 만들었습니다. 자세한 배경은 docs/PRD.md 참고.
app/src/constants/categories.js 공용 상수). 홈 화면의 "카테고리 별 소비 분석" 도넛은 전체 카테고리를 다 보여주되 고정비는 무채색, 변동비는 컬러로 구분하고 "고정비 X원 · 변동비 Y원" 요약을 함께 보여줍니다. AI 코칭의 이상치 탐지·코칭 타겟 계산은 고정지출 자동등록 내역을 제외해, 매달 똑같이 나가는 고정비가 "비정상 소비"로 오탐되지 않도록 합니다.| 프론트엔드 | React 19 (Vite) · Axios · React Router · Chart.js |
| 백엔드 | Spring Boot 3 · Java 17 · MyBatis · PostgreSQL |
| AI 코칭 | Google Gemini API (무료 티어, gemini-2.5-flash) — Mock 폴백 내장 |
| 영수증 OCR | Naver CLOVA OCR (종량제, 기본 비활성화) |
| 환율(외화 입력) | 한국수출입은행 환율 API(무료·과거 영업일 조회) → open.er-api.com 교차환율(키 불필요) → 하드코딩 폴백. (통화,날짜) 영구 캐싱 |
| 배포 | 백엔드: Railway · 프론트엔드: Vercel |
personalPRD/
├─ docs/PRD.md 제품 요구사항
├─ app/ 프론트엔드 (React + Vite)
└─ server/ 백엔드 (Spring Boot)
brew install postgresql@16
brew services start postgresql@16
createdb fincoach
cd server
cp src/main/resources/application.properties.example src/main/resources/application-local.properties
# application-local.properties에 실제 DB 비밀번호/JWT 시크릿/외부 API 키를 채워넣는다
SPRING_PROFILES_ACTIVE=local ./mvnw spring-boot:run # http://localhost:8080/fincoach
application.properties(커밋됨, 안전한 기본값)와 application-local.properties(gitignore, 실제 로컬 시크릿)는 Spring 프로필로 분리되어 있습니다. application-local.properties에 넣은 값이 기본값을 덮어씁니다.
cd app
npm install
npm run dev # http://localhost:5174 (또는 다른 포트, vite가 자동 배정)
app/src/api/axios.jsx, http.js는 VITE_API_BASE_URL이 없으면 /fincoach 상대 경로(Vite 프록시 경유)로 로컬 백엔드를 호출합니다.
railway up -s fincoach-api — 환경변수로 DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORD(Railway Postgres 서비스 참조), JWT_SECRET, NAVER_OCR_*, RECEIPT_OCR_ENABLED, COACHING_LLM_ENABLED, GEMINI_API_KEY 등을 주입합니다.MAIL_ENABLED=true, MAIL_USERNAME(발신 Gmail 주소), MAIL_PASSWORD(Gmail 앱 비밀번호 — 2단계 인증 필요)를 주입해야 실제 메일이 발송됩니다. 미설정 시 인증코드는 서버 로그로만 출력되어 회원가입/재설정을 완료할 수 없습니다.FX_ENABLED=true + EXIM_FX_KEY(한국수출입은행 현재환율 API 인증키, 무료·카드 불필요)를 주입하면 과거 영업일까지 정확한 환율을 씁니다. 미설정(FX_ENABLED=false)이면 open.er-api.com(키 불필요) 최신 환율과 하드코딩 폴백으로 동작하며 부정확할 수 있는 값은 "추정"으로 표시됩니다. FX_DAILY_LIMIT로 원격 호출 상한을 둡니다.app/.env.production의 VITE_API_BASE_URL이 배포된 Railway 백엔드 URL을 가리키도록 빌드 시 고정합니다.coaching.llm.enabled=false(기본값)면 미리 정의된 Mock 코칭 문구로 동작합니다. Gemini API 키를 발급받아 true로 바꾸면 실제 LLM 응답으로 전환됩니다. 무료 티어 한도 초과/오류 시에도 자동으로 Mock으로 우아하게 대체됩니다.receipt.ocr.enabled=false(기본값)면 비활성화 메시지와 함께 수동 입력으로 유도합니다. CLOVA OCR은 종량제라 기본적으로 꺼져 있습니다.MYTRANS.ORIGINAL_AMOUNT는 항상 원화 — 차트/예산/코칭은 무영향). 원본 외화금액·적용 환율·기준일을 스냅샷으로 함께 저장하고, 사용자가 환산 원화값을 직접 덮어쓸 수 있습니다(카드 명세서 반영). 외화 고정지출은 매달 결제일 환율로 재환산됩니다. fx.enabled=false여도 폴백 환율로 기능은 동작하며, 이때 값은 "추정"으로 표시됩니다.