diff --git a/apps/docs/content/docs/roadmap.md b/apps/docs/content/docs/roadmap.md index 9df2aa0..6bb9dd3 100644 --- a/apps/docs/content/docs/roadmap.md +++ b/apps/docs/content/docs/roadmap.md @@ -13,9 +13,9 @@ This document outlines the planned features and improvements for the CV Generato - [x] Add theme selection (professional, creative, minimal) - [x] Support for multiple CV formats (chronological, functional, hybrid) - [x] Navigation active state - - [ ] Multiple template rendering formats (Liquid, LaTeX, Handlebars) - - [ ] Template engine abstraction layer - - [ ] Custom template syntax support + - [x] Template engine abstraction layer (`@cv/cv-renderer` with `TemplateEngine` interface) + - [x] Handlebars template engine + - [ ] Additional template engines (Liquid, LaTeX) - [ ] **Content Management** @@ -26,8 +26,9 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Version history and rollback - [ ] **Export & Sharing** - - [ ] PDF export with high-quality rendering - - [ ] Multiple file format support (PDF, DOCX, HTML) + - [x] PDF export via print stylesheet + - [ ] High-fidelity PDF rendering (server-side) + - [ ] Multiple file format support (DOCX, HTML) - [ ] Shareable CV links - [ ] QR code generation for CV sharing - [ ] Social media integration @@ -36,6 +37,10 @@ This document outlines the planned features and improvements for the CV Generato - [ ] **AI-Powered Enhancements** + - [x] AI-powered CV parsing (extract structured data from uploaded CVs) + - [x] Multi-provider AI registry (Anthropic, OpenAI, llama.cpp) + - [x] AI call logging and monitoring (admin module) + - [x] User AI preference settings (model/provider selection during onboarding) - [ ] AI content suggestions and improvements - [ ] Keyword optimization for ATS systems - [ ] Skills gap analysis @@ -52,7 +57,7 @@ This document outlines the planned features and improvements for the CV Generato - [ ] **Onboarding & Tutorials** - [x] Interactive CV creation wizard - - [ ] Step-by-step guidance system + - [x] Multi-step onboarding flow (profile, CV upload, education, career history, AI preferences, review) - [ ] Sample CV library - [ ] Video tutorials and help center @@ -93,11 +98,18 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Vacancy search and filtering - [ ] **Employee Management** - - [ ] Bulk employee import/export - [x] Employee profile management + - [x] Multi-profile support (users can maintain multiple profiles) - [x] Skills inventory and tracking - - [ ] Performance review integration - [x] Employee directory with search and filtering + - [ ] Bulk employee import/export + - [ ] Performance review integration + +- [ ] **Data Import** + - [x] File-based CV import with AI parsing + - [ ] GDPR ZIP import (LinkedIn data export) + - [x] Event-driven import pipeline (data-import module with listeners) + - [ ] Bulk CSV/Excel import ### HR Analytics & Reporting @@ -147,11 +159,13 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Backup and disaster recovery - [ ] **Access Control** + - [x] Admin role and admin-only resolvers + - [x] Entity-level authorization policies (14/14 entities covered) - [ ] Granular permission system - [ ] Multi-factor authentication (MFA) - [ ] Session management and timeout - [ ] IP whitelisting and restrictions - - [ ] Admin console for system management + - [x] Admin console for system management --- @@ -221,41 +235,49 @@ This document outlines the planned features and improvements for the CV Generato ### Core Systems -- [ ] **Authentication System** +- [x] **Authentication System** - [x] JWT-based authentication - [x] Refresh token mechanism - [x] User session management -- [ ] **Database System** +- [x] **Database System** - [x] PostgreSQL database setup - [x] Prisma ORM integration - [x] Database migrations -- [ ] **GraphQL API** +- [x] **GraphQL API** - [x] Apollo Server implementation - [x] GraphQL schema design - [x] Query and mutation resolvers -- [ ] **Frontend Application** +- [x] **Frontend Application** - [x] React application setup - [x] TypeScript configuration - - [x] Modern UI components + - [x] Modern UI components (`@cv/ui` design system) -- [ ] **Docker Infrastructure** - - [x] Containerization setup +- [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** - - [ ] E2E testing setup - - [ ] Integration testing - - [ ] Test coverage + - [x] E2E testing setup (9 e2e spec files) + - [x] Integration testing (auth, CV upload, pagination, GraphQL) + - [x] Unit testing with Vitest + - [ ] Client-side test coverage + - [ ] Playwright E2E tests (planned) -- [ ] **Code Quality** +- [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 + - [ ] **Email System** - [ ] Email service integration (SendGrid, AWS SES, SMTP) - [ ] Transactional email templates @@ -275,10 +297,7 @@ This document outlines the planned features and improvements for the CV Generato - [ ] Performance monitoring and alerting - [ ] **DevOps & Deployment** - - [ ] CI/CD pipeline optimization - - [ ] Automated testing (unit, integration, e2e) - [ ] Infrastructure as Code (IaC) - - [ ] Blue-green deployment strategy - [ ] Monitoring and logging solutions ### Security & Compliance diff --git a/apps/docs/package.json b/apps/docs/package.json index 8776d66..8514c44 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -15,6 +15,7 @@ "@catppuccin/palette": "^1.4.0", "@cv/routing": "*", "@cv/ui": "*", + "@cv/utils": "*", "@mdx-js/react": "^3.1.1", "@mdx-js/rollup": "^3.1.1", "@types/mdx": "^2.0.13", diff --git a/apps/docs/src/config/env-interpolation-remark-plugin.ts b/apps/docs/src/config/env-interpolation-remark-plugin.ts index efaf606..5fe29b7 100644 --- a/apps/docs/src/config/env-interpolation-remark-plugin.ts +++ b/apps/docs/src/config/env-interpolation-remark-plugin.ts @@ -1,17 +1,20 @@ -import type { Root, Text } from "mdast"; +import type { Node, Root, Text } from "mdast"; import type { Plugin } from "unified"; -import { visit } from "unist-util-visit"; import { ENV_VARS } from "./env.config"; +const visitTextNodes = (node: Node, fn: (text: Text) => void): void => { + if (node.type === "text") return fn(node as Text); + if ("children" in node) + (node as Root).children.forEach((child) => visitTextNodes(child, fn)); +}; + /** * Remark plugin to interpolate environment variables in markdown * Replaces {{VARIABLE_NAME}} with actual values from ENV_VARS */ export const envInterpolationPlugin: Plugin<[], Root> = () => (tree: Root) => { - visit(tree, "text", (node: Text) => { - if (!node.value) { - return; - } + visitTextNodes(tree, (node) => { + if (!node.value) return; const interpolated = node.value.replace( /\{\{(\w+)\}\}/g, diff --git a/apps/docs/vite.config.ts b/apps/docs/vite.config.ts index 4c51a27..d2ec916 100644 --- a/apps/docs/vite.config.ts +++ b/apps/docs/vite.config.ts @@ -30,6 +30,7 @@ export default defineConfig(async (): Promise => { alias: { "@": path.resolve(__dirname, "./src"), "@cv/routing": path.resolve(__dirname, "../../packages/routing/src"), + "@cv/utils": path.resolve(__dirname, "../../packages/utils/index.ts"), }, }, server: {