SheetPredict turns a spreadsheet into a validated, explained, deployable model in minutes — and shows its work.
It is an AI-guided platform for analysts who are not ML engineers: upload a CSV or Excel file, and a guided workflow takes it through profiling, preparation, feature selection, AutoML training, evaluation, prediction and deployment, without writing code.
Eight guided stages (apps/frontend/lib/types/workflow.ts):
- Data loading. CSV/XLSX upload (100 MB cap, chunked for large files), PII scanning on the in-app upload, and sample datasets for onboarding.
- Data profiling. Column statistics, charts, data-quality issues with suggested fixes, and an AI summary.
- Data preparation. A visual pipeline of the four transformations the engine runs (remove duplicates, trim whitespace, drop missing, fill missing), with preview, undo/redo, version history and exportable Python code.
- Feature engineering. Choose features, with identifiers, dates and empty columns detected and excluded automatically.
- Model training. AutoML over several algorithms with optional tuning, bounded per plan tier.
- Model evaluation. Leaderboard against a baseline, metrics, SHAP explanations and a model report that states only what was recorded.
- Prediction. Single-record and batch predictions that warn on unseen or missing inputs.
- Deployment. A REST endpoint secured by API keys and rate limits, drift monitoring, a generated SDK, and self-contained Python/Docker exports.
Every AI feature has a rule-based fallback, so the app works without an OpenAI key. Billing (Stripe) is optional: without keys every account runs on the free tier.
Not supported yet: database or cloud-storage connectors, multi-file joins, uploads above 100 MB.
apps/
backend/ FastAPI API: datasets, transformations, training, serving, billing
frontend/ Next.js app (App Router, NextAuth v5, Tailwind v4)
mcp/ MCP server exposing the EDA summary tool to the backend
docs/
adr/ Architecture decision records (billing, plan limits and pricing)
dev/ Local development, backend test infrastructure, E2E testing
ops/ Staging deployment, credential rotation, erasure/backup, artifact integrity
product/ Positioning and public-surface decisions
scripts/ Local setup, deploy, CI, quality-gate and ops scripts
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS 4, NextAuth v5 (Google and GitHub sign-in), Jest, Playwright
- Backend: Python 3.13, FastAPI, Pydantic, Beanie (MongoDB ODM), pandas, scikit-learn, XGBoost, LightGBM, SHAP, Optuna
- Data: MongoDB, Redis (optional: cache and shared rate limiting; without it the limiter is process-local), S3 (LocalStack locally)
- AI: OpenAI, behind a circuit breaker, per-tenant quotas and a global daily ceiling
- Tooling: uv, npm, Docker, GitHub Actions
Prerequisites: Docker, Python 3.13 with uv, and Node ^22.13.0 || >=24.
# MongoDB on :27017 and LocalStack S3 on :4566, with the dev bucket created
./scripts/local-setup.sh
# Backend on :8000
cd apps/backend
cp .env.example .env # then apply the Mongo overrides in docs/dev/LOCAL_DEVELOPMENT.md
uv sync
uv run uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
# Frontend on :3000 (in a second shell)
cd apps/frontend
cp .env.local.example .env.local # NEXTAUTH_SECRET must equal the backend's
npm install
npm run devapps/backend/.env.example sets SKIP_AUTH=true, which maps every request to a single dev user. The backend refuses to start with it unless ENVIRONMENT is development or test. docs/dev/LOCAL_DEVELOPMENT.md has the full setup, including real sign-in locally.
# Backend: the PR gate (needs MongoDB on :27017)
cd apps/backend && PYTHONPATH=. uv run pytest tests/ -m "not integration and not performance"
# Frontend
cd apps/frontend && npm test && npm run type-check && npm run lint
# E2E against the real stack
cd apps/frontend && npm run test:e2e:smoke
# MCP server
cd apps/mcp && uv run pytest tests/.github/workflows/ci.yml runs all of these on every pull request; CI Success is the required check. See docs/dev/TEST_INFRASTRUCTURE.md and docs/dev/E2E_TESTING_GUIDE.md.
main deploys to staging with .github/workflows/deploy.yml, using docker-compose.staging.yml behind nginx (nginx-staging.conf). The environment templates are .env.staging.example and .env.production.example at the repo root. Runbooks are in docs/ops/, starting with STAGING_DEPLOYMENT_GUIDE.md.
Conventions, architecture rules and the guard tests that enforce them are in CLAUDE.md. Work on a feature branch and open a pull request against main.
Licensed under the Apache License, Version 2.0. See NOTICE for attribution.
Copyright © 2025-2026 Noatak Enterprises, LLC, dba Bria Strategy Group
Frank Bria · frankbria.com · @FrankBria18044