尚未检测到更新。GitHub 发布版本后会显示在这里。
Internal launchpad for TGPM property management tools
翻译准备中
正在加载完整 README。 以下为已保存的摘录。
TGPM Armory is an internal launchpad for TGPM property management tools. It is a standalone tool hub built with Next.js, TypeScript, and Tailwind CSS, and is designed for deployment on Vercel.查看完整 README ↗TGPM Armory is an internal launchpad for TGPM property management tools. It is a standalone tool hub built with Next.js, TypeScript, and Tailwind CSS, and is designed for deployment on Vercel.
src/config/tools.tsInstall dependencies:
npm install
Start the development server:
npm run dev
Open http://localhost:3000 in your browser.
Create .env.local for AI analysis:
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4.1-mini
OPENAI_MODEL is optional. The app defaults to gpt-4.1-mini.
The Property Health Analyzer still parses CSV files and calculates dashboard totals without an API key. The API key is only required when you click Generate AI analysis.
/legal-intake)Requires Supabase, OpenAI, Resend, and alert recipients:
SUPABASE_URL=...
SUPABASE_SERVICE_KEY=...
OPENAI_API_KEY=...
RESEND_API_KEY=...
LEGAL_EMAIL_FROM="TGPM Legal Intake <[email protected]>"
[email protected],[email protected],[email protected]
NEXT_PUBLIC_APP_URL=https://your-armory-domain.vercel.app
CRON_SECRET=optional_shared_secret
Apply supabase/migrations/20261009190000_legal_intake_tables.sql to your Supabase project (creates legal_* tables and private storage bucket legal-intake-docs).
Schedule reminders and public docket checks by calling GET /api/legal-intake/cron daily (Bearer CRON_SECRET when set). On Vercel Hobby, use an external scheduler if you already consume the single Vercel Cron slot. Within 7 days of a court date, reminder emails are sent every other day automatically.
Open http://localhost:3000/property-health-analyzer.
For this MVP, there is no database storage. The CSV is parsed in the browser and deterministic calculations are performed in TypeScript before a compact calculated report is sent to the OpenAI API route. The AI is instructed to analyze only the supplied totals, category breakdowns, monthly trends, and sampled categorized rows.
Export a single-property General Ledger detail CSV from AppFolio with these fields when available:
DatePayee / PayerDebitCreditDescriptionGL AccountProperty AddressMonthQuarterYearRemarksUnit IDThe parser accepts common variants such as Account, GL Account, Property, Property Name, Property Address, Payee, and Payee / Payer. Balance sheet rows such as cash, prepaid rent, security deposits, and escrow accounts are categorized but excluded from operating expense totals to avoid double counting double-entry GL activity.
Ledger rows are mapped in src/lib/property-health.ts into:
Maintenance rows are additionally subcategorized into HVAC, plumbing, roof, lawn, appliance, electrical, pest, turnover, cleaning, general repair, and other.
The Load starter CSV button reads public/sample-general-ledger.csv when present. This is intended for local testing with a known AppFolio export shape.
The next phase should move from one-off uploads to quarterly and live AppFolio ingestion:
Edit src/config/tools.ts to add, remove, rename, or update tool cards. Each tool includes:
namedescriptioncategoryurlPlaceholder URLs use https://example.com/... for now.
Run linting:
npm run lint
Create a production build:
npm run build
npm run build.No environment variables are required for the placeholder version.