Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add developers pages, Proxify as a partner #2985

Merged
merged 6 commits into from
Sep 23, 2024
Merged

Conversation

29avet1
Copy link
Contributor

@29avet1 29avet1 commented Aug 29, 2024

Description of Problem

Add Proxify to the partners list, Add Vue developers pages

TamaraZoric and others added 2 commits August 28, 2024 11:05
* feat: Add Talent profile dummy images

New images are added as dummy placeholders

* Add Proxify partner SVG logos

Added two new SVG logos for the Proxify partner to the project: `proxify.svg` for standard view and `proxify-dark.svg` for dark mode compatibility. These additions ensure proper branding representation across various themes.

* feat: Rename 'Partners' to 'Experts' and add 'Talent' item

Updated the navigation menu by renaming the 'Partners' section to 'Experts' to encompass both 'Partners' and 'Talent'. Now, 'Experts' includes links to both '/partners/' and the newly added '/talents/' page.

* feat: Add optional contact page link for partners page

Updated the partner type definition to include an optional contactPage field. Modified PartnerPage.vue to conditionally create a mailto link or use the contactPage link if available. Improved the rendering of the description with unique keys for each paragraph.

* feat: Add initial data about Proxify to partners.json

* feat: Add initial dummy talent profiles to talent.json

This commit introduces a talent.json file containing dummy information about developers.

* feat: Add partner configuration file for Proxify integration with Talents

Introduced a new partnerConfig.js file to configure Proxify as a partner.

* feat: Add CardList reusable component with shuffling and filtering support

Introduces a new CardList component in Vue, supporting item shuffling and filtering based on provided props. This component ensures that items are correctly displayed and includes conditional rendering for an optional link to browse all items.

* feat: Add PageHero reusable component

Introduce a new PageHero component to the theme, including slots for title and lead content. The component also comes with responsive styling and color transitions for a polished visual presentation.

* feat: Add reusable PageSearchableListLayout component

Introduces a new Vue component to support searchable lists with filtering functionality. Includes a search input tied to a computed filtered list of items and slots for customizable content and styling.

* feat: Add reusable PageShowcaseListLayout component

Introduce PageShowcaseListLayout.vue to streamline the layout for showcasing and featuring content. This component includes sections for hero, spotlight, featured items, and an optional join section, improving the modularity and reusability of the codebase.

* feat: Add reusable CallToActionSection component

Introduce a new CallToActionSection component with props for title, description, link, and linkText. The component includes basic styling and functionality for displaying a call-to-action with a styled button and description.

* refactor: Refactor partner components using reusable layouts

Replaced custom partner components with reusable layout components to enhance maintainability and consistency. This update includes migrating sections to `PageShowcaseListLayout`, `PageHero`, `CardList`, and `PageSearchableListLayout` components, and removing now redundant styles and logic.

* feat: Add Talent profile page section components

Introduced four new Vue components: TalentCompensations, TalentEducation, TalentExperiences, and TalentProficiencies. These components aim to modularize and display talent-related information, improving the structure and readability of the code.

* feat: Add new Talent page hero and join sections

This commit introduces two new components: TalentHero and TalentJoin. TalentHero showcases certified freelancers and includes links for more information. TalentJoin provides a call-to-action for developers to apply for long-term positions.

* feat: Add TalentPageFooter.vue component

Introduce the TalentPageFooter component to display footer content on the Talent Page. The footer contains partner logos, social links, and a contact button, all dynamically populated from the partnerConfig.

* feat: Add TypeScript interfaces and utility function for talents

Introduced comprehensive interfaces to represent talent profiles, experiences, and compensations in `type.ts`. Also, added a utility function `getProfileImage` in `utils.ts` to generate profile image URLs. This helps in organizing and managing talent-related data more efficiently.

* refactor: Refactor compensation and proficiency Talent components

Updated class names and styles for consistency in TalentCompensations.vue. Added titleTag prop in TalentProficiencies.vue to allow dynamic heading tags.

* feat: Add TalentCard.vue component

Introduce a new TalentCard component to display talent profiles. Includes hero and non-hero styles, conditional rendering for profile image, and sections for compensation and proficiencies.

