This guide walks you through cloning Buildml, wiring up the required services, seeding the database, and launching the development server. By the end you will have a fully functional local instance — including Google OAuth sign-in and sample AI/ML challenges ready to solve.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Praashh/buildml/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Make sure the following are installed and available in yourPATH before you begin:
- Bun — used as the package manager and script runner (
bun install,bun run dev) - Node.js — required by the Next.js runtime (Bun ships a compatible version; install separately if needed)
- PostgreSQL — a running database server (local install, Docker, or a cloud provider such as Neon or Supabase)
- Google OAuth credentials — a Client ID and Client Secret from Google Cloud Console (needed for NextAuth.js sign-in)
- Python 3.10+ — required to run the FastAPI executor service that sandboxes and evaluates user code
The FastAPI executor service runs as a separate process from the Next.js application. It must be reachable at the URL you set in
EXECUTOR_URL (default: http://localhost:8000). Submissions will not execute until this service is running. Refer to the executor’s own README for startup instructions.Setup
Install dependencies
Bun resolves and installs all Node dependencies, then automatically runs
prisma generate via the postinstall hook to produce the typed Prisma client.Configure environment variables
Copy the example file and open it in your editor:Fill in every value listed below. The application uses
@t3-oss/env-nextjs with Zod to validate these at startup — missing or malformed values will cause a clear error message rather than a silent failure.DEPLOYMENT_URL in src/env.js is populated from process.env.NEXT_PUBLIC_DEPLOYMENT_URL at runtime. Always set NEXT_PUBLIC_DEPLOYMENT_URL in your .env file — not a variable named DEPLOYMENT_URL.Push the database schema
Apply the Prisma schema to your PostgreSQL database. Use When you are ready to generate versioned migration files (for example, before a production deploy), use
db:push for local development and prototyping — it syncs the schema without creating a migration file.db:generate instead:Seed sample data
Buildml ships three seed scripts that populate the database with real challenge content:
Run each script with Bun:
| Script | Content |
|---|---|
prisma/seed.ts | Core seed data and initial Problem Sets |
prisma/seed-numpy.ts | NumPy Fundamentals challenge set |
prisma/seed-nn.ts | Neural Networks challenge set |
Open the app
Navigate to http://localhost:3000 in your browser. Sign in with Google and start solving challenges.