Summary
Merge dev_v2 into main to ship PrepEdge AI v2 — the monorepo refactor that replaces the legacy client/ + server/ layout with a workspaces-based architecture.
This release bundles five merged PRs on dev_v2:
| PR |
Branch |
Scope |
| #90 |
chore/monorepo-setup |
npm workspaces root config |
| #91 |
feat/shared-schemas |
@prepedge/shared Zod schemas & constants |
| #92 |
refactor/api-v2 |
Backend migrated to apps/api |
| #93 |
refactor/web-v2 |
Frontend migrated to apps/web |
| #94 |
chore/ci-deploy |
CI pipeline, Dependabot, Render config |
Motivation
- Cleaner structure —
apps/api, apps/web, and packages/shared instead of flat server/ and client/ folders
- Shared validation — API and web use the same Zod schemas from
@prepedge/shared
- Multi-provider AI — Groq → Gemini → Hugging Face fallback in the API layer
- CI/CD — automated lint, test, and build on every PR; Render Blueprint for API deploy
Scope of changes
Monorepo (package.json, workspaces)
- Root npm workspaces for
apps/* and packages/*
- Unified
npm run dev, lint, test, build scripts
packages/shared
- Zod schemas: auth, user, interview, report, contact
- Shared constants exported via
@prepedge/shared
apps/api
- Express 5 server with layered architecture (config → models → services → controllers → routes)
- Firebase auth middleware + owner checks
- MongoDB models: User, Interview, Report, ResumeCache
- Interview flow: resume PDF parsing, AI question generation, answer evaluation
- Report generation, contact form, health endpoint
- Multi-provider AI abstraction (Groq, Gemini, Hugging Face)
- Vitest tests for health, JSON parsing, schema validation
apps/web
- Vite + React 19 + Tailwind v4 + shadcn-style UI components
- Firebase auth, protected routes, login/signup
- Dashboard, create interview, live interview session (speech analysis)
- Report page with PDF download
- Marketing/static pages: Home, About, Contact, Practice, Resources, Privacy, Terms, Profile
CI / Deploy
- GitHub Actions: API lint, web lint, web build, API tests
- Dependabot for npm updates
render.yaml Blueprint for apps/api on Render
- PR template for consistent descriptions
Breaking changes
Pre-merge checklist
Acceptance criteria
dev_v2 is merged into main via PR (squash or merge commit — maintainer preference)
- CI passes on
main after merge
- Production API and web deployments are live on new paths
- No regressions in core user flows (auth, interview, report)
Related
- Release PR:
dev_v2 → main (to be opened when checklist is complete)
- Branches:
chore/monorepo-setup, feat/shared-schemas, refactor/api-v2, refactor/web-v2, chore/ci-deploy
@
Summary
Merge
dev_v2intomainto ship PrepEdge AI v2 — the monorepo refactor that replaces the legacyclient/+server/layout with a workspaces-based architecture.This release bundles five merged PRs on
dev_v2:chore/monorepo-setupfeat/shared-schemas@prepedge/sharedZod schemas & constantsrefactor/api-v2apps/apirefactor/web-v2apps/webchore/ci-deployMotivation
apps/api,apps/web, andpackages/sharedinstead of flatserver/andclient/folders@prepedge/sharedScope of changes
Monorepo (
package.json, workspaces)apps/*andpackages/*npm run dev,lint,test,buildscriptspackages/shared@prepedge/sharedapps/apiapps/webCI / Deploy
render.yamlBlueprint forapps/apion RenderBreaking changes
client/andserver/toapps/webandapps/apirootDir: apps/api, Vercel fromapps/web)client/andserver/directories can be removed after merge (follow-up cleanup)Pre-merge checklist
npm ciat repo root succeedsnpm run lintpasses (API + web)npm run test -w apps/apipassesnpm run build -w apps/websucceedsnpm run dev— full stack runs locallyapps/apiviarender.yamlapps/webAcceptance criteria
dev_v2is merged intomainvia PR (squash or merge commit — maintainer preference)mainafter mergeRelated
dev_v2→main(to be opened when checklist is complete)chore/monorepo-setup,feat/shared-schemas,refactor/api-v2,refactor/web-v2,chore/ci-deploy@