* feat: Add searchable Talents page

Introduce a new talents page with search functionality. Implement TalentAll.vue component to filter talents by name, region, or skill using a user-friendly interface.

* faat: Add dynamic talent page with routing paths

Created a dynamic page for talents using `vitepress`, rendering talent-specific data based on URL parameters. Also added corresponding routing paths by mapping talent IDs from a JSON file.

* feat: Add talent loading components

Introduce TalentLoading component and integrate it into the talents index page. Modify button styling in PageShowcaseListLayout.vue to use the "accent-button" class for better consistency across the application.

* feat: Add TalentPage component

This new component displays detailed information about a talent profile, including name, location, description, compensation, proficiencies, experiences, and education. It also features responsive design adjustments and links for contacting the talent.

* fix: Fix title for TalentProficiencies and update TalentHero

Added a conditional title prop to the TalentProficiencies component in TalentCard.vue to enhance clarity when displayed with a hero. Also, improved the user experience in TalentHero.vue by adding a line break before the 'Apply here' link for better readability.

* feat: Add "highlighted" attribute to talent entries

This update introduces the "highlighted" attribute to specific talent entries in the talent.json file. The attribute is set to true, marking these entries as noteworthy for potential feature use.

* feat: Add proficiency section to partner config for talent page

Introduced a new `proficiencies` object to the partner configuration. This object includes a `skillsPerCard` property with a value of 5, enhancing the organization and display of partner skills.

* feat: Add show all/less button to Talent Proficiencies

Implemented the "show all" button to toggle the visibility of proficiencies when they exceed the partner-configured limit. This involves updating the component logic and adding a new button with relevant styles.

* feat: Refactor styles and update UI components on talent pages

Refactored various CSS selectors to enhance the visual consistency across different components. Added missing text decorations and adjusted padding and font sizes for better readability. Removed redundant styles and improved responsiveness on smaller screens.

* feat: Remove unused divider and update section borders in talent page

Eliminated the redundant divider element and associated CSS. Added a bottom border to the last text section for consistent styling.

* feat: Add TalentTimezoneFilter component

Implemented TalentTimezoneFilter component for selecting timezones. Removed redundant timezone selection logic from TalentLoading.vue and optimized its layout accordingly.

* feat: Make browse more link optional in page layout

This change allows `browseLinkText` and `browseLinkUrl` to be optional props, enhancing flexibility. The featured CTA slot now conditionally displays the browse link only if `browseLinkUrl` is defined. This ensures the layout remains clean when the browse link is not provided.

* refactor: Remove PageSearchableListLayout component

Removed the PageSearchableListLayout.vue component and PartnerAll.vue is reverted to original file.

* refactor: Remove TalentAll component and associated files

Deleted src/talents/all.md and src/talents/components/TalentAll.vue. This removes the Browse All Talents page and its related components, reducing redundancy in the codebase.

* feat: Remove highlighted profile logic and update UI elements

Removed the highlighted profile feature in `talent.json` and related logic in `TalentLoading.vue`. Updated UI elements to reflect these changes, including adjusting filters and adding a new call-to-action button for contacting us.

* feat: Update TalentPage styling and navigation link

Change the "Back to all talents" link to point to "index.html" and adjust the border styling for text sections. Additionally, add margin adjustments for better spacing and visual consistency in the talent description area.

* feat: Prevent button click event propagation and refactor styling

Added stop modifier to prevent event propagation on the 'Show all' button click in TalentProficiencies. Refactored TalentCard component for better structure and responsive design, improving maintainability and readability.

* feat: Toggle visible proficiencies in TalentProficiencies.vue

Add conditional logic to control the visibility of proficiencies based on the enableShowAll prop. This ensures that only the necessary proficiencies are displayed unless the show-all feature is enabled.

* feat: Refactor TalentCard links to use router navigation

Replaced anchor tags with router navigation for better SPA behavior. Updated styles to ensure proper responsiveness and interaction feedback. Adjusted media queries for improved layout consistency.

* feat: Refactor and enhance talent components UI and UX

