├── .cursor └── rules │ ├── core.mdc │ ├── memory-bank.mdc │ └── project-patterns.mdc ├── .env.example ├── .gitignore ├── .nvmrc ├── README.md ├── eslint.config.mjs ├── memory-bank ├── activeContext.md ├── productContext.md ├── progress.md ├── projectbrief.md ├── systemPatterns.md └── techContext.md ├── next.config.ts ├── package.json ├── postcss.config.mjs ├── prisma ├── migrations │ ├── 20250205153509_init │ │ └── migration.sql │ ├── 20250205211957_add_institution_details │ │ └── migration.sql │ ├── 20250207024023_add_hidden_field │ │ └── migration.sql │ ├── 20250207024742_add_account_nickname │ │ └── migration.sql │ ├── 20250207140018_add_account_metadata │ │ └── migration.sql │ ├── 20250207140622_add_account_url │ │ └── migration.sql │ ├── 20250207143924_add_coinbase_fields │ │ └── migration.sql │ ├── 20250208152623_add_transactions │ │ └── migration.sql │ ├── 20250209001825_add_investment_transaction_fields │ │ └── migration.sql │ ├── 20250209004239_add_security_fields │ │ └── migration.sql │ └── migration_lock.toml └── schema.prisma ├── public ├── coinbase.webp ├── file.svg ├── globe.svg ├── next.svg ├── vercel.svg └── window.svg ├── scripts ├── email-template.html ├── import-history.ts ├── refresh-data.sh ├── refresh-data.ts ├── send-test-email.ts └── tsconfig.json ├── src ├── app │ ├── accounts │ │ └── [accountId] │ │ │ └── page.tsx │ ├── api │ │ ├── accounts │ │ │ ├── [accountId] │ │ │ │ ├── backfill │ │ │ │ │ └── route.ts │ │ │ │ ├── clean-daily-records │ │ │ │ │ └── route.ts │ │ │ │ ├── clean-monthly-records │ │ │ │ │ └── route.ts │ │ │ │ ├── history │ │ │ │ │ ├── [balanceId] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ ├── refresh │ │ │ │ │ └── route.ts │ │ │ │ ├── toggle-visibility │ │ │ │ │ └── route.ts │ │ │ │ ├── transactions │ │ │ │ │ ├── delete-all │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ └── update-nickname │ │ │ │ │ └── route.ts │ │ │ ├── disconnect │ │ │ │ └── route.ts │ │ │ ├── history │ │ │ │ └── route.ts │ │ │ ├── manual │ │ │ │ └── route.ts │ │ │ ├── refresh │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── crypto │ │ │ └── oauth │ │ │ │ ├── callback │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ └── plaid │ │ │ ├── create-link-token │ │ │ └── route.ts │ │ │ ├── exchange-token │ │ │ └── route.ts │ │ │ └── refresh-institutions │ │ │ └── route.ts │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ └── providers.tsx ├── components │ ├── AccountCard.tsx │ ├── AccountDetails.tsx │ ├── AccountTypeChart.tsx │ ├── DashboardSummary.tsx │ ├── FinancialGroupChart.tsx │ ├── ManualAccountForm.tsx │ ├── NetWorthChart.tsx │ └── TransactionList.tsx ├── lib │ ├── accountTypes.ts │ ├── db.ts │ ├── institutionLogos.ts │ ├── plaid.ts │ └── transactions.ts └── types │ └── account.ts ├── tailwind.config.ts └── tsconfig.json /.cursor/rules/core.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/.cursor/rules/core.mdc -------------------------------------------------------------------------------- /.cursor/rules/memory-bank.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/.cursor/rules/memory-bank.mdc -------------------------------------------------------------------------------- /.cursor/rules/project-patterns.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/.cursor/rules/project-patterns.mdc -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/.env.example -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/.gitignore -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20.14.0 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/README.md -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /memory-bank/activeContext.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/activeContext.md -------------------------------------------------------------------------------- /memory-bank/productContext.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/productContext.md -------------------------------------------------------------------------------- /memory-bank/progress.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/progress.md -------------------------------------------------------------------------------- /memory-bank/projectbrief.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/projectbrief.md -------------------------------------------------------------------------------- /memory-bank/systemPatterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/systemPatterns.md -------------------------------------------------------------------------------- /memory-bank/techContext.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/memory-bank/techContext.md -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/next.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /prisma/migrations/20250205153509_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250205153509_init/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250205211957_add_institution_details/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250205211957_add_institution_details/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250207024023_add_hidden_field/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250207024023_add_hidden_field/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250207024742_add_account_nickname/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "Account" ADD COLUMN "nickname" TEXT; 3 | -------------------------------------------------------------------------------- /prisma/migrations/20250207140018_add_account_metadata/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "Account" ADD COLUMN "metadata" TEXT; 3 | -------------------------------------------------------------------------------- /prisma/migrations/20250207140622_add_account_url/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "Account" ADD COLUMN "url" TEXT; 3 | -------------------------------------------------------------------------------- /prisma/migrations/20250207143924_add_coinbase_fields/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250207143924_add_coinbase_fields/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250208152623_add_transactions/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250208152623_add_transactions/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250209001825_add_investment_transaction_fields/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250209001825_add_investment_transaction_fields/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20250209004239_add_security_fields/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/20250209004239_add_security_fields/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/prisma/schema.prisma -------------------------------------------------------------------------------- /public/coinbase.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/coinbase.webp -------------------------------------------------------------------------------- /public/file.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/file.svg -------------------------------------------------------------------------------- /public/globe.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/globe.svg -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/next.svg -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/vercel.svg -------------------------------------------------------------------------------- /public/window.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/public/window.svg -------------------------------------------------------------------------------- /scripts/email-template.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/email-template.html -------------------------------------------------------------------------------- /scripts/import-history.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/import-history.ts -------------------------------------------------------------------------------- /scripts/refresh-data.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/refresh-data.sh -------------------------------------------------------------------------------- /scripts/refresh-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/refresh-data.ts -------------------------------------------------------------------------------- /scripts/send-test-email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/send-test-email.ts -------------------------------------------------------------------------------- /scripts/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/scripts/tsconfig.json -------------------------------------------------------------------------------- /src/app/accounts/[accountId]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/accounts/[accountId]/page.tsx -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/backfill/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/backfill/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/clean-daily-records/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/clean-daily-records/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/clean-monthly-records/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/clean-monthly-records/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/history/[balanceId]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/history/[balanceId]/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/history/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/history/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/refresh/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/refresh/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/toggle-visibility/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/toggle-visibility/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/transactions/delete-all/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/transactions/delete-all/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/transactions/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/transactions/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/[accountId]/update-nickname/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/[accountId]/update-nickname/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/disconnect/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/disconnect/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/history/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/history/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/manual/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/manual/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/refresh/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/refresh/route.ts -------------------------------------------------------------------------------- /src/app/api/accounts/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/accounts/route.ts -------------------------------------------------------------------------------- /src/app/api/crypto/oauth/callback/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/crypto/oauth/callback/route.ts -------------------------------------------------------------------------------- /src/app/api/crypto/oauth/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/crypto/oauth/route.ts -------------------------------------------------------------------------------- /src/app/api/plaid/create-link-token/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/plaid/create-link-token/route.ts -------------------------------------------------------------------------------- /src/app/api/plaid/exchange-token/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/plaid/exchange-token/route.ts -------------------------------------------------------------------------------- /src/app/api/plaid/refresh-institutions/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/api/plaid/refresh-institutions/route.ts -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/app/providers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/app/providers.tsx -------------------------------------------------------------------------------- /src/components/AccountCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/AccountCard.tsx -------------------------------------------------------------------------------- /src/components/AccountDetails.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/AccountDetails.tsx -------------------------------------------------------------------------------- /src/components/AccountTypeChart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/AccountTypeChart.tsx -------------------------------------------------------------------------------- /src/components/DashboardSummary.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/DashboardSummary.tsx -------------------------------------------------------------------------------- /src/components/FinancialGroupChart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/FinancialGroupChart.tsx -------------------------------------------------------------------------------- /src/components/ManualAccountForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/ManualAccountForm.tsx -------------------------------------------------------------------------------- /src/components/NetWorthChart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/NetWorthChart.tsx -------------------------------------------------------------------------------- /src/components/TransactionList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/components/TransactionList.tsx -------------------------------------------------------------------------------- /src/lib/accountTypes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/lib/accountTypes.ts -------------------------------------------------------------------------------- /src/lib/db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/lib/db.ts -------------------------------------------------------------------------------- /src/lib/institutionLogos.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/lib/institutionLogos.ts -------------------------------------------------------------------------------- /src/lib/plaid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/lib/plaid.ts -------------------------------------------------------------------------------- /src/lib/transactions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/lib/transactions.ts -------------------------------------------------------------------------------- /src/types/account.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/src/types/account.ts -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetfactory/personal-financial-dashboard/HEAD/tsconfig.json --------------------------------------------------------------------------------