QA Flow is a monorepo with a React + Vite frontend, an Express backend, and a CLI package — all managed withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/davidG97/qa-flow/llms.txt
Use this file to discover all available pages before exploring further.
pnpm workspaces. The development server starts both the frontend (port 3000) and the backend (port 3001) concurrently with hot-reload enabled for both, so you can iterate quickly without rebuilding manually.
Prerequisites
Before you begin, make sure the following tools are installed on your machine:Node.js 18+
Required for running the development servers and build tools. Download from nodejs.org or use a version manager like
nvm.pnpm
The package manager used across the monorepo. Install globally with
npm install -g pnpm.Git
Required for cloning the repository and following the contribution workflow.
Docker (optional)
Not required for local development, but useful for testing the production container image locally using
docker-compose.dev.yml.Setup Steps
Fork and clone the repository
Fork the qa-flow repository on GitHub, then clone your fork locally. Adding the upstream remote lets you pull in future changes from the main repository.
Install dependencies
Install all workspace dependencies with
pnpm. The approve-builds step is required to approve native module build scripts — press a to select all, then y to confirm.The
approve-builds prompt appears because packages like Playwright include post-install scripts that compile native binaries. You only need to run this once after the initial install or after adding new dependencies.Configure the database
Copy the example environment file and run the database migrations. The The default configuration in
db:generate command creates the type-safe Prisma client from the schema..env.example uses a local SQLite file at server/data/qa-flow.db. No additional database setup is required for local development.Start the development server
The Both servers support hot-reload. Frontend changes are reflected instantly in the browser; backend changes restart the Express server automatically.
dev:all script starts both the Vite dev server (frontend) and the Node.js Express server (backend) in a single terminal using concurrently.Open the application
Navigate to http://localhost:3000 in your browser. The frontend at port
3000 proxies API requests to the backend at port 3001 automatically — you don’t need to open port 3001 directly during development.Log in with the default development credentials: admin@qaflow.com / admin123.Project Structure
Understanding where things live helps you navigate the codebase quickly. QA Flow is organised into three main areas: the React frontend (src/), the Express backend (server/), and the npx launcher CLI (packages/cli/).
Frontend architecture details
Frontend architecture details
The frontend is built with React and Vite. The canvas editor is powered by React Flow, with each node type implemented as a memoised functional component in
src/components/. State management for the test graph lives in custom hooks under src/hooks/. API calls are centralised in src/services/ so the rest of the app stays free of fetch calls.Backend architecture details
Backend architecture details
The backend is an Express application written in TypeScript. Each API resource has a corresponding controller in
src/controllers/ (HTTP layer) and a service in src/services/ (business logic). Routes are registered in src/routes/. Prisma ORM handles all database access; the schema lives at server/prisma/schema.prisma.Available Scripts
All scripts are run from the repository root usingpnpm:
| Script | Description |
|---|---|
pnpm dev:all | Start frontend (port 3000) and backend (port 3001) concurrently |
pnpm dev | Start frontend only (port 3000) |
pnpm server | Start backend only (port 3001) |
pnpm build | Build the frontend for production |
pnpm build:all | Build all packages for production |
pnpm test | Run the test suite |
pnpm db:migrate | Apply pending database migrations |
pnpm db:generate | Regenerate the Prisma client after schema changes |
pnpm db:studio | Open Prisma Studio — a visual GUI for browsing the database |
Database Commands Reference
Need Help?
If you run into problems during setup, check these resources:GitHub Discussions
Ask questions and share ideas with the community.
Issue Tracker
Search for known issues or file a new bug report.
Contributing Guidelines
Read the full contribution guide before opening your first PR.