[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92777":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},92777,"FinTech-Solution","imchine\u002FFinTech-Solution","imchine","FinTech AI Solution for SMEs to calculate financial values","",null,"TypeScript",133,1033,51,0,101,56.04,false,"main",true,[22,23,24,25,26],"ai-solution","fintech","fintech-ai","fintech-solution","solution","2026-07-22 04:02:07","# FinSight AI — AI Financial Assistant for SMEs\n\n> Production-grade SaaS financial intelligence platform powered by GPT-4o, Next.js 15, and PostgreSQL.\n\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-15-black)](https:\u002F\u002Fnextjs.org)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5.0-blue)](https:\u002F\u002Ftypescriptlang.org)\n[![PostgreSQL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPostgreSQL-16-blue)](https:\u002F\u002Fpostgresql.org)\n[![Clerk](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAuth-Clerk-purple)](https:\u002F\u002Fclerk.com)\n[![OpenAI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAI-GPT--4o-green)](https:\u002F\u002Fopenai.com)\n\n---\n\n## 🚀 Features\n\n### Core Modules\n| Module | Description |\n|--------|-------------|\n| **Financial Dashboard** | Real-time revenue, expenses, profit, invoice metrics |\n| **Invoice Management** | Create, send, track, record payments |\n| **Expense Tracking** | Manual entry, CSV import, categorization |\n| **Transaction Ledger** | Full double-entry transaction history |\n| **Bank Statement Analyzer** | Upload PDF\u002FCSV, extract & categorize transactions |\n| **AI Financial Assistant** | RAG-based chatbot with real financial data context |\n| **AI Insights Engine** | Auto-detected anomalies, risks, opportunities |\n| **Cash Flow Forecasting** | Deterministic 3-month linear trend forecasts |\n| **Financial Reports** | P&L, Expense Summary, Revenue Trends (PDF\u002FExcel) |\n| **Settings & Security** | RBAC, audit logs, MFA, organization management |\n\n### Critical Design Principle\n> **AI NEVER calculates financial values.** All calculations are deterministic and performed by the backend using Prisma queries. AI only generates explanations, insights, and narratives based on the pre-calculated data.\n\n---\n\n## 🏗️ Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                    Next.js 15 App Router                 │\n├──────────────────────┬──────────────────────────────────┤\n│   Frontend (RSC)     │        API Routes                 │\n│  - Dashboard         │  - \u002Fapi\u002Fdashboard                 │\n│  - Invoices          │  - \u002Fapi\u002Finvoices                  │\n│  - Expenses          │  - \u002Fapi\u002Fexpenses                  │\n│  - AI Assistant      │  - \u002Fapi\u002Fai\u002Fchat (SSE streaming)   │\n│  - Cash Flow         │  - \u002Fapi\u002Fcash-flow                 │\n│  - Reports           │  - \u002Fapi\u002Freports                   │\n│  - Insights          │  - \u002Fapi\u002Finsights                  │\n└──────────────────────┴──────────────────────────────────┘\n           │                          │\n    Clerk Auth                  Prisma ORM\n           │                          │\n    PostgreSQL DB              OpenAI GPT-4o\n           │                          │\n    Qdrant Vector DB         RAG Pipeline\n```\n\n### RAG Pipeline\n```\nUser Question\n→ Intent Classification (GPT-4o-mini)\n→ Data Retrieval (Prisma queries = REAL numbers)\n→ Context Assembly\n→ OpenAI GPT-4o Response Generation\n→ Streaming SSE to Frontend\n```\n\n---\n\n## 📋 Tech Stack\n\n**Frontend**\n- Next.js 15 (App Router, RSC, Streaming)\n- TypeScript 5\n- Tailwind CSS + ShadCN UI components\n- Recharts (interactive financial charts)\n- React Query (server state management)\n- Zustand (client state)\n\n**Backend**\n- Next.js API Routes\n- Prisma ORM with PostgreSQL\n- Zod validation (all inputs)\n- Rate limiting via Redis when `REDIS_URL` is set (in-process fallback otherwise)\n- Redis-backed dashboard metrics cache with version invalidation on writes\n\n**AI**\n- OpenAI GPT-4o (assistant responses)\n- OpenAI text-embedding-3-small (embeddings)\n- RAG architecture for financial context\n- Qdrant vector database\n\n**Auth & Security**\n- Clerk Authentication (OAuth, MFA, RBAC)\n- OWASP Top 10 compliant\n- CSRF protection in middleware\n- SQL injection prevention (Prisma parameterized queries)\n- Complete audit logging\n\n---\n\n## 🗄️ Database Schema\n\n```\nOrganizations ──┬── OrganizationMembers ── Users\n                ├── Clients\n                ├── Vendors\n                ├── Categories\n                ├── Transactions ── Categories\n                ├── Invoices ─────┬── InvoiceItems\n                │                 └── Payments\n                ├── Expenses ── Categories\n                ├── BankStatements ── Transactions\n                ├── Reports\n                ├── AIChats ── AIChatMessages\n                ├── Insights\n                ├── CashFlowForecasts\n                ├── Notifications\n                ├── AuditLogs\n                └── Anomalies\n```\n\n---\n\n## 🔒 Security Implementation\n\n| Security Layer | Implementation |\n|----------------|---------------|\n| Authentication | Clerk JWT + MFA |\n| Authorization | RBAC (Admin\u002FAccountant\u002FEmployee\u002FViewer) |\n| CSRF Protection | Origin\u002FHost validation in middleware |\n| Rate Limiting | Per-IP sliding window (100 req\u002Fmin default) |\n| Input Validation | Zod schemas on all API endpoints |\n| SQL Injection | Prisma ORM parameterized queries |\n| XSS Prevention | Next.js built-in + CSP headers |\n| Audit Logging | All CRUD operations logged with user\u002FIP |\n| Sensitive Data | Prisma field-level encryption ready |\n| File Upload | Type validation, size limits, S3 signed URLs |\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Node.js 20+\n- PostgreSQL 16+\n- OpenAI API key\n- Clerk account\n\n### 1. Clone & Install\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fimchine\u002FFinTech-Solution.git\ncd finsight-ai\nnpm install\n```\n\n### 2. Environment Setup\n```bash\ncp .env.example .env.local\n# Fill in your API keys\n```\n\n### 3. Database Setup\n```bash\n# Apply schema\nnpx prisma migrate dev --name init\n\n# Generate client\nnpx prisma generate\n```\n\n### 4. Run Development\n```bash\nnpm run dev\n# Open http:\u002F\u002Flocalhost:3000\n```\n\n### 5. Docker (Full Stack)\n```bash\ndocker-compose up -d\n```\n\n### Redis (optional)\n\nRedis is optional but recommended for production and multi-instance deployments.\n\n```bash\ndocker compose up -d redis\n# set in .env.local:\nREDIS_URL=redis:\u002F\u002Flocalhost:6379\n```\n\nWhen `REDIS_URL` is set:\n\n- **Rate limiting** — shared across API routes (`\u002Fapi\u002Ftransactions`, `\u002Fapi\u002Finvoices`, `\u002Fapi\u002Fai\u002Fchat`, etc.)\n- **Dashboard cache** — metrics cached for 2 minutes; invalidated when transactions, expenses, or invoices change\n- **Health check** — `GET \u002Fapi\u002Fhealth` reports whether Redis is configured\n\nWithout Redis, rate limits and dashboard metrics use in-process behaviour only.\n\n---\n\n## 📁 Folder Structure\n\n```\nfinsight-ai\u002F\n├── src\u002F\n│   ├── app\u002F\n│   │   ├── (auth)\u002F          # Sign in\u002Fup pages (Clerk)\n│   │   ├── (dashboard)\u002F     # All protected dashboard pages\n│   │   │   ├── dashboard\u002F   # Main financial dashboard\n│   │   │   ├── invoices\u002F    # Invoice management\n│   │   │   ├── expenses\u002F    # Expense tracking\n│   │   │   ├── transactions\u002F# Transaction ledger\n│   │   │   ├── ai-assistant\u002F# AI chatbot interface\n│   │   │   ├── cash-flow\u002F   # Cash flow & forecasting\n│   │   │   ├── insights\u002F    # AI insights engine\n│   │   │   ├── reports\u002F     # Financial reports\n│   │   │   ├── bank-statements\u002F # Bank statement analyzer\n│   │   │   └── settings\u002F    # Account & org settings\n│   │   └── api\u002F             # All API routes\n│   ├── components\u002F\n│   │   ├── ui\u002F              # ShadCN UI components\n│   │   ├── charts\u002F          # Recharts wrappers\n│   │   ├── dashboard\u002F       # Dashboard-specific components\n│   │   ├── layout\u002F          # Sidebar, Header\n│   │   └── shared\u002F          # Providers, theme\n│   ├── lib\u002F\n│   │   ├── prisma.ts        # Database client\n│   │   ├── auth.ts          # Auth helpers & audit logging\n│   │   ├── openai.ts        # AI integration & RAG\n│   │   ├── financial-calculations.ts  # ALL financial math\n│   │   ├── validations.ts   # Zod schemas\n│   │   ├── rate-limit.ts    # API rate limiting\n│   │   └── utils.ts         # Utilities & formatters\n│   ├── middleware.ts         # Auth & security middleware\n│   └── types\u002F               # TypeScript types\n├── prisma\u002F\n│   └── schema.prisma        # Complete DB schema\n├── docker-compose.yml       # Full stack Docker setup\n├── Dockerfile               # Production container\n└── .env.example             # Environment template\n```\n\n---\n\n## 📊 API Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `\u002Fapi\u002Fhealth` | Health check |\n| GET | `\u002Fapi\u002Fdashboard` | Dashboard metrics |\n| GET | `\u002Fapi\u002Fdashboard\u002Ftrends` | Monthly trends |\n| GET | `\u002Fapi\u002Fdashboard\u002Fcategories` | Expense categories |\n| GET\u002FPOST | `\u002Fapi\u002Finvoices` | List\u002Fcreate invoices |\n| GET\u002FPATCH\u002FDELETE | `\u002Fapi\u002Finvoices\u002F[id]` | Invoice operations |\n| GET\u002FPOST | `\u002Fapi\u002Fexpenses` | List\u002Fcreate expenses |\n| GET\u002FPOST | `\u002Fapi\u002Ftransactions` | List\u002Fcreate transactions |\n| POST | `\u002Fapi\u002Fai\u002Fchat` | AI chat (SSE streaming) |\n| GET | `\u002Fapi\u002Fai\u002Fchat` | Chat history |\n| GET | `\u002Fapi\u002Fcash-flow` | Historical + forecasts |\n| GET\u002FPOST | `\u002Fapi\u002Freports` | Report management |\n| GET | `\u002Fapi\u002Finsights` | AI insights |\n\n---\n\n## 🚢 Deployment\n\n### Vercel (Frontend)\n```bash\nvercel deploy --prod\n```\n\n### Environment Variables (Production)\nSet all variables from `.env.example` in your deployment platform.\n\n### Database Migration (Production)\n```bash\nnpx prisma migrate deploy\n```\n\n---\n\n## 🧪 Testing Strategy\n\n- **Unit Tests**: Financial calculation functions (Jest)\n- **Integration Tests**: API routes with Prisma mocks\n- **E2E Tests**: Playwright for critical user flows\n- **Security Tests**: OWASP ZAP scanning\n- **Load Tests**: k6 for API performance\n\n---\n\n## 📈 Performance\n\n- Server-side rendering for initial dashboard load\n- React Query caching (60s stale time)\n- Optimized Prisma queries with proper indexes\n- Streaming AI responses (SSE)\n- Image optimization via Next.js\n- Lazy loading of chart components\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make changes with tests\n4. Submit a PR\n\n---\n\n## 📄 License\n\nMIT License — see LICENSE file.\n\n---\n\n**Built with ❤️ for SMEs worldwide**\n","FinSight AI 是一款面向中小企业的AI增强型财务智能SaaS平台，提供实时财务仪表盘、发票与费用管理、银行对账分析、现金流预测及自动化财务报告等功能。其核心特点是采用RAG架构的AI财务助手——所有财务计算（如利润、现金流）均由后端Prisma+PostgreSQL确定性执行，AI仅基于真实数据生成解释、洞察与自然语言报告；技术栈基于Next.js 15、TypeScript和GPT-4o。适用于小微企业财务数字化、记账自动化、经营分析辅助及非专业财务人员的决策支持场景。",2,"2026-07-10 02:30:27","CREATED_QUERY"]