Removed redundant v-if conditions in TalentCompensations.vue. Refactored TalentPage.vue to improve image handling and ensure responsive design. Updated styles in TalentEducation.vue and TalentExperiences.vue for better consistency, and corrected media query breakpoint in TalentLoading.vue.

* feat: Add diagram component for talent profile

Introduced a new Vue component, TalentProfileDiagram, that dynamically fetches and displays SVG content based on props. This component supports optional title, image, and text properties for enhanced customization.

* refactor: Refactor TalentPage to use TalentProfileDiagram component

Replaced static profile image and score sections with the reusable TalentProfileDiagram component for better modularity and maintainability. Updated utility function name to `getTalentProfileImage` for consistency with the new component.

* refactor: Rename getProfileImage to getTalentProfileImage in talent utils

This change clarifies the function's purpose by specifying that it deals with talent profile images. It improves code readability and maintainability by making the function's intent more explicit.

* refactor: Rename image retrieval function in TalentCard.vue

Updated the function call from `getProfileImage` to `getTalentProfileImage` for better clarity and consistency. This change improves code readability and ensures the purpose of the function is more precisely communicated.

* feat: Replace talent profile SVG images

This commit replaces SVG files for each talent profile.

* refactor: Replace talent profile SVG images

Updated the SVG assets for all talent profiles to newer versions. The new images provide better clarity and align with the latest design guidelines.

* feat: Adjust media query breakpoints in TalentCard.vue

Increase the maximum width for small screens from 560px to 640px and adjust the corresponding breakpoint for medium screens. These changes ensure better responsiveness across different devices and screen sizes.

* refactor: Update svg files for Talent

The 1-score.svg file in the talents images directory has been removed. Score files are updated with new ones.

* refactor: Update SVG paths to enhance visual precision

Adjusted coordinates and dimension values in the SVG paths to improve visual accuracy and alignment. These updates ensure the SVG rendering is more consistent and visually appealing in various contexts.

* refactor: Refactor talents directories to developers

Renamed all instances of "talent" to "developer" within the project. This includes file and directory names, variable names, import paths, and template contents to better represent the content and maintain clarity.

* feat: Add developer SVG asset

Introduced a new SVG file to represent developer scores, profile, and image.

* feat: Update developer profiles in developers.json

New developers are added on the list. Enhanced formatting by using nested descriptions and reordered proficiencies.

* refactor: Refactor developer's JSON descriptions into structured format

Replaced string descriptions with structured JSON objects providing clear paragraphs and lists. This improves readability, maintainability, and consistency across the developer's JSON profiles.

* feat: Update Proxify partner details in JSON file

Revised Proxify's introduction and description to reflect their capabilities in hiring expert Vue.js developers quickly and at fair prices. Detailed the benefits of working with Proxify, including their rigorous vetting process, time-to-hire, and flexible, cost-effective solutions.

* feat: Update developer's partner configuration and links to use UTM parameters

Refactor partnerConfig.js to include UTM-based URLs for various links, and update related Vue components to use these new URLs. This enhances tracking capabilities for partner interactions.

* refactor: Rename developer paths to include developer slug

Updated developer paths and components to use slugs based on developer IDs and aliases for more descriptive URLs. Changes were made to file routes, Vue component props, and path generation.

* feat: Add titles to developer and partner pages

Updated the `src/developers/index.md` and `src/partners/index.md` files to include titles "Vue Developers" and "Vue Partners" respectively. This improves clarity and user experience by providing clear headings for each page.

* refactor: Rename "timezone" to "region" in developers module

Updated all instances of "timezone" to "region" across JSON profiles, Vue components, and type definitions. This enhances clarity and consistency in the representation of developer data.

* refactor: Refactor component classes to follow BEM naming conventions

Updated the .vitepress components to use BEM naming conventions for improved readability and consistency. Changes include renaming various class names across several components and updating associated styles accordingly.

* feat: Add names to developer profiles configuration

Updated developers.json to include the full names of developers. Adjusted the DeveloperProfile interface in type.ts to accommodate the new 'name' field.

* refactor: Refactor to improve code readability and consistency along Developer components

