Skip to content

Modernization of the project (V2)#11

Merged
dzhukovsky merged 46 commits into
mainfrom
v2
May 13, 2026
Merged

Modernization of the project (V2)#11
dzhukovsky merged 46 commits into
mainfrom
v2

Conversation

@dzhukovsky
Copy link
Copy Markdown
Owner

This pull request introduces a major refactor and modernization of the project, migrating from Fluent UI and Prettier to a new tech stack based on Tailwind CSS, Radix UI, and Shadcn UI. It also updates dependencies, project structure, and configuration to align with current best practices for React, TypeScript, and Vite projects. The most important changes are summarized below.

Tech stack and dependency overhaul:

  • Migrated from Fluent UI to Tailwind CSS, Radix UI, and Shadcn UI, removing all Fluent UI-based components and related utilities (src/components/Flex, src/components/Paragraph.tsx, src/components/SectionFrame.tsx, src/components/Media.tsx) [1] [2] [3] [4] [5].
  • Updated dependencies in package.json to use React 19, Tailwind CSS, Radix UI, Shadcn UI, and related libraries; removed Fluent UI, Prettier, and other unused packages.

Project configuration and tooling updates:

  • Removed Prettier configuration (.prettierrc) and VSCode-specific settings, switching to a flat ESLint configuration with recommended settings for React and TypeScript (eslint.config.js, .vscode/settings.json) [1] [2] [3].
  • Added new plugin and component settings for Shadcn UI and Claude plugins (components.json, .claude/settings.json) [1] [2].

Routing and SEO improvements:

  • Implemented a new client-side routing approach in src/App.tsx, with meta tag management for SEO and gated routes.
  • Added public/staticwebapp.config.json and updated public/robots.txt to control indexing and navigation fallback for certain routes [1] [2].

Build and schema automation:

  • Introduced a script (scripts/sync-cv-schema.ts) to automatically sync dynamic enums and properties in the CV schema from a YAML source, and hooked it into the build/dev process [1] [2].

Documentation and scaffolding:

  • Added a new README.md describing the updated stack, ESLint configuration, and recommendations for further expansion.
  • Added a new index.html template for the Vite-based app.

Overall, this PR modernizes the codebase, improves maintainability, and sets up the project for scalable frontend development using current best practices.

Dmitry Zhukovsky and others added 30 commits December 4, 2025 22:28
…technologies and update experience details
…and set up Tailwind CSS styles

- Added react.svg and vite.svg to the assets directory.
- Created a reusable Button component with variants and sizes using class-variance-authority.
- Established global styles in index.css, including theme variables and dark mode support.
- Implemented utility function for class name merging in utils.ts.
- Set up main entry point in main.tsx to render the App component.
- Introduced brand icons for LinkedIn and GitHub in `brand-icons.tsx`.
- Created a comprehensive set of UI components in `fluent.tsx`, including Card, Buttons, Tags, and more, to enhance the user interface.
- Implemented hooks for theme management and scroll spy functionality in `hooks.ts`.
- Added a structured CV data model in `cv.ts` to support personal information and project details.
- Added Exadel logo in SVG format.
- Added Fotando logo in PNG format.
- Added Lightpoint Global logo in PNG format.
- Added Microsoft logo in ICO format.
- Added `yaml` package to handle YAML parsing.
- Introduced `gen:schema` script to regenerate CV schema from YAML data.
- Updated `cv.schema.json` to reflect changes in CV structure, including renaming properties and adjusting required fields.
- Modified `cv.yml` to use YAML anchors for organizations and updated skills structure.
- Enhanced schema definitions for tech groups and self-taught skills.
…pany and school data

feat: add YAML loader plugin to Vite configuration for importing YAML files

chore: create vite-env.d.ts to declare modules for YAML file imports
dzhukovsky added 13 commits May 10, 2026 23:55
…tions, education, strengths, and CTA; update Portfolio component for dynamic rendering
- Changed "contractTypes" to "contractType" in cv.schema.json and updated related types in cv.ts.
- Removed "about", "experience", and "technologies" sections from CV schema, replacing them with "preferredStack".
- Updated CV data structure in cv.yml to reflect the new schema, including changes to certifications and education.
- Introduced sections schema and data in sections.schema.json and sections.yml for better separation of UI text from CV data.
- Updated Portfolio component to utilize new sections data, including titles and descriptions for various sections.
- Refactored template application for dynamic content rendering in sections.ts.
- Updated `sync-cv-schema.ts` to include `PreferredStackGroup` in schema.
- Modified `cv.schema.json` to reflect new structure for preferred stack.
- Changed `cv.ts` to normalize preferred stack as a record instead of an array.
- Adjusted `cv.yml` to align with new preferred stack format.
- Cleaned up comments and code structure across various components for clarity.
- Removed unnecessary comments and consolidated related code sections in `Portfolio.tsx`, `Work.tsx`, and other files.
- Improved event handling in `App.tsx` and `site-header.tsx` for better routing.
- Introduced RECENT_YEARS constant in sections.ts for consistent recency window usage.
- Updated technology description in sections.yml to reflect recent years of experience.
- Refactored Portfolio.tsx to utilize productionYearsOfExperience and RECENT_YEARS for accurate experience calculations.
- Enhanced Skills component to compute category density based on recent technology usage.
- Implemented CV export functionality to generate Markdown and text files from CV data.
- Added cv-docx plugin to create a Word document version of the CV.
- Added pdfmake library for PDF generation.
- Created cv-pdf.ts to handle PDF resume generation.
- Updated resume-button component to support format selection (PDF/DOCX).
- Improved styling and interaction for the resume button with dropdown menu.
- Refactored existing DOCX generation logic to align with new PDF functionality.
- Updated package.json to include pdfmake and its type definitions.
…component

- Deleted the `cv-docx.ts` file which contained the logic for generating DOCX resumes.
- Updated `ResumeButton` component to remove dropdown for format selection, now only supports PDF download.
- Simplified button styling and functionality, retaining only the PDF download feature.
@github-actions
Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://polite-wave-0c3faae03-11.westeurope.5.azurestaticapps.net

@github-actions
Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://polite-wave-0c3faae03-11.westeurope.5.azurestaticapps.net

@dzhukovsky dzhukovsky merged commit c3c0d9c into main May 13, 2026
2 checks passed
@dzhukovsky dzhukovsky deleted the v2 branch May 13, 2026 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant