diff --git a/apps/client/src/contexts/ProfileProvider.tsx b/apps/client/src/contexts/ProfileProvider.tsx index 746fdb8..cbf4b1a 100644 --- a/apps/client/src/contexts/ProfileProvider.tsx +++ b/apps/client/src/contexts/ProfileProvider.tsx @@ -17,8 +17,6 @@ interface Profile { phone: string | null; address: string | null; postalCode: string | null; - city: string | null; - country: string | null; website: string | null; linkedInUrl: string | null; summary: string | null; diff --git a/apps/client/src/features/onboarding/components/PersonalProfileStep.tsx b/apps/client/src/features/onboarding/components/PersonalProfileStep.tsx index dd8fe42..4972fe2 100644 --- a/apps/client/src/features/onboarding/components/PersonalProfileStep.tsx +++ b/apps/client/src/features/onboarding/components/PersonalProfileStep.tsx @@ -22,8 +22,6 @@ export const PersonalProfileStep = ({ onComplete, onSkip }: Props) => { fullName: profile.fullName ?? "", headline: profile.headline ?? "", phone: profile.phone ?? "", - city: profile.city ?? "", - country: profile.country ?? "", website: profile.website ?? "", linkedInUrl: profile.linkedInUrl ?? "", summary: profile.summary ?? "", diff --git a/apps/client/src/features/onboarding/mutations/create-profile.graphql b/apps/client/src/features/onboarding/mutations/create-profile.graphql index 5529504..9bda130 100644 --- a/apps/client/src/features/onboarding/mutations/create-profile.graphql +++ b/apps/client/src/features/onboarding/mutations/create-profile.graphql @@ -7,8 +7,6 @@ mutation CreateProfile($input: CreateProfileInput!) { phone address postalCode - city - country website linkedInUrl summary diff --git a/apps/client/src/features/onboarding/mutations/update-profile.graphql b/apps/client/src/features/onboarding/mutations/update-profile.graphql index ed2e2cd..de32ff0 100644 --- a/apps/client/src/features/onboarding/mutations/update-profile.graphql +++ b/apps/client/src/features/onboarding/mutations/update-profile.graphql @@ -7,8 +7,6 @@ mutation UpdateProfile($id: ID!, $input: UpdateProfileInput!) { phone address postalCode - city - country website linkedInUrl summary diff --git a/apps/client/src/features/onboarding/queries/my-profiles.graphql b/apps/client/src/features/onboarding/queries/my-profiles.graphql index 5d42d76..ed6aefd 100644 --- a/apps/client/src/features/onboarding/queries/my-profiles.graphql +++ b/apps/client/src/features/onboarding/queries/my-profiles.graphql @@ -7,8 +7,6 @@ query MyProfiles { phone address postalCode - city - country website linkedInUrl summary diff --git a/apps/client/src/features/onboarding/queries/profile.graphql b/apps/client/src/features/onboarding/queries/profile.graphql index 1bf0381..8ea5fe3 100644 --- a/apps/client/src/features/onboarding/queries/profile.graphql +++ b/apps/client/src/features/onboarding/queries/profile.graphql @@ -7,8 +7,6 @@ query Profile($id: ID!) { phone address postalCode - city - country website linkedInUrl summary diff --git a/apps/client/src/features/profile/components/PersonalProfileForm.tsx b/apps/client/src/features/profile/components/PersonalProfileForm.tsx index 8cdba5e..9680f2c 100644 --- a/apps/client/src/features/profile/components/PersonalProfileForm.tsx +++ b/apps/client/src/features/profile/components/PersonalProfileForm.tsx @@ -33,8 +33,6 @@ export const PersonalProfileForm = ({ phone: initialData?.phone ?? "", address: initialData?.address ?? "", postalCode: initialData?.postalCode ?? "", - city: initialData?.city ?? "", - country: initialData?.country ?? "", website: initialData?.website ?? "", linkedInUrl: initialData?.linkedInUrl ?? "", summary: initialData?.summary ?? "", @@ -71,8 +69,6 @@ export const PersonalProfileForm = ({ phone: form.phone || undefined, address: form.address || undefined, postalCode: form.postalCode || undefined, - city: form.city || undefined, - country: form.country || undefined, website: form.website || undefined, linkedInUrl: form.linkedInUrl || undefined, summary: form.summary || undefined, @@ -114,25 +110,6 @@ export const PersonalProfileForm = ({ autoComplete="organization-title" /> -
- updateField("city", value)} - error={errors.city} - autoComplete="address-level2" - /> - updateField("country", value)} - error={errors.country} - autoComplete="country-name" - /> -
-
**Current focus:** shipping the B2C CV generator core flow (templates, content management, export, AI-assisted parsing). Other initiatives below are scoped but not actively in flight. + ## 🏢 B2C CV Builder Functionality ### Core Features @@ -74,6 +76,7 @@ This document outlines the planned features and improvements for the CV Generato ### Organization Management - [ ] **Organization Management** + - [ ] Multi-tenant architecture - [ ] Organization hierarchy management - [ ] Role-based access control (RBAC) @@ -87,17 +90,20 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Custom organization branding - [ ] **Job Experience Management** + - [ ] Full CRUD for companies - [ ] Full CRUD for roles - [ ] Full CRUD for levels - [ ] Full CRUD for skills - [ ] **Vacancy Management** + - [x] Job vacancy creation - [ ] Vacancy management interface - [ ] Vacancy search and filtering - [ ] **Employee Management** + - [x] Employee profile management - [x] Multi-profile support (users can maintain multiple profiles) - [x] Skills inventory and tracking @@ -236,32 +242,38 @@ This document outlines the planned features and improvements for the CV Generato ### Core Systems - [x] **Authentication System** + - [x] JWT-based authentication - [x] Refresh token mechanism - [x] User session management - [x] **Database System** + - [x] PostgreSQL database setup - [x] Prisma ORM integration - [x] Database migrations - [x] **GraphQL API** + - [x] Apollo Server implementation - [x] GraphQL schema design - [x] Query and mutation resolvers - [x] **Frontend Application** + - [x] React application setup - [x] TypeScript configuration - [x] Modern UI components (`@cv/ui` design system) - [x] **Docker Infrastructure** + - [x] Containerization setup (per-app Dockerfiles + shared base image) - [x] Health checks configuration - [x] Multi-service orchestration - [x] GPU passthrough support (NVIDIA + Metal) - [ ] **Testing Infrastructure** + - [x] E2E testing setup (9 e2e spec files) - [x] Integration testing (auth, CV upload, pagination, GraphQL) - [x] Unit testing with Vitest @@ -269,11 +281,13 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Playwright E2E tests (planned) - [x] **Code Quality** + - [x] Biome linting configuration - [x] TypeScript strict mode - [x] Code formatting standards - [ ] **CI/CD** + - [x] Platform-agnostic CI pipeline (`ci/pipeline.ts`) - [ ] Automated deployment - [ ] Blue-green deployment strategy @@ -320,4 +334,10 @@ This document outlines the planned features and improvements for the CV Generato --- +## Deferred / Future Work + +- **Job-board ingestion pipeline** - automated import of vacancies from external sources (freelance.nl first, others later). Scaffolded once on `feature/cvg-38` and removed to focus on shipping the CV generator. Resurrect from git history (commits `fc0446d`, `44de709`, `faea28d`) when ready. + +--- + _This roadmap is a living document and will be updated regularly based on user feedback, market research, and business priorities._