Standardized class naming across components for better consistency and readability. Removed redundant alias references, making way for a more intuitive "name" property. Simplified template structures and reduced repetitive code, enhancing maintainability.

* refactor: Update URLs and clean up UTM campaign parameters

Changed URLs in partnerConfig.js and partners.json to ensure consistency with the "hire-vuejs" path. Updated the UTM campaign parameter to replace slashes with hyphens and remove extra dashes for better readability and tracking.

* feat: Update developers.json: revise proficiencies and compensations

Reordered and streamlined the list of proficiencies for various developers. Updated compensation details to reflect new rates for both part-time and full-time engagements.

* feat: Update DeveloperPage.vue score title for clarity

Changed the title from "Candidate score" to "Engineering excellence score" to better reflect the nature of the evaluation. This update aims to provide a clearer understanding of the score's context and significance for Vue.js developers.

* feat: Update hero section titles in developers partnerConfig.js

Changed the title from 'Vue Developer' to 'Vue Developers' and updated the description to reflect the plural form. This enhances clarity and consistency in messaging about the Vue freelancers.

* feat: Add JSDoc comments and improve utility functions for developer utils

Enhanced the utility functions by adding detailed JSDoc comments for better readability and documentation. Improved the `generateUTMUrl` function to handle empty base URLs properly and added a new `truncateTextFromArray` function to combine and truncate strings from an array.

* feat: Truncate developer descriptions and update media queries for developer card

Introduced text truncation for developer descriptions to improve UI consistency. Adjusted media queries for the developer card header to enhance layout adaptability on different screen sizes.

* refactor: Remove max-width constraint on showcase list items

This change removes the max-width property from the showcase list items, allowing them to expand beyond 260px if necessary. This adjustment aims to provide more flexibility in item display and improve visual consistency.

* refactor: Refactor text truncation utility function for developer profiles

Combined text array into a single variable for clarity and streamlined the implementation logic. Added logic to remove trailing commas or punctuation before appending ellipsis for cleaner output.

* refactor: Refactor CSS styles in Developer Card

Reorganize CSS by moving hero-specific styles for developer name and location into a consolidated section. This improves readability and maintainability of styling rules.

* refactor: Refactor DeveloperExperienceDescription interface

Split DeveloperExperienceDescription into separate ParagraphDescription and UnorderedListDescription interfaces. This change improves type safety by providing specific interfaces for paragraph and unordered list descriptions.

* refactor: Update Proxify URLs in partners.json

Corrected the URL format in the Proxify partner entry to use dashes instead of slashes in the utm_campaign parameter. This ensures consistency and proper tracking for partnership-related traffic.

* feat: Update SVGs and CSS for responsive design for developer profile diagrams

Replaced fixed width and height attributes in SVGs with 100% for width and auto for height, ensuring they are responsive. Modified CSS to improve layout flexibility and enhance responsiveness of profile images.

* feat: Enhance spotlighted profile selection logic

Refactored the spotlighted profile selection to use a reactive `ref` rather than `computed` for better control. Moved profile initialization to `onMounted` to ensure proper component lifecycle handling. This approach improves maintainability and extensibility of the profile selection logic.

* feat: Add prependText to CandidateProfile component in developer profile

This commit enhances the CandidateProfile component by adding prependText detailing how developer parameters correlate with future success. It also includes minor formatting adjustments for improved readability.

* feat: Update 'Contact us' text to 'Contact Proxify' in developer pages

Changed the text in 'accent-button' links from 'Contact us for a tailored fit' to 'Contact Proxify for a tailored fit'. This modification ensures brand consistency across the DeveloperLoading.vue component.

* refactor: Remove DeveloperRegionFilter component from developer pages

Deleted the DeveloperRegionFilter.vue file and related references in DeveloperLoading.vue. Streamlined the logic by removing region-based filtering and updated layout styles accordingly.

* feat: Make CallToActionSection props optional and add slot support

Updated `CallToActionSection.vue` to make `props` optional and provided a default value for `showDivider`. Additionally, added conditional rendering for `title`, `description`, and `link` props, and introduced a slot for more flexible content injection.

