Base
Base is the blockchain for global finance.
Kişisel bütçe ve finans takip platformu
Translation pending
FinanceTypeScript · PLpgSQLGitHub @myliferOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Kişisel finans uygulaması: hesaplar, işlemler, bütçeler, borçlar, yatırımlar, raporlar. Çevrimdışı öncelikli (offline-first) bir PWA'dır — veri önce tarayıcıdaki IndexedDB'ye yazılır, bağlantı olduğunda Supabase'e eşitlenir. Arayüz Türkçedir.Read the full README ↗
Kişisel finans uygulaması: hesaplar, işlemler, bütçeler, borçlar, yatırımlar, raporlar. Çevrimdışı öncelikli (offline-first) bir PWA'dır — veri önce tarayıcıdaki IndexedDB'ye yazılır, bağlantı olduğunda Supabase'e eşitlenir. Arayüz Türkçedir.
Canlı: https://fintrack-os-ten.vercel.app
;/Windows-1254, XLSX), Borç/Alacak
sütunları, satır bazlı önizleme, mükerrer tespiti, geri alma.updatedAt), silinen kaydın dirilmemesi,
Realtime ile cihazlar arası canlı güncelleme.Next.js 16 (App Router, src/proxy.ts middleware) · React 19 · TypeScript · Tailwind v4 ·
Zustand · Dexie (IndexedDB) · Supabase (Auth, Postgres + RLS, Realtime, Storage) ·
Recharts · Vitest · Playwright.
Next.js 16 önceki sürümlerden farklıdır; kod yazmadan önce
node_modules/next/dist/docs/altındaki ilgili rehbere bakın (bkz.AGENTS.md).
Ücretli servis kullanılmaz. Fiyat kaynakları ücretsiz ve anahtarsızdır: fawazahmed0
currency-api (kurlar), Truncgil (Kapalıçarşı altını), TEFAS (fonlar), Yahoo Finance
(altın vadelisi, BIST, kripto). Hepsi sunucu tarafında (src/app/api/prices/*) çağrılır.
Gereksinim: Node 22, bir Supabase projesi.
npm ci
cp .env.example .env.local # değerleri doldurun
npm run dev # http://localhost:3000
supabase_schema.sql'i çalıştırın (tablolar, deleted_at, RLS).supabase/migrations/ altındaki dosyaları numara sırasıyla çalıştırın
(0001 → son). Hepsi idempotenttir; tekrar çalıştırmak güvenlidir.https://<adres>/auth/callback** (şifre sıfırlama ve e-posta onayı)Yeni migration'ı her zaman koddan ÖNCE uygulayın. İstemci yeni sütunları yazmaya başladığında sütun yoksa bulut yazımı reddedilir ve kayıt yalnız o cihazda kalır.
.env.local'a AUTH_BYPASS=1 eklenirse uygulama girişsiz açılır; veri yalnız o
tarayıcının IndexedDB'sinde kalır. Uçtan uca testler bu kipte çalışır. Üretimde yok sayılır.
| Komut | Ne yapar |
|---|---|
npm run dev | Geliştirme sunucusu |
npm run build / npm start | Üretim derlemesi / sunucusu |
npm run typecheck | tsc --noEmit |
npm run lint | ESLint |
npm test | Vitest birim testleri |
npm run test:e2e | Playwright uçtan uca testleri (e2e/) |
CI (.github/workflows/ci.yml) her push ve PR'da tip kontrolü, lint, birim testleri,
üretim derlemesi ve uçtan uca testleri çalıştırır. Vercel deploy'u bundan bağımsızdır.
src/
app/(main)/… sayfalar (giriş gerektirir) app/api/… sunucu rotaları
components/… arayüz proxy.ts oturum + CSP
store/… Zustand store'ları (sayfaların tek veri kaynağı)
lib/db Dexie şeması (yerel kopya)
lib/sync outbox eşitleme motoru, realtime, onarım
lib/utils SAF hesaplar — store/DB bilmez, birim testli
supabase/migrations sıralı, idempotent SQL
audit/ güvenlik ve hata denetim raporları
localUpsert/localPatch/localBatch (Dexie + outbox) →
engine.ts kuyruğu Supabase'e iter. Silme her zaman deleted_at (tombstone).reconcilingPull bulut + yerel kopyayı birleştirir; çakışmada
updatedAt yeni olan kazanır (sunucuda keep_newer_row tetikleyicisi, 0016).error_logs tablosuna yazılır
(0020, kullanıcı yalnız ekler; Supabase panelinden okunur, 30 gün tutulur).lib/utils'tedir (akış toplamı, bütçe, ekstre, getiri…) ve
sayfalar arası tutarlılık için tek yerden çağrılır.