Chapter 01 · LLM Basics Foundations Track Full-stack Project

Paste a requirement, get Jira-ready test cases from a model on your own laptop.

The first hands-on build of the blueprint: a React + Node.js (TypeScript) app that turns any Jira requirement into structured functional and non-functional test cases, with a provider switch that swaps between local Ollama and cloud LLMs in one click.

01 What students build

A chat-style test case generator built with an AI coding agent (Antigravity) from a wireframe. The Express backend holds one strict system prompt that forces Jira ticket format (Summary, Type, Pre-conditions, Steps, Expected Result, Priority), and a provider layer speaks to Ollama, LM Studio, Groq, OpenAI, Claude and Gemini. Everything, including chat history, is stored locally in SQLite.

Provider Switch

One dropdown swaps the same prompt between a local llama3.1 on Ollama and cloud models on Groq, OpenAI, Claude or Gemini, so students feel the speed/cost/quality trade-off.

Strict Jira Format

A hardened system prompt bans conversational filler and forces every case into the same ticket template, ready to paste into Jira or export.

Local History

Settings, API keys and every generated session live in a local SQLite file. Nothing leaves the machine unless you pick a cloud provider.

02 Architecture

RequirementJira story paste
──▶
React UIchat + settings
──▶
Express APIsystem prompt
──▶
Provider Switch6 LLM backends
──▶
LLMOllama · Groq · Claude
──▶
Test CasesJira format
──▶
SQLitehistory + keys
ollama · lm studio · groq · openai · claude · gemini

03 Live demo (simulated with sample data)

This is a UI walkthrough with pre-baked sample data so you can feel the product without running the backend. In the course you run the real thing locally: Vite React + Express + your own Ollama model.

testgen-buddy · localhost:5173 demo · sample data

04 Inputs & outputs

What goes in

  • Jira requirement or user story, pasted into the chat box
  • Provider choice: Ollama, LM Studio, Groq, OpenAI, Claude, Gemini
  • API keys and base URLs via the Settings panel (Test Connection built in)
  • Test type focus: web app or API, functional plus non-functional

What comes out

  • 6-10 test cases in strict Jira ticket format
  • Mix of functional, negative, edge and non-functional cases
  • Each with pre-conditions, numbered steps, expected result, priority
  • Saved session history in local SQLite for later reuse

05 How it's built

Sketch the wireframe (history sidebar, chat pane, settings drawer) and hand it to the Antigravity coding agent with a phased task plan.
Scaffold a Vite React frontend and an Express + TypeScript backend with a local SQLite store.
Write the system prompt that locks output into Jira ticket format and bans filler text.
Implement the provider layer: Ollama and LM Studio over local HTTP, Groq via the OpenAI-compatible endpoint, plus OpenAI, Claude and Gemini SDKs.
Add the Settings panel with per-provider keys and a Test Connection button.
Verify: same requirement across providers, compare speed, cost and case quality.

06 Tech stack

React + ViteNode.js · Express · TypeScriptSQLiteOllama (local)LM StudioGroqOpenAI · Claude · Gemini SDKsAntigravity agent build