* feat: Enhance CardList component with item splitting and default props

Added support for splitting items by a given property and shuffled items only when specified. Refactored to include default prop values and renamed some variables for better readability and consistency.

* feat: Adjust layout and spacing on DeveloperPage and DeveloperExperiences

Reduced column gap on DeveloperPage component for smaller screens and introduced larger gap for wider screens. Added margin to the description section and adjusted gap between items in DeveloperExperiences component for better responsiveness.

* feat: Update compensation descriptions in developers.json

Revised the compensation details for part-time and full-time roles across multiple entries to clarify "per month" and "40 h per week" information. This change ensures consistency and improves the readability of the compensation data.

* Simplify featured-actions CSS rules for page showcase layout

Remove redundant flexbox properties from the .featured-actions class and unnecessary nested rule, ensuring cleaner and more maintainable styles. This change improves code readability and reduces complexity in the CSS layout.

* feat: Update partner name dynamically in Developer Loading page

Modified the contact button text to display the partner name dynamically using `partnerConfig.partnerName` instead of the hardcoded "Proxify". Removed unnecessary deep-scoped styles targeting `.featured-actions`.

* Make titles optional and improve layout styling for developer loading page

Add conditional rendering for titles in PageShowcaseListLayout.vue. Enhance DeveloperLoading.vue with better action selection styles and responsive design adjustments.

* feat: Update currency format in developers.json file

Changed currency format from "EUR" to "€" for part-time and monthly compensations across multiple entries to standardize representation. This improves readability and consistency in the document.

* refactor: Improve layout of featured-actions in DeveloperLoading.vue

Adjusted the CSS for the .featured-actions class to set width to auto and display to block. This ensures better alignment and positioning on different screen sizes.

* feat: Format compensation numbers in developers.json

Added commas to the compensation amounts for better readability. This change affects the part-time and monthly compensation fields across multiple developer entries. No logic or content updates were made.

* feat: Update labels and styling on Developer components

Changed the "Back to all developers" label to "All Vue.js certified developers" in DeveloperPage.vue. Modified the featured title in DeveloperLoading.vue from "Vue.js Certified individuals" to "Vue.js Certified developers". Added a cursor style to the .developer-card__proficiencies class in DeveloperCard.vue.

* feat: Adjust page grid layout and image sizes on Developer pages

Updated the grid-template-rows and margins on DeveloperPage.vue for better layout support for various screen sizes. Improved alignment and positioning of main action buttons, especially for responsive design. Added flex properties to developer card avatars to maintain consistent sizing.

* feat: Update developer ids and rename profile image files accordingly

Renamed the developer profile image files for better consistency and traceability in the naming convention

* feat: Add page title to developer page configuration

This commit introduces a new metadata field, 'title', to the developer page configuration. It helps to ensure that the page has a proper title for better identification and user experience.

* feat: Update website link for Vue partner config

Replaces `websiteUrl + 'vue'` with `hireUrl` to ensure proper redirection for Vue's partner page. This change fixes a routing issue for users accessing the partner section.

* feat: Open developer page footer website link in new tab

Updated the website link in DeveloperPageFooter to open in a new tab. This enhances user experience by preventing disruption of the current browsing session.

* feat: Update margins and styles for developer components

Adjusted various margin and styling properties in DeveloperPage.vue, DeveloperLoading.vue, DeveloperProfileDiagram.vue, and DeveloperCard.vue to improve consistency and layout. Changes include modifying margin-bottom values, adding border styles, and updating font-weight and font-size specifications.

* feat: Rename CSS class in DeveloperProfileDiagram.vue

Updated the CSS class name from `.developer-diagram` to `.developer-diagram__svg-wrapper` for better clarity and specificity. This change affects dark mode styles as well to maintain consistency.

* feat: Add profile and score diagram sections to partnerConfig for developer pages

Introduced 'profileDiagram' and 'scoreDiagram' configurations in `partnerConfig.js` to display candidate profile and engineering excellence score details. These additions aim to provide more insights into the candidate's evaluation and score distribution.

* refactor: Remove image property and related utilities from developer components

