{"id":50539144,"url":"https://github.com/bogdusik/ai-qa-assistant","last_synced_at":"2026-06-03T19:01:07.762Z","repository":{"id":359195040,"uuid":"1191527566","full_name":"Bogdusik/AI-QA-Assistant","owner":"Bogdusik","description":"AI-powered QA artifact generator with a human-in-the-loop review workflow, quality analysis and coverage tracking. Built with Next.js, Prisma, PostgreSQL, NextAuth, and OpenAI.","archived":false,"fork":false,"pushed_at":"2026-05-20T19:44:43.000Z","size":231,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-21T01:14:10.510Z","etag":null,"topics":["nextjs","openai","postgresql","qa-testing","test-cases","typescript"],"latest_commit_sha":null,"homepage":"https://ai-qa-assistant-lyart.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bogdusik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-25T10:33:20.000Z","updated_at":"2026-05-20T19:44:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Bogdusik/AI-QA-Assistant","commit_stats":null,"previous_names":["bogdusik/ai-qa-assistant"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Bogdusik/AI-QA-Assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bogdusik%2FAI-QA-Assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bogdusik%2FAI-QA-Assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bogdusik%2FAI-QA-Assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bogdusik%2FAI-QA-Assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bogdusik","download_url":"https://codeload.github.com/Bogdusik/AI-QA-Assistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bogdusik%2FAI-QA-Assistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","openai","postgresql","qa-testing","test-cases","typescript"],"created_at":"2026-06-03T19:01:06.411Z","updated_at":"2026-06-03T19:01:07.733Z","avatar_url":"https://github.com/Bogdusik.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI QA Assistant\n\nAI QA Assistant is an AI-powered QA artifact generator for real-world workflows. It transforms raw requirements and feature descriptions into structured artifacts (Test Cases, Checklists, Bug Report drafts, API Test Ideas) with a mandatory human-in-the-loop review flow and explainability.\n\nDemo Mode is available instantly for recruiters/interviewers via a **read-only Demo Project**.\n\n## Demo\n\nYou can explore the app without creating an account:\n\n- `/demo/test-cases`\n- `/demo/checklist`\n- `/demo/bug-report`\n- `/demo/api-ideas`\n\n## Why It's Cool\n\n- Human-in-the-loop review: generated items start as `PENDING` and can be `ACCEPTED` or `REJECTED`\n- Coverage + Quality Analyzer: score, strengths/weaknesses/suggestions, plus explainability persisted in PostgreSQL\n- Improve with AI: generate upgrades using AI and preview changes before applying\n- Traceability: every artifact includes evidence/assumptions/risk notes for justification\n- Export-ready: exports are generated from **ACCEPTED** items only (Markdown/CSV/plain text depending on artifact type)\n- Guest mode with usage limits + generator lock-in for the first chosen generator type\n\n## Tech Stack\n\n- Frontend: Next.js 15 (App Router), React, TypeScript, Tailwind CSS\n- Backend: Next.js Route Handlers + Zod validation\n- Database: PostgreSQL + Prisma ORM (migrations + seed)\n- Auth: NextAuth Credentials provider + guest sessions\n- AI: OpenAI API (centralized in `lib/ai/service.ts`)\n\n## How to Run Locally\n\n### 1) Clone the repository\n\n```bash\ngit clone https://github.com/Bogdusik/AI-QA-Assistant.git\ncd AI-QA-Assistant\n```\n\n### 2) Install dependencies\n\n```bash\nnpm ci\n```\n\n### 3) Configure environment variables\n\nCreate your local env file:\n\n```bash\ncp .env.example .env\n```\n\nThen update `.env` with your own PostgreSQL + OpenAI credentials.\n\n### 4) Set up the database (Prisma)\n\nGenerate Prisma client:\n\n```bash\nnpm run prisma:generate\n```\n\nRun migrations (development):\n\n```bash\nnpm run prisma:migrate\n```\n\nSeed demo data:\n\n```bash\nnpm run prisma:seed\n```\n\n### 5) Start the app\n\n```bash\nnpm run dev\n```\n\nOpen:\n\n- App: http://localhost:3000\n- Demo: http://localhost:3000/demo\n\nImportant: Never hardcode secrets. Do not commit `.env` to GitHub.\n\n## Deploying to Vercel\n\n### 1) Connect the repo\n\nIn Vercel: GitHub → select `Bogdusik/AI-QA-Assistant` → branch `main`.\n\n### 2) Add Environment Variables\n\nSet the same values as in your `.env` (without committing them), specifically:\n\n- `DATABASE_URL`\n- `OPENAI_API_KEY`\n- `AUTH_SECRET`\n- `NEXTAUTH_URL`\n- `UPLOAD_DIR`\n- `GUEST_USAGE_LIMIT`\n\n### 3) Vercel build commands\n\nRecommended settings:\n\n- **Install Command**: `npm ci`\n- **Build Command**: `npm run build:vercel`\n\n`build:vercel` runs:\n\n1. `prisma generate`\n2. `prisma migrate deploy`\n3. `prisma seed`\n4. `next build`\n\n## Snyk / Security (MVP Notes)\n\n- All user inputs are validated on API routes using Zod.\n- Updates/exports are guarded with ownership checks (and Demo mode is read-only).\n- Secrets are stored in environment variables, not in code.\n- AI outputs are schema-validated and normalized before persisting.\n\n## Project Structure\n\n```txt\nAI-QA-Assistant/\n├── app/                    # Next.js routes (App Router)\n├── components/            # Reusable UI + layout\n├── features/             # Feature-specific UI/data\n├── lib/                  # AI, auth, DB, exports, file handling\n├── prisma/               # schema + migrations + seed\n├── uploads/              # runtime upload storage (local-only in MVP)\n└── [config files]       # next.config, tsconfig, tailwind config\n```\n\n## Documentation\n\n- API + real endpoint examples are in the `API Practice Pack` page: `/api-practice`\n- SQL + QA-focused SQL exercises use the real Prisma models: `/sql-practice`\n\n## What I Learned\n\n- Full-stack TypeScript with type-safe inputs and validated AI responses\n- Human-in-the-loop UX patterns for reviewable AI outputs\n- Reliable Prisma workflow: migrations + seed + explainability persistence\n\nFork it, use it, improve it - open to PRs!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbogdusik%2Fai-qa-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbogdusik%2Fai-qa-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbogdusik%2Fai-qa-assistant/lists"}