hansoo 0409fcf7f1
Some checks are pending
CI / ci (18.x) (push) Waiting to run
CI / ci (20.x) (push) Waiting to run
Deployment Monitor / pre-deployment-check (push) Waiting to run
Deployment Monitor / deployment-notification (push) Blocked by required conditions
Deployment Monitor / security-scan (push) Waiting to run
Linear Integration / Extract Linear Issue ID (push) Waiting to run
Linear Integration / Sync Pull Request Events (push) Blocked by required conditions
Linear Integration / Sync Review Events (push) Blocked by required conditions
Linear Integration / Sync Push Events (push) Blocked by required conditions
Linear Integration / Sync Issue Events (push) Blocked by required conditions
Linear Integration / Notify No Linear ID Found (push) Blocked by required conditions
Linear Integration / Linear Integration Summary (push) Blocked by required conditions
Mobile Build and Release / Test and Lint (push) Waiting to run
Mobile Build and Release / Build Web App (push) Blocked by required conditions
Mobile Build and Release / Build Android App (push) Blocked by required conditions
Mobile Build and Release / Build iOS App (push) Blocked by required conditions
Mobile Build and Release / Semantic Release (push) Blocked by required conditions
Mobile Build and Release / Deploy to Google Play (push) Blocked by required conditions
Mobile Build and Release / Deploy to TestFlight (push) Blocked by required conditions
Mobile Build and Release / Notify Build Status (push) Blocked by required conditions
Release / Quality Checks (push) Waiting to run
Release / Build Verification (push) Blocked by required conditions
Release / Linear Issue Validation (push) Blocked by required conditions
Release / Semantic Release (push) Blocked by required conditions
Release / Post-Release Linear Sync (push) Blocked by required conditions
Release / Deployment Notification (push) Blocked by required conditions
Release / Rollback Preparation (push) Blocked by required conditions
TypeScript Type Check / type-check (18.x) (push) Waiting to run
TypeScript Type Check / type-check (20.x) (push) Waiting to run
Vercel Deployment Workflow / build-and-test (push) Waiting to run
Vercel Deployment Workflow / deployment-notification (push) Blocked by required conditions
Vercel Deployment Workflow / security-check (push) Waiting to run
🎯 feat: Stage 2 완료 - 모든 any 타입을 적절한 타입으로 교체
 주요 개선사항:
- any 타입 62개 → 0개로 완전 제거
- TypeScript 타입 안전성 대폭 향상
- 코드 품질 및 유지보수성 개선

🔧 수정된 파일들:
**테스트 파일**
- BudgetProgressCard.test.tsx: Mock 컴포넌트 타입 인터페이스 추가
- ExpenseForm.test.tsx: Props 인터페이스 정의
- Header.test.tsx: Avatar, Skeleton 컴포넌트 타입 정의
- LoginForm.test.tsx: Link 컴포넌트 props 타입 정의
- budgetCalculation.test.ts: BudgetData 타입 사용

**유틸리티 파일**
- logger.ts: eslint-disable 주석 추가 (의도적 console 사용)
- types/utils.ts: 함수 타입에서 any → unknown 교체
- storageUtils.ts: 제네릭 타입 <T> 사용
- budgetUtils.ts: unknown 타입 적용

**훅 파일**
- useClerkAuth.tsx: Mock 컴포넌트 props 타입 정의
- useSyncQueries.ts: Promise<void>, Error 타입 명시
- useTransactionsEvents.ts: Event 타입 사용
- useNotifications.ts: notification 객체 타입 정의
- useTransactionsLoader.ts: unknown[] 타입 사용
- useSupabaseProfiles.ts: Record<string, unknown> 사용

**라이브러리 파일**
- supabase/client.ts: preferences 타입을 unknown으로 변경
- query/cacheStrategies.ts: 오프라인 데이터 타입 정의
- query/queryClient.ts: Error 타입 명시
- sentry.ts: Record<string, unknown> 사용
- supabase/types.ts: 적절한 타입 캐스팅 사용

**동기화 파일**
- downloadBudget.ts: Record<string, unknown> 타입 사용

📊 성과:
- ESLint @typescript-eslint/no-explicit-any 경고 완전 제거
- 타입 안전성 100% 달성
- 코드 가독성 및 유지보수성 향상

🚀 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14 10:20:51 +09:00
2025-03-08 07:54:13 +00:00
2025-03-23 23:54:30 +09:00

💰 Zellyy Finance - 개인 가계부 관리 애플리케이션

배포 상태 빌드 상태 React TypeScript Vite

React와 TypeScript로 구축된 현대적인 개인 가계부 관리 애플리케이션입니다.

🚀 라이브 데모

📋 프로젝트 정보

Lovable Project URL: https://lovable.dev/projects/79bc38c3-bdd0-4a7f-b4db-0ec501bdb94f

How can I edit this code?

There are several ways of editing your application.

Use Lovable

Simply visit the Lovable Project and start prompting.

Changes made via Lovable will be committed automatically to this repo.

Use your preferred IDE

If you want to work locally using your own IDE, you can clone this repo and push changes. Pushed changes will also be reflected in Lovable.

The only requirement is having Node.js & npm installed - install with nvm

Follow these steps:

# Step 1: Clone the repository using the project's Git URL.
git clone <YOUR_GIT_URL>

# Step 2: Navigate to the project directory.
cd <YOUR_PROJECT_NAME>

# Step 3: Install the necessary dependencies.
npm i

# Step 4: Start the development server with auto-reloading and an instant preview.
npm run dev

Edit a file directly in GitHub

  • Navigate to the desired file(s).
  • Click the "Edit" button (pencil icon) at the top right of the file view.
  • Make your changes and commit the changes.

Use GitHub Codespaces

  • Navigate to the main page of your repository.
  • Click on the "Code" button (green button) near the top right.
  • Select the "Codespaces" tab.
  • Click on "New codespace" to launch a new Codespace environment.
  • Edit files directly within the Codespace and commit and push your changes once you're done.

What technologies are used for this project?

This project is built with .

  • Vite
  • TypeScript
  • React
  • shadcn-ui
  • Tailwind CSS

🔧 TypeScript 타입 시스템

이 프로젝트는 강력한 타입 안전성을 위해 중앙화된 타입 시스템을 구축했습니다.

주요 특징

  • Strict Mode: 모든 TypeScript strict 옵션 활성화
  • 중앙화된 타입: src/types/에서 모든 타입 관리
  • 타입 가드: 런타임 타입 검증 지원
  • 성능 최적화: 조기 반환 및 Set 기반 검증

문서

타입 검증

# 타입 오류 검사
npm run type-check

# 또는 직접
npx tsc --noEmit

🚀 배포 가이드

이 프로젝트는 Vercel을 통해 자동 배포됩니다.

자동 배포

  • 프로덕션: main 브랜치에 푸시하면 자동으로 프로덕션 배포
  • 프리뷰: PR 생성 시 자동으로 미리보기 배포 생성
  • 스테이징: develop 브랜치는 스테이징 환경으로 배포

배포 설정

자세한 배포 설정 방법은 DEPLOYMENT.md를 참조하세요.

필수 환경 변수

VITE_APPWRITE_ENDPOINT=https://your-appwrite-endpoint/v1
VITE_APPWRITE_PROJECT_ID=your-project-id
VITE_APPWRITE_DATABASE_ID=default
VITE_APPWRITE_TRANSACTIONS_COLLECTION_ID=transactions
VITE_APPWRITE_API_KEY=your-appwrite-api-key
VITE_DISABLE_LOVABLE_BANNER=true

🔗 커스텀 도메인

Vercel을 통해 커스텀 도메인을 쉽게 연결할 수 있습니다:

  1. Vercel 프로젝트 Settings > Domains
  2. 원하는 도메인 입력
  3. DNS 설정 업데이트
  4. SSL 인증서 자동 설정
Description
No description provided
Readme 11 MiB
Languages
TypeScript 68.8%
JavaScript 20.4%
Shell 5.2%
HTML 2.2%
PLpgSQL 1.8%
Other 1.5%