Simplified image handling by directly using developer ID for profile images. Removed unused image property from components and type definitions. Ensured optional sections are conditionally rendered.

* feat: Enhance developer components conditional rendering and fix developers page name

Refactored multiple components to include conditional rendering for various elements, ensuring only available data is displayed. Updated `DeveloperLoading.vue` to `DeveloperLanding.vue` and adjusted imports accordingly.

* feat: Update developer profile diagrams

Updated the SVG files for developers profiles.

* feat: Adjust SVG wrapper width in DeveloperProfileDiagram

Removed redundant color declarations and set a max-width of 500px for the SVG wrapper. This improves responsiveness and simplifies styling by focusing on width constraints.

* feat: Update monthly compensation for developers

The monthly compensation for the full-time developer was corrected from €6,199 to €7,375. This update reflects a change in the expected salary for the given hours worked.

* feat: Remove border from DeveloperCard component

This change updates the DeveloperCard component styles by eliminating the border to ensure a cleaner appearance. The modification is minimal but improves the overall design consistency.

* feat: Fix formatting issue in developers.json

Corrected the spacing inconsistency in the compensations section for monthly salaries. This improves the readability and consistency of the JSON data.

* feat: Remove redundant dark mode hover styles for developer buttons

Deleted unused hover styles for dark mode elements from multiple components. This cleanup reduces CSS redundancy and enhances maintainability.

* refactor: Update descriptions structure for developer experience

Refactored the JSON schema and component logic to use 'isGrouped' property instead of 'type' for experience descriptions. This simplifies the handling of grouped and ungrouped content and improves the overall code readability.

* refactor: Remove unnecessary semicolons for consistent code style

This commit removes unnecessary semicolons from several Vue component files to align with the existing coding style. Additionally, it ensures the codebase has a consistent appearance and improves readability.

* feat: Update key for description list in PartnerPage.vue

Changed the key for the description list items from the description value to their index. This prevents potential issues with duplicate keys and improves the rendering stability.

* feat: Replace developer 5328 profile image

Updated the developer profile image to one with the correct aspect ratio. This ensures the profile image displays properly across all devices.

* feat: Replace proxify hero image

Updated the hero image to use a new version with better resolution. This change is intended to improve the visual appeal and clarity of the homepage. Updated file paths and references accordingly.

* feat: Clean list of skills of developers

Removing obvious skills such as git and JIRA. 
Rearranging the proficiencies in order of importance, making sure the top five most relevant skills are shown in the top.

* get dev images optimized from cloudinary

* update svg scores

* update dev experience periods

* add website hostname to hire form query params

* remove hostname form hire form url

* fix cloudinary default props

* add developer titles

* update devs to be taken by slug, remove unnecessary computed variables

* move cloudinary URL to partnerConfig

* comment to keep semicolon

---------

Co-authored-by: Viktor Jarnheimer <[email protected]>
Co-authored-by: Avet <[email protected]>
* update proxify links in developer pages

* remove unnecessary commas and semicolons

* rename developer image component
Copy link

netlify bot commented Aug 29, 2024

Deploy Preview for vuejs ready!

Name Link
🔨 Latest commit d97af2c
🔍 Latest deploy log https://app.netlify.com/sites/vuejs/deploys/66ea7ec713dded0008a08525
😎 Deploy Preview https://deploy-preview-2985--vuejs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@bencodezen bencodezen added the core-team Issues / PRs that require core team attention label Sep 4, 2024
@29avet1 29avet1 marked this pull request as draft September 10, 2024 15:07
@29avet1
Copy link
Contributor Author

29avet1 commented Sep 10, 2024

I have switched this to draft, as we are waiting for @vue/theme navbar badge approval.

* add badge to menu

* update dev profile SVGs

* change a developer profile

* update nav badge config to object type

* add new developer profile

* update @vue/theme package to support nav badges
@29avet1 29avet1 marked this pull request as ready for review September 18, 2024 07:25
@yyx990803 yyx990803 merged commit 5094e84 into vuejs:main Sep 23, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core-team Issues / PRs that require core team attention
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants