Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A production-ready property wholesaling CRM with AI-assisted texting, lead scoring, and comps integration.查看完整 README ↗A production-ready property wholesaling CRM with AI-assisted texting, lead scoring, and comps integration.
fast-homes-crm/
├── apps/
│ ├── api/ # NestJS backend
│ └── web/ # Next.js frontend
├── packages/
│ └── shared/ # Shared types & utilities
├── docker-compose.yml
└── README.md
Backend:
Frontend:
New contributor? See CONTRIBUTING.md for the full onboarding guide: access, environment setup, the branch/PR workflow, and the house rules.
# Install pnpm globally if needed
npm install -g pnpm
# Install all dependencies
pnpm install
# Start PostgreSQL and Redis
docker-compose up -d
# Wait for health checks
docker-compose ps
# Copy example env file
cp apps/api/.env.example apps/api/.env
# Edit apps/api/.env with your credentials:
# - DATABASE_URL (default is fine for local)
# - TWILIO credentials (SMS provider; set SMS_TEST_MODE=true locally)
# - ANTHROPIC_API_KEY (powers all AI features)
# - RENTCAST_API_KEY / ATTOM_API_KEY (optional, for real comps)
# Generate Prisma client
cd apps/api
pnpm prisma generate
# Run migrations
pnpm prisma migrate dev
# Seed demo data
pnpm prisma db seed
cd ../..
# Terminal 1: Start API (port 3001)
cd apps/api
pnpm dev
# Terminal 2: Start Web (port 3000)
cd apps/web
pnpm dev
Challenge (0-3): Property distress level
Authority (0-3): Decision-making power
Money (0-3): Price/ARV ratio
Priority (0-3): Timeline urgency
---
Total (0-12): Sum of all categories
Bands:
0-3: Dead/Cold
4-6: Workable
7-9: Hot
10-12: Strike Zone
POST /leads - Create leadGET /leads - List leads (with filters)GET /leads/:id - Get lead detailsPATCH /leads/:id - Update leadPOST /leads/:id/tasks - Create taskPOST /leads/:id/notes - Add notePOST /leads/:id/contract - Create/update contractGET /leads/:id/messages - Get conversationPOST /leads/:id/messages/draft - Generate AI draftsPOST /leads/:id/messages/send - Send message via TwilioPOST /leads/:id/messages/rescore - Force rescorePOST /leads/:id/comps - Fetch compsGET /leads/:id/comps - Get stored compsPOST /webhooks/propertyleads - PropertyLeads ingestionPOST /webhooks/google-ads - Google Ads/landing pagePOST /webhooks/twilio/inbound - Twilio inbound SMSPOST /webhooks/twilio/status - Twilio delivery statusGET /dashboard/stats - Overview statisticsGET /dashboard/activity - Recent activityGET /dashboard/tasks - Upcoming tasksGET /dashboard/hot-leads - Top scored leadsPOST /auth/login - LoginPOST /auth/register - RegisterGET /auth/me - Get current userWhen clicking "Draft Message", the system generates 3 variations:
User selects/edits before sending (human-in-the-loop).
On each inbound message, AI extracts:
These update the lead and trigger auto-rescoring.
Keywords like "STOP", "UNSUBSCRIBE" automatically mark leads as DNC.
Comps and ARV come from a fallback chain: RentCast, then ChatARV, then
placeholder. RentCast is the primary source (GET /avm/value returns ARV plus
comparables in one call, cached 24h). ATTOM is available as an explicit comp
source and powers Deal Search. Set the keys you use in .env:
RENTCAST_API_KEY="your-api-key"
ATTOM_API_KEY="your-api-key"
CHATARV_API_KEY="your-api-key" # optional
If no comp provider is configured, the system generates realistic placeholder comps for demo/development.
https://your-domain.com/webhooks/twilio/inbound.env:TWILIO_ACCOUNT_SID="ACxxxxx"
TWILIO_AUTH_TOKEN="your-token"
TWILIO_PHONE_NUMBER="+15555551234"
All AI features (message drafts, signal extraction, CAMP scoring, ARV, foreclosure parsing) run on Claude. Without this key the app falls back to non-AI templates.
ANTHROPIC_API_KEY="sk-ant-xxxxx"
Configure webhook endpoint: https://your-domain.com/webhooks/propertyleads
# Run API tests
cd apps/api
pnpm test
# Test scoring engine
pnpm test scoring.service
# Test webhook handlers
pnpm test webhooks.controller
# Database
DATABASE_URL="postgresql://user:pass@host:5432/db"
# Security
JWT_SECRET="generate-strong-secret"
# APIs
TWILIO_ACCOUNT_SID="..."
TWILIO_AUTH_TOKEN="..."
TWILIO_PHONE_NUMBER="..."
ANTHROPIC_API_KEY="..."
RENTCAST_API_KEY="..."
MAILGUN_API_KEY="..."
# Frontend URL (for CORS)
FRONTEND_URL="https://your-domain.com"
See apps/api/.env.example for the full, authoritative list of variables.
Deploys are automatic. Merging to master triggers a production deploy: Railway
builds and runs the API (plus Postgres and Redis), Vercel builds the web
frontend. Schema changes require a committed Prisma migration file, or Railway's
prisma migrate deploy silently no-ops and production drifts. See
CONTRIBUTING.md for the branch and PR workflow.
# Build API
cd apps/api
docker build -t fast-homes-api .
# Build Web
cd apps/web
docker build -t fast-homes-web .
cd apps/api
pnpm prisma migrate deploy
The frontend is fully responsive and works on mobile devices.
JWT_SECRET in productionTWILIO_VALIDATE_WEBHOOKS=true)# Check containers
docker-compose ps
# Restart
docker-compose down
docker-compose up -d
cd apps/api
pnpm prisma generate
Change ports in:
apps/api/src/main.ts (API)apps/web/package.json dev script (Web)docker-compose.yml (Database)MIT
For issues or questions, please open a GitHub issue or contact the development team.
Built with ❤️ for property wholesalers