- ✅ React 18 + TypeScript + Vite
- ✅ Tailwind CSS v3
- ✅ shadcn/ui base components (Button, Card, Input, Label)
- ✅ Supabase client setup
- ✅ React Router v6
- ✅ Recharts (chart library)
- ✅ React Hook Form + Zod (form validation)
- ✅ date-fns (date utilities)
- ✅ Lucide React (icons)
tailwind.config.js- Tailwind CSS configurationpostcss.config.js- PostCSS configurationtsconfig.json- TypeScript configuration (with path aliases)vite.config.ts- Vite configuration.env.example- Environment variables template.gitignore- Git ignore rules
src/types/index.ts- TypeScript type definitions (Card, Transaction, Statement, etc.)src/lib/supabase.ts- Supabase client and database typessrc/lib/utils.ts- Utility functions (formatCurrency, formatDate, etc.)src/components/ui/- Base UI components (Button, Card, Input, Label)src/index.css- Global styles with Tailwindsrc/App.tsx- Main app component (status page)
supabase/schema.sql- Complete database schema with RLS policies
README.md- Comprehensive project documentationSETUP_GUIDE.md- This file
finansapp-web/
├── src/
│ ├── components/
│ │ └── ui/ ✅ Base UI components
│ ├── pages/ 📁 (Empty - Aşama 2)
│ ├── lib/
│ │ ├── supabase.ts ✅ Supabase client
│ │ └── utils.ts ✅ Utility functions
│ ├── hooks/ 📁 (Empty - Custom hooks)
│ ├── contexts/ 📁 (Empty - React contexts)
│ ├── types/
│ │ └── index.ts ✅ TypeScript types
│ ├── App.tsx ✅ Main app
│ ├── main.tsx ✅ Entry point
│ └── index.css ✅ Global styles
├── supabase/
│ ├── schema.sql ✅ Database schema
│ └── functions/ 📁 (Empty - Edge functions)
└── public/ 📁 Static assets
- supabase.com adresine gidin
- "Start your project" tıklayın
- Yeni proje oluşturun:
- Organization seçin veya yeni oluşturun
- Project Name:
finansapp(veya istediğiniz isim) - Database Password: Güçlü bir şifre oluşturun (kaydedin!)
- Region: Europe (Frankfurt) - Türkiye'ye en yakın
- Pricing Plan: Free tier seçin
- Supabase Dashboard'da SQL Editor bölümüne gidin
- "New query" tıklayın
supabase/schema.sqldosyasının içeriğini kopyalayın- SQL Editor'e yapıştırın
- "Run" butonuna basın
- Başarılı olduğunu doğrulamak için:
- Sol menüden Table Editor'e gidin
profiles,cards,statements,transactions,categories,insightstablolarını görmeli
- Supabase Dashboard'da Storage bölümüne gidin
- "Create a new bucket" tıklayın
- Bucket adı:
statements - Public bucket: KAPALI (private tutun)
- "Create bucket" tıklayın
- Bucket'a tıklayın ve Policies sekmesine gidin
- Şu 3 policy ekleyin:
Policy 1: Upload
-- Name: Users can upload own PDFs
-- Target: INSERT
-- Policy:
(bucket_id = 'statements' AND auth.uid()::text = (storage.foldername(name))[1])Policy 2: View
-- Name: Users can view own PDFs
-- Target: SELECT
-- Policy:
(bucket_id = 'statements' AND auth.uid()::text = (storage.foldername(name))[1])Policy 3: Delete
-- Name: Users can delete own PDFs
-- Target: DELETE
-- Policy:
(bucket_id = 'statements' AND auth.uid()::text = (storage.foldername(name))[1])- Supabase Dashboard'da Authentication > Providers gidin
- Email provider'ın etkin olduğundan emin olun
- Email Templates sekmesine gidin
- İsterseniz email template'lerini Türkçeleştirebilirsiniz
- Supabase Dashboard'da Settings > API gidin
- Şu bilgileri kopyalayın:
- Project URL (örn:
https://abcdefgh.supabase.co) - anon public key (başında
eyJ...ile başlayan uzun key)
- Project URL (örn:
- Proje klasöründe
.envdosyası oluşturun:
# Windows
copy .env.example .env
# macOS / Linux
cp .env.example .env.envdosyasını açın ve değerleri girin:
VITE_SUPABASE_URL=https://abcdefgh.supabase.co
VITE_SUPABASE_ANON_KEY=eyJ...uzun_key_burayaDevelopment server zaten çalışıyor: http://localhost:5174
Tarayıcınızda açın ve status sayfasını görmelisiniz! ✅
Aşama 1 tamamlandı! ✅ Şimdi Aşama 2'ye geçebiliriz:
Geliştirilecekler:
- Login sayfası (email/password)
- Register sayfası
- Forgot password
- Email verification handling
- Protected routes (AuthContext)
- Onboarding flow (3 adım: karşılama, API key setup, ilk kart)
- User profile page
- Login/Register forms (React Hook Form + Zod)
- Onboarding stepper
- Settings page (profile, API keys)
- ✅ Aşama 1: Proje Kurulumu (TAMAMLANDI - 1 gün)
- 🔄 Aşama 2: Authentication ve Onboarding (Sırada - 2 gün)
- ⏳ Aşama 3: Core Layout ve Navigation (1-2 gün)
- ⏳ Aşama 4: Cards Management (1 gün)
- ⏳ Aşama 5: PDF Upload ve Statement Parsing (2-3 gün)
- ⏳ Aşama 6: Transactions Management (2 gün)
- ⏳ Aşama 7: Dashboard ve Charts (2-3 gün)
- ⏳ Aşama 8: Comparison View (1-2 gün)
- ⏳ Aşama 9: AI Insights (1-2 gün)
- ⏳ Aşama 10: Polish ve Deployment (2 gün)
Toplam Tahmini Süre: ~3-4 hafta
# Windows'ta portu kullanan process'i bul
netstat -ano | findstr :5173
# Process'i sonlandır (PID'yi yukarıdaki komuttan alın)
taskkill /PID <pid_numarası> /FProjenizde Tailwind CSS v3.4.0 kurulu olmalı (v4 değil!). Kontrol:
npm list tailwindcssPath alias'lar doğru kurulu. @/ ile import yapabilirsiniz:
import { Button } from '@/components/ui/button'
import { supabase } from '@/lib/supabase'Herhangi bir sorunuz veya yardıma ihtiyacınız varsa, sorabilirsiniz!
Aşama 2'ye başlamak için hazır olduğunuzda bana haber verin! 🚀