A modern SaaS platform helping small businesses migrate from QuickBooks Desktop to cloud-based solutions.
β’ Live Demo β’ Frontend Repo β’ Backend Repo
Escape Ramp is a comprehensive SaaS platform that helps small businesses migrate from QuickBooks Desktop to cloud-based solutions. Built with modern web technologies, it provides an intuitive interface for AI-powered migration assistance, document processing, and real-time progress tracking.
- π€ AI-Powered Intake Assistant - Conversational onboarding flow
- π Document Upload & Processing - Drag-and-drop file handling
- π Historical Data Tracker - Complete audit trail and analytics
- π§ Support Portal - Integrated help desk and live chat
- π Real-time Dashboard - Migration progress and analytics
- π Secure Authentication - Supabase Auth integration
This repository contains the original monorepo structure. For production use, we recommend using our split repositories:
- Frontend Repository - Next.js UI components and pages
- Backend Repository - API routes and Python microservices
- Node.js 18+
- npm or yarn
- Supabase account
- Anthropic API key
# Clone the repository
git clone https://github.com/BTheCoderr/escape-ramp.git
cd escape-ramp
# Install dependencies
npm install
# Set up environment variables
cp env.example .env.local
# Edit .env.local with your configuration
# Start development server
npm run devOpen http://localhost:3000 to view the application.
Create a .env.local file with the following variables:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# AI Services
ANTHROPIC_API_KEY=your_anthropic_api_key
OPENAI_API_KEY=your_openai_api_key
# QuickBooks Integration
QUICKBOOKS_CLIENT_ID=your_quickbooks_client_id
QUICKBOOKS_CLIENT_SECRET=your_quickbooks_client_secret
QUICKBOOKS_REDIRECT_URI=your_redirect_uri
# Email Service
RESEND_API_KEY=your_resend_api_key
# Payment Processing
STRIPE_SECRET_KEY=your_stripe_secret_key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_keyescape-ramp/
βββ src/
β βββ app/ # Next.js App Router
β β βββ api/ # API routes
β β β βββ intake/ # Intake form API
β β β βββ upload/ # File upload API
β β β βββ progress/ # Progress tracking API
β β β βββ transactions/ # Transaction CRUD
β β β βββ audit/ # Audit trail
β β β βββ support/ # Support portal APIs
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Main page
β βββ components/ # React components
β β βββ Dashboard.tsx # Main dashboard
β β βββ AIAssistant.tsx # AI-powered intake
β β βββ DocumentUpload.tsx # File upload
β β βββ HistoricalDataTracker.tsx # Data tracking
β β βββ SupportPortal.tsx # Support system
β β βββ Navigation.tsx # Sidebar navigation
β βββ lib/ # Utility libraries
β βββ types.ts # TypeScript types
β βββ store.ts # Zustand store
β βββ supabase.ts # Supabase client
β βββ ai-service.ts # AI service integration
β βββ quickbooks-parser.ts # QB data parsing
β βββ utils.ts # Utility functions
βββ python-service/ # Python microservices
β βββ invoice_parser.py # Invoice parsing service
β βββ requirements.txt # Python dependencies
β βββ README.md # Python service docs
βββ demo-data/ # Sample QuickBooks data
βββ *.sql # Database schemas
βββ README.md
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript checkcd python-service
pip install -r requirements.txt
uvicorn invoice_parser:app --reload --port 8000POST /api/intake- Process intake formsGET /api/intake- Retrieve intake data
POST /api/upload- Upload and process filesGET /api/upload- Retrieve file metadata
GET /api/progress- Get migration statusPUT /api/progress- Update progress
GET /api/transactions- List transactionsPOST /api/transactions- Create transactionPUT /api/transactions/:id- Update transactionDELETE /api/transactions/:id- Delete transaction
GET /api/support/tickets- List support ticketsPOST /api/support/tickets- Create ticketPUT /api/support/tickets/:id- Update ticketGET /api/support/messages- Get messagesPOST /api/support/messages- Send message
POST /parse-invoice- Parse invoice with AIPOST /parse-document- Parse any documentGET /health- Health check
intake_form- User intake datamigration_status- Migration progressdocuments- File metadataparsed_invoices- Extracted invoice data
transactions- Financial transactionstransaction_changes- Change trackingaudit_events- System audit traildata_snapshots- Data versioning
support_tickets- Help ticketssupport_messages- Ticket messagessupport_attachments- File attachmentssupport_knowledge_base- Help articles
- Intake form analysis
- Migration planning
- Customer support
- Invoice parsing
- Document processing
- Data validation
- CSV/IIF file parsing
- Data validation
- Migration mapping
- Connect your GitHub repository to Vercel
- Configure environment variables
- Deploy automatically on push to main
- Import your GitHub repository
- Set build command:
npm run build - Set publish directory:
.next
cd python-service
railway login
railway init
railway up- Supabase Auth integration
- JWT token validation
- Role-based access control
- Row Level Security (RLS)
- Encrypted data storage
- Secure file uploads
- Rate limiting
- Input validation
- CORS configuration
-
Build Errors
# Clear cache and reinstall rm -rf node_modules .next npm install npm run build -
Environment Variables
- Ensure all required variables are set
- Check for typos in variable names
- Restart development server after changes
-
Supabase Connection
- Verify URL and keys are correct
- Check network connectivity
- Review Supabase dashboard for errors
This project is proprietary software. All rights reserved.
See CONTRIBUTING.md for contribution guidelines.
- Baheem - Project Lead & Full Stack
- Dante - Frontend UI/UX
- Thomas - Backend API/Database
- Pio - DevOps & Infrastructure
- Sean - AI/ML Integration
- Adrian - Testing & Quality Assurance
Built with β€οΈ by the Escape Ramp Team