尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证FinDB (Finance Dashboard): a personal finance tracker for India. Track bank accounts, credit cards, cash, income and expenses, with monthly summaries and a full activity log. Next.js, TypeScript and PostgreSQL.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
FinDB (Finance Dashboard) is a personal finance tracker for people in India. You record your money yourself: bank accounts, credit cards, cash, income and expenses. FinDB keeps every balance up to date and shows where your money went each month. It never connects to your bank. Amounts are in rupees with Indian digit grouping (5,00,000.00).查看完整 README ↗FinDB (Finance Dashboard) is a personal finance tracker for people in India. You record your money yourself: bank accounts, credit cards, cash, income and expenses. FinDB keeps every balance up to date and shows where your money went each month. It never connects to your bank. Amounts are in rupees with Indian digit grouping (5,00,000.00).
Website. The official FinDB website is part of the same app: the home page, a page for every feature (marked available now, in development or planned), free calculators (EMI, which loan to close first, FD, RD, SIP, gold value, chit fund return, inflation), the roadmap, how to install the app, questions, security, privacy, terms and about.
App.
| Layer | Technology |
|---|---|
| App | Next.js 16 (App Router), React 19, TypeScript |
| API | Next.js route handlers in app/api, with the logic in lib/services |
| Database | PostgreSQL (Supabase) through pg, plain SQL |
| Hosting | Vercel |
| Tests | Jest and Playwright |
app/(site) The website: home, features, roadmap, get the app, questions, security, privacy, terms, about
app/(product) The app: sign-in screens and the logged-in screens
app/api API route handlers
components/ React components (components/site: the website's components and copy)
lib/ Server and shared code: database, sessions, rate limits, services
proxy.ts Per-request Content-Security-Policy; sends signed-out visitors to /login
next.config.ts Security headers
public/icons App icons for installing FinDB (scripts/generate-icons.js draws them)
setup-db.js Creates and updates the database schema (safe to rerun)
tests/ API tests, unit tests (tests/unit) and end-to-end tests (tests/e2e)
docs/ API reference and project status
Requirements: Node.js 20.9 or later, and a PostgreSQL database (for example a Supabase project).
npm install
Create a .env file:
DB_HOST=<database host>
DB_PORT=6543
DB_NAME=postgres
DB_USER=<database user>
DB_PASSWORD=<password>
DB_SSL=true
SESSION_SECRET=<64-byte hex string>
FIELD_ENCRYPTION_KEYS=1:<base64 of 32 random bytes> # docs/security.md
# Optional: the Postgres schema to use (default: public)
DB_SCHEMA=findb_dev
Generate a session secret with:
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
Create the tables and start the app:
npm run setup-db # creates the tables in DB_SCHEMA (public if unset)
npm run dev # http://localhost:3000
| Command | What it does |
|---|---|
npm run dev | Development server on port 3000 |
npm run build / npm start | Production build and server |
npm run setup-db | Create or update the tables |
npm test | Build the app, start it against the balancetrack_test schema, and run all Jest tests |
npm run test:unit | Unit tests only (no database needed) |
npm run migrate:test / npm run migrate:status | Apply or list the SQL migrations in db/migrations/ |
npm run ledger:check | Read-only check that stored balances equal the ledger's (docs/ledger.md) |
npm run test:e2e | End-to-end browser tests (Playwright) |
npm run typecheck / npm run lint | TypeScript and ESLint checks |
Tests always use the balancetrack_test schema and refuse to run against any other, so they never touch real data. Put a separate test database's connection settings in .env.test (same keys as .env, git-ignored) and every test command uses it instead of the database in .env. Create the tables once with npm run setup-test-db.
FinDB runs on Vercel as a standard Next.js project (vercel.json sets the region, bom1 in Mumbai, next to the database).
.env for Production (Settings > Environment Variables). Use a different SESSION_SECRET and FIELD_ENCRYPTION_KEYS per environment.npm run setup-db once against the production database, then node scripts/migrate.js --production (after a backup, for later migrations).Only production is built: merging into master deploys production. Preview builds for other branches are skipped (ignoreCommand in vercel.json), which saves build time on the free plan. The Preview environment still points at the test database (balancetrack_test schema, with REQUIRE_TEST_SCHEMA=true), in case a preview is ever deployed by hand with vercel deploy.
ISC (declared in package.json).