Commit Graph

19 Commits

Author SHA1 Message Date
sb 9de1949da8 feat(ios): Capacitor iOS 플랫폼 추가 — 시뮬레이터 실행 확인
- @capacitor/ios 추가, cap add ios (SPM, 플러그인 7종)
- Info.plist 카메라·사진 보관함 권한 문구
- 브랜드 앱 아이콘 생성, 번들 ID kr.sblog.slimbudget (안드와 동일)
- iPhone 17 시뮬레이터(iOS 26.5) 빌드·구동 확인

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 16:23:28 +09:00
ByungCheol 127551da12 feat: 로컬 알림 — 가계부 기록 리마인더 + 구독 만료 임박 (앱 전용)
CI / build (push) Failing after 14m29s
- @capacitor/local-notifications 추가, src/native/reminders.js
- 매일 설정 시각(기본 21시) 가계부 미기록 시 알림(오늘 기록하면 오늘자 제외, 7일 롤링)
- 구독 해지 상태 만료 3일 전 알림
- 설정에 알림 받기 토글 + 시간 선택(앱에서만), 권한 요청
- 앱 시작/홈/내역에서 스케줄 보정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:42:00 +09:00
ByungCheol 457fd8127a feat: 설정 - 엑셀 데이터 내보내기(백업)
CI / build (push) Successful in 44s
- utils/backup.js: 가계부 전체(내역·계좌·분류·고정지출·예산·태그·자주내역)를
  이름 기준 참조로 .xlsx 다중 시트 생성. xlsx 동적 import(별도 청크)
- 웹/PC=다운로드, 앱(네이티브)=Filesystem 저장 + Share
- SettingsView: '데이터 백업' 카드(엑셀로 내보내기 동작 / 가져오기 버튼=준비중)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 08:14:19 +09:00
ByungCheol 6aa3590c5a chore: PC 설치파일명 DonDwaeji-Setup.exe + 기본 설치경로 DonDwaeji
CI / build (push) Failing after 12m51s
- electron-builder artifactName: SlimBudget-Setup → DonDwaeji-Setup
- build/installer.nsh: 기본 설치경로를 $PROGRAMFILES\DonDwaeji 로 고정
  (productName 한글이라 name='sb_pt' 로 폴백되던 문제 회피)
- WebOnlyNotice 다운로드 URL 도 DonDwaeji-Setup.exe 로 변경

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 20:47:46 +09:00
ByungCheol a310c7a471 feat: 구글 로그인/가입 — 웹(GIS)·앱(네이티브 Credential Manager)
CI / build (push) Failing after 13m30s
- LoginModal: 서버에서 구글 클라이언트 ID 수신 시에만 버튼 노출
  - 웹/PC: Google Identity Services 렌더 버튼
  - 앱(안드로이드): @capawesome/capacitor-google-sign-in 네이티브 버튼
- 네이티브/웹 모두 ID 토큰을 /api/auth/google 로 전달(aud=웹 클라이언트 ID)
- auth 스토어/authApi 에 googleLogin·googleClientId 추가
- src/native/googleAuth.js 네이티브 래퍼 신규

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 18:02:19 +09:00
ByungCheol 1ca09b7439 feat: 앱명을 '돈돼지 가계부'로 통일 (가계부 인식 + 마스코트)
CI / build (push) Failing after 11m38s
- 헤더·웹안내·홈·약관 서비스명·푸터/설정 저작권·타이틀 → 돈돼지 가계부
- productName/capacitor appName/안드로이드 app_name·창제목/Electron app.setName·window title → 돈돼지 가계부
- 기술 식별자(appId, 설치파일명)는 유지

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:51:29 +09:00
ByungCheol e4d7df2554 fix(electron): 설치파일 손상 방지 — win.icon 을 표준 .ico(≤256)로 지정
CI / build (push) Failing after 11m20s
- 1024px PNG 자동변환 ico(1024 프레임)가 일부 환경에서 손상 인식되던 문제
- build/icon.ico(16~256px, png-to-ico) 생성해 win.icon 으로 지정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:06:48 +09:00
ByungCheol 786f7aae61 feat: 웹 안내 페이지에 PC 버전(Windows) 다운로드 링크 추가
CI / build (push) Failing after 14m5s
- WebOnlyNotice: PC 버전 다운로드 버튼(/download/SlimBudget-Setup.exe) + 모바일(준비 중)
- nginx: /download/ 위치 추가 — 배포(dist 교체)에 안 지워지는 /var/www/sb-downloads 에서 서빙
- 설치파일 이름 고정(SlimBudget-Setup.exe)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 16:54:28 +09:00
ByungCheol 9de26cf417 feat: 데스크톱 클라이언트가 라이브 사이트 직접 로드 — 프론트 변경 자동 반영(재설치 불필요)
CI / build (push) Failing after 14m5s
- electron/main.cjs: dist 번들 → https://app.sblog.kr 직접 로드
  · 같은 출처라 webSecurity:false(CORS 우회) 제거, 오프라인 시 '다시 시도' 안내 화면
  · 앱 외 도메인 링크만 기본 브라우저로
- package.json: 설치파일에 dist 미포함·build:electron 제거(원격 로드라 불필요)
- .env.electron 삭제

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 16:39:28 +09:00
ByungCheol cb5cf1f0bf feat: 브랜드 앱 아이콘 + Windows 데스크톱(Electron) 클라이언트
CI / build (push) Failing after 12m35s
- 앱 아이콘: 브랜드(초록 #00bc7e + 흰 막대 차트) 적응형 아이콘 생성(@capacitor/assets)
  · assets/ 에 SVG 소스 + 전 해상도 mipmap 재생성, 적응형 XML 인셋 제거(배경 풀블리드)
- 데스크톱: Electron 로 dist 를 감싼 Windows 설치파일(.exe)
  · vite electron 모드(상대 base)·라우터 해시 히스토리·App 게이트 Electron 감지
  · webSecurity:false 로 file:// CORS 우회, 백엔드는 https://app.sblog.kr/api
  · scripts: build:electron / electron:dev / electron:build(electron-builder NSIS)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 16:20:55 +09:00
ByungCheol c9ff605ac9 feat: 앱 하단 내비게이션·설정/계정정보·가입정보 변경 + 프론트 테스트·CI 게이트
CI / build (push) Failing after 10m29s
- 하단 내비게이션(뒤로/앞으로/홈/새로고침/설정), 사이드바 홈 제거
- 설정 화면: 계정정보·앱 버전(package.json)·App Data 삭제
- 가입정보 변경: 비밀번호 재인증 → 이름/이메일 수정
- 로그인 후 대시보드(/) 이동, 로그인 전 햄버거·네이버 로그인 버튼 숨김
- Vitest 도입(32): authApi/accountApi 와이어링, auth/ui 스토어, 로그인 플로우
- CI(.gitea): npm test 게이트 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:08:01 +09:00
ByungCheol 68dd926cce feat: 영수증 OCR을 Google Vision(백엔드) 방식으로 전환
CI / build (push) Failing after 14m1s
- 이미지를 백엔드(/account/ocr/receipt)로 업로드 → Vision 텍스트 → 금액·날짜·상호 파싱
- 업로드 전 이미지 축소(최대 1600px JPEG), Tesseract.js 의존성 제거
- 진행률 표시 제거(인식 중…), 정확도·속도 대폭 개선

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:37:35 +09:00
ByungCheol e1d2ec5bd7 feat: 영수증 스캔 네이티브 카메라(@capacitor/camera)
CI / build (push) Failing after 15m10s
- 앱에서 촬영/갤러리 선택 프롬프트로 영수증 입력 (웹은 파일선택 폴백)
- AndroidManifest CAMERA 권한 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 16:50:54 +09:00
ByungCheol efbe298a1f feat: 홈 대시보드 + 영수증 OCR + 카드 할부 + 소수점 매수 등 UI 개선
CI / build (push) Failing after 13m56s
- 홈: 로그인 시 요약(이번달 수입/지출, 순자산, 예산대비지출 바)+바로가기, 비로그인 랜딩
- 영수증 OCR(온디바이스 Tesseract.js): 금액·날짜·상호 추출해 내역 폼 자동입력
- 내역 카드 할부(2~24개월) 입력/표시
- 투자 소수점 수량 입력(step=any)
- 계좌 관리 등록버튼 탭 라인 우측 이동, 정기거래 3단 레이아웃
- 목록 좌측 여백 제거(분류/예산/태그/계좌), 대시보드 일/주 버튼 제거, 도넛/파이 차트 잘림 수정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 16:42:07 +09:00
ByungCheol 252f00e527 feat: 분류 드래그앤드랍 정렬 + 예산화면 예상수입/예산 비교
CI / build (push) Failing after 13m46s
- 분류 관리: SortableJS 드래그 정렬(터치 지원), 순서는 내역 추가 화면에도 반영
- 예산: 월 예상 수입 입력 + 수입 대비 총 예산 비교(여유/초과)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 22:37:56 +09:00
ByungCheol 63a8a71e3b feat: 로그인 영속화 + 내역 계좌선택 분리 + 일별 그룹 레이아웃
CI / build (push) Failing after 11m2s
- 로그인 유지: Capacitor Preferences 로 토큰 영속화(앱 재실행 시 로그아웃 방지),
  시작 시 세션 복원 후 마운트
- 내역 추가: 계좌 종류(계좌/카드/대출/증권) 콤보 선택 → 해당 종류만 목록에
- 가계부 내역: 일별 그룹 + 일 수입/지출 합계, 항목은 분류·계좌·금액 / 메모·태그(2줄),
  per-row 날짜 제거

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 22:10:23 +09:00
ByungCheol 840ec84e0d feat: 안드로이드 하이브리드 앱(Capacitor) 구성
CI / build (push) Failing after 13m47s
- capacitor.config + android/ 네이티브 프로젝트
- 앱 전용 빌드(.env.capacitor, build:app), 뒤로가기·safe-area
- docs/ANDROID.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 19:13:12 +09:00
ByungCheol 13308a82ef feat: 가계부·게시판 프론트엔드 구현 + Slim Budget 브랜딩/모바일 대응
- 가계부: 대시보드(예산 대비 지출·분류별 파이·기간별 막대·순자산 추이),
  내역(검색·필터·태그), 계좌(은행/카드/대출/투자), 예산, 분류, 정기 거래,
  태그, 투자 포트폴리오(종목·매수/매도·평가손익)
- 게시판: 목록/상세/작성(마크다운)/댓글/태그/열람제한
- 공통: 인증(Bearer 토큰·401 처리), 모바일 반응형(드로어·아이콘 버튼),
  Slim Budget 브랜딩(로고/타이틀/푸터), 홈 대시보드 자리
- 문서: docs/FRONTEND.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:42:52 +09:00
ByungCheol 2485ea05bf @
Initial commit: SB 프론트엔드 (Vue 3 + Vite)

- axios 공통 인스턴스 및 사용자 CRUD API 연동
- Pinia 사용자 스토어, 사용자 관리 화면(UsersView)
- /api -> Spring Boot(8080) dev 프록시 구성

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-05-30 21:18:13 +09:00