From 9fcaa30fb9a1f14c12edd43c7025f3fab1effc0b Mon Sep 17 00:00:00 2001 From: TamaraZoric <50246771+TamaraZoric@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:05:53 +0200 Subject: [PATCH 1/4] feat: New developer page (#1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 Co-authored-by: Avet <29avet1@gmail.com> --- .gitignore | 1 + .vitepress/config.ts | 10 +- .../theme/components/CallToActionSection.vue | 73 + .vitepress/theme/components/CardList.vue | 105 + .vitepress/theme/components/PageHero.vue | 63 + .../components/PageShowcaseListLayout.vue | 112 + src/developers/[developerSlug].md | 23 + src/developers/[developerSlug].paths.ts | 12 + src/developers/components/CloudinaryImage.vue | 57 + src/developers/components/DeveloperCard.vue | 325 +++ .../components/DeveloperCompensations.vue | 37 + .../components/DeveloperEducation.vue | 35 + .../components/DeveloperExperiences.vue | 72 + src/developers/components/DeveloperHero.vue | 24 + src/developers/components/DeveloperJoin.vue | 21 + .../components/DeveloperLanding.vue | 118 + src/developers/components/DeveloperPage.vue | 340 +++ .../components/DeveloperPageFooter.vue | 84 + .../components/DeveloperProficiencies.vue | 87 + .../components/DeveloperProfileDiagram.vue | 44 + src/developers/components/type.ts | 45 + src/developers/components/utils.ts | 54 + src/developers/developers.json | 1955 +++++++++++++++++ src/developers/index.md | 11 + src/developers/partnerConfig.js | 73 + src/partners/components/PartnerAll.vue | 2 + src/partners/components/PartnerHero.vue | 68 +- src/partners/components/PartnerJoin.vue | 78 +- src/partners/components/PartnerLanding.vue | 91 +- src/partners/components/PartnerList.vue | 88 +- src/partners/components/PartnerPage.vue | 14 +- src/partners/components/type.ts | 3 +- src/partners/index.md | 1 + src/partners/partners.json | 34 + src/public/images/developers/1020-profile.svg | 25 + src/public/images/developers/1020-score.svg | 63 + src/public/images/developers/1346-profile.svg | 26 + src/public/images/developers/1346-score.svg | 63 + src/public/images/developers/2535-profile.svg | 26 + src/public/images/developers/2535-score.svg | 63 + src/public/images/developers/3021-profile.svg | 26 + src/public/images/developers/3021-score.svg | 63 + src/public/images/developers/3709-profile.svg | 26 + src/public/images/developers/3709-score.svg | 63 + src/public/images/developers/4747-profile.svg | 26 + src/public/images/developers/4747-score.svg | 63 + src/public/images/developers/5022-profile.svg | 26 + src/public/images/developers/5022-score.svg | 63 + src/public/images/developers/5328-profile.svg | 26 + src/public/images/developers/5328-score.svg | 63 + src/public/images/developers/5486-profile.svg | 26 + src/public/images/developers/5486-score.svg | 63 + src/public/images/developers/5697-profile.svg | 26 + src/public/images/developers/5697-score.svg | 63 + src/public/images/partners/proxify-dark.svg | 17 + src/public/images/partners/proxify-hero.jpg | Bin 0 -> 39604 bytes src/public/images/partners/proxify.svg | 17 + 57 files changed, 4797 insertions(+), 286 deletions(-) create mode 100644 .vitepress/theme/components/CallToActionSection.vue create mode 100644 .vitepress/theme/components/CardList.vue create mode 100644 .vitepress/theme/components/PageHero.vue create mode 100644 .vitepress/theme/components/PageShowcaseListLayout.vue create mode 100644 src/developers/[developerSlug].md create mode 100644 src/developers/[developerSlug].paths.ts create mode 100644 src/developers/components/CloudinaryImage.vue create mode 100644 src/developers/components/DeveloperCard.vue create mode 100644 src/developers/components/DeveloperCompensations.vue create mode 100644 src/developers/components/DeveloperEducation.vue create mode 100644 src/developers/components/DeveloperExperiences.vue create mode 100644 src/developers/components/DeveloperHero.vue create mode 100644 src/developers/components/DeveloperJoin.vue create mode 100644 src/developers/components/DeveloperLanding.vue create mode 100644 src/developers/components/DeveloperPage.vue create mode 100644 src/developers/components/DeveloperPageFooter.vue create mode 100644 src/developers/components/DeveloperProficiencies.vue create mode 100644 src/developers/components/DeveloperProfileDiagram.vue create mode 100644 src/developers/components/type.ts create mode 100644 src/developers/components/utils.ts create mode 100644 src/developers/developers.json create mode 100644 src/developers/index.md create mode 100644 src/developers/partnerConfig.js create mode 100644 src/public/images/developers/1020-profile.svg create mode 100644 src/public/images/developers/1020-score.svg create mode 100644 src/public/images/developers/1346-profile.svg create mode 100644 src/public/images/developers/1346-score.svg create mode 100644 src/public/images/developers/2535-profile.svg create mode 100644 src/public/images/developers/2535-score.svg create mode 100644 src/public/images/developers/3021-profile.svg create mode 100644 src/public/images/developers/3021-score.svg create mode 100644 src/public/images/developers/3709-profile.svg create mode 100644 src/public/images/developers/3709-score.svg create mode 100644 src/public/images/developers/4747-profile.svg create mode 100644 src/public/images/developers/4747-score.svg create mode 100644 src/public/images/developers/5022-profile.svg create mode 100644 src/public/images/developers/5022-score.svg create mode 100644 src/public/images/developers/5328-profile.svg create mode 100644 src/public/images/developers/5328-score.svg create mode 100644 src/public/images/developers/5486-profile.svg create mode 100644 src/public/images/developers/5486-score.svg create mode 100644 src/public/images/developers/5697-profile.svg create mode 100644 src/public/images/developers/5697-score.svg create mode 100644 src/public/images/partners/proxify-dark.svg create mode 100644 src/public/images/partners/proxify-hero.jpg create mode 100644 src/public/images/partners/proxify.svg diff --git a/.gitignore b/.gitignore index 4f548e6b75..5d217a489d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ .DS_Store .AppleDouble .LSOverride +.idea # Thumbnails ._* diff --git a/.vitepress/config.ts b/.vitepress/config.ts index dd0f10a780..728d4a8b80 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -45,6 +45,7 @@ const nav: ThemeConfig['nav'] = [ text: 'Resources', items: [ { text: 'Partners', link: '/partners/' }, + { text: 'Developers', link: '/developers/' }, { text: 'Themes', link: '/ecosystem/themes' }, { text: 'UI Components', link: 'https://ui-libs.vercel.app/' }, { @@ -125,9 +126,12 @@ const nav: ThemeConfig['nav'] = [ link: '/sponsor/' }, { - text: 'Partners', - link: '/partners/', - activeMatch: `^/partners/` + text: 'Experts', + activeMatch: `^/(partners|developers)/`, + items: [ + { text: 'Partners', link: '/partners/' }, + { text: 'Developers', link: '/developers/' } + ] } ] diff --git a/.vitepress/theme/components/CallToActionSection.vue b/.vitepress/theme/components/CallToActionSection.vue new file mode 100644 index 0000000000..546d05fbd2 --- /dev/null +++ b/.vitepress/theme/components/CallToActionSection.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/.vitepress/theme/components/CardList.vue b/.vitepress/theme/components/CardList.vue new file mode 100644 index 0000000000..e29722bf13 --- /dev/null +++ b/.vitepress/theme/components/CardList.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/.vitepress/theme/components/PageHero.vue b/.vitepress/theme/components/PageHero.vue new file mode 100644 index 0000000000..e3c1fb4769 --- /dev/null +++ b/.vitepress/theme/components/PageHero.vue @@ -0,0 +1,63 @@ + + + diff --git a/.vitepress/theme/components/PageShowcaseListLayout.vue b/.vitepress/theme/components/PageShowcaseListLayout.vue new file mode 100644 index 0000000000..ea223eff28 --- /dev/null +++ b/.vitepress/theme/components/PageShowcaseListLayout.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/developers/[developerSlug].md b/src/developers/[developerSlug].md new file mode 100644 index 0000000000..751efb0a08 --- /dev/null +++ b/src/developers/[developerSlug].md @@ -0,0 +1,23 @@ +--- +page: true +footer: false +title: Vue Developer +--- + + + + diff --git a/src/developers/[developerSlug].paths.ts b/src/developers/[developerSlug].paths.ts new file mode 100644 index 0000000000..9f5d4c1964 --- /dev/null +++ b/src/developers/[developerSlug].paths.ts @@ -0,0 +1,12 @@ +import developers from './developers.json' + +export default { + paths: developers.map((developer) => { + return { + params: { + developerId: developer.id, + developerSlug: developer.slug, + } + } + }) +} diff --git a/src/developers/components/CloudinaryImage.vue b/src/developers/components/CloudinaryImage.vue new file mode 100644 index 0000000000..7db3a6e057 --- /dev/null +++ b/src/developers/components/CloudinaryImage.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/developers/components/DeveloperCard.vue b/src/developers/components/DeveloperCard.vue new file mode 100644 index 0000000000..cbe446a579 --- /dev/null +++ b/src/developers/components/DeveloperCard.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/developers/components/DeveloperCompensations.vue b/src/developers/components/DeveloperCompensations.vue new file mode 100644 index 0000000000..c7bd417182 --- /dev/null +++ b/src/developers/components/DeveloperCompensations.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/developers/components/DeveloperEducation.vue b/src/developers/components/DeveloperEducation.vue new file mode 100644 index 0000000000..f72bcedacc --- /dev/null +++ b/src/developers/components/DeveloperEducation.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/developers/components/DeveloperExperiences.vue b/src/developers/components/DeveloperExperiences.vue new file mode 100644 index 0000000000..6610549abe --- /dev/null +++ b/src/developers/components/DeveloperExperiences.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/developers/components/DeveloperHero.vue b/src/developers/components/DeveloperHero.vue new file mode 100644 index 0000000000..8aa308cd94 --- /dev/null +++ b/src/developers/components/DeveloperHero.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/developers/components/DeveloperJoin.vue b/src/developers/components/DeveloperJoin.vue new file mode 100644 index 0000000000..69c329e1ef --- /dev/null +++ b/src/developers/components/DeveloperJoin.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/developers/components/DeveloperLanding.vue b/src/developers/components/DeveloperLanding.vue new file mode 100644 index 0000000000..3cc5335f03 --- /dev/null +++ b/src/developers/components/DeveloperLanding.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/developers/components/DeveloperPage.vue b/src/developers/components/DeveloperPage.vue new file mode 100644 index 0000000000..24fd918b35 --- /dev/null +++ b/src/developers/components/DeveloperPage.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/src/developers/components/DeveloperPageFooter.vue b/src/developers/components/DeveloperPageFooter.vue new file mode 100644 index 0000000000..ad04796467 --- /dev/null +++ b/src/developers/components/DeveloperPageFooter.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/developers/components/DeveloperProficiencies.vue b/src/developers/components/DeveloperProficiencies.vue new file mode 100644 index 0000000000..65a4e8becc --- /dev/null +++ b/src/developers/components/DeveloperProficiencies.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/developers/components/DeveloperProfileDiagram.vue b/src/developers/components/DeveloperProfileDiagram.vue new file mode 100644 index 0000000000..7042af24f1 --- /dev/null +++ b/src/developers/components/DeveloperProfileDiagram.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/developers/components/type.ts b/src/developers/components/type.ts new file mode 100644 index 0000000000..3326e6a02d --- /dev/null +++ b/src/developers/components/type.ts @@ -0,0 +1,45 @@ +export interface DeveloperExperienceDescription { + isGrouped: boolean; + content: string | string[]; +} + +export interface DeveloperExperience { + id: number; + role: string; + company: string; + startDate: string; + endDate: string; + period: string; + description: DeveloperExperienceDescription[]; + skills: string[]; +} + +export interface DeveloperEducation { + id: number; + degree: string; + school: string; + startDate: string; + endDate: string; +} + +export interface DeveloperCompensations { + partTime: string; + monthly: string; +} + +export interface DeveloperProfile { + id: number; + slug: string; + name: string; + alias: string; + description: string[]; + proficiencies: string[]; + compensations: DeveloperCompensations; + location: string; + region: string; + experiences?: DeveloperExperience[]; + education?: DeveloperEducation[]; +} + +export interface DeveloperProfiles extends Array { +} diff --git a/src/developers/components/utils.ts b/src/developers/components/utils.ts new file mode 100644 index 0000000000..3528f4826b --- /dev/null +++ b/src/developers/components/utils.ts @@ -0,0 +1,54 @@ +/** + * Generate a UTM-encoded URL for tracking purposes. + * @param baseUrl - The base URL to append UTM parameters to. + * @param page - The page path to be used for the UTM campaign. + * @param utmSource - The UTM source parameter. + * @param utmMedium - The UTM medium parameter. + * @returns The full URL with UTM parameters. + */ +export function generateUTMUrl( + baseUrl: string, + page: string = '/developers/', + utmSource: string = 'partnership', + utmMedium: string = 'vuejs' +): string { + if (!baseUrl) { + console.warn('Base URL is empty. Returning an empty string.') + return '' + } + + const cleanedPage = page.replace(/\//g, '-').replace(/^-+|-+$/g, '') + + const url = new URL(baseUrl) + url.searchParams.append('utm_source', utmSource) + url.searchParams.append('utm_medium', utmMedium) + url.searchParams.append('utm_campaign', cleanedPage) + + return url.toString() +} + +/** + * Truncate a combined string from an array of text to a specified length. + * @param textArray - The array of strings to combine and truncate. + * @param maxLength - The maximum allowed length of the resulting string. + * @param ellipsis - The string to append to truncated text, defaulting to '...'. + * @returns The truncated string with ellipsis if truncation occurs. + */ +export function truncateTextFromArray( + textArray: string[], + maxLength: number, + ellipsis: string = '...' +): string { + if (textArray.length === 0) return '' + + const combinedText = textArray.join(' ') + + if (combinedText.length <= maxLength) return combinedText + + let truncatedText = combinedText.slice(0, combinedText.lastIndexOf(' ', maxLength)) + + // Remove trailing comma or punctuation + truncatedText = truncatedText.replace(/,\s*$/, '') + + return `${truncatedText}${ellipsis}` +} diff --git a/src/developers/developers.json b/src/developers/developers.json new file mode 100644 index 0000000000..696387f759 --- /dev/null +++ b/src/developers/developers.json @@ -0,0 +1,1955 @@ +[ + { + "id": 1346, + "name": "Stelios Kitziris", + "slug": "stelios-vue-node-fullstack-developer", + "alias": "Stelios", + "description": [ + "Stelios is a fullstack developer with over six years of commercial experience, specializing in the MEVN stack.", + "He is skilled in building scalable software solutions and has successfully led the development of several large-scale and business-critical systems. Also, he is interested in emerging technologies such as Web3 and AI.", + "Stelios holds a Master’s Degree in Computing, equipping him with a thorough understanding of the tech landscape. His perfectionist approach is ideal for projects that benefit from meticulous attention to detail." + ], + "proficiencies": [ + "MongoDB", + "Vue.js", + "Express.js", + "Node.js", + "TypeScript", + "Nuxt.js", + "Laravel", + "PHP", + "PostgreSQL", + "Ionic", + "Cordova", + "MySQL", + "Docker", + "React.js" + ], + "compensations": { + "partTime": "€4,276 /month (20 h per week)", + "monthly": "€7,879 /month (40 h per week)" + }, + "location": "Greece", + "region": "GTM+3", + "experiences": [ + { + "id": 1, + "role": "Senior Frontend Engineer", + "company": "White Hat Gaming", + "startDate": "Dec 2020", + "endDate": "May 2024", + "period": "3 years 5 months", + "description": [ + { + "isGrouped": false, + "content": "White Hat Gaming is a casino game provider company in Malta:" + }, + { + "isGrouped": true, + "content": [ + "Using Vue.js version 3 with composition API for front end development Software Architecture;", + "Planning and Development for in-house Web Apps; Unit testing." + ] + } + ], + "skills": [ + "Vue.js", + "PostgreSQL", + "Node.js", + "Nuxt.js", + "TypeScript" + ] + }, + { + "id": 2, + "role": "Lead Node.js Developer", + "company": "Netguru S.A.", + "startDate": "Dec 2019", + "endDate": "Dec 2020", + "period": "1 year", + "description": [ + { + "isGrouped": true, + "content": [ + "Provided effective troubleshooting and remediation for web applications;", + "Interfaced with clients to identify business requirements;", + "Utilized the latest software development tools, techniques, and approaches. Using Node.js, Express.js, Vue.js, React.js, MongoDB, PostgreSQL. Brought forth a passion and dedication to software development;", + "Utilized the latest software development tools, techniques, and approaches." + ] + } + ], + "skills": [ + "Vue.js", + "MongoDB", + "Node.js", + "Express.js", + "PostgreSQL", + "TypeScript", + "Nuxt.js" + ] + }, + { + "id": 3, + "role": "Lead Software Engineer", + "company": "Draxis Environment S.A.", + "startDate": "Oct 2017", + "endDate": "Dec 2019", + "period": "2 years 2 months", + "description": [ + { + "isGrouped": false, + "content": "Draxis was a company that created applications for European unions, with a focus on agricultural applications:" + }, + { + "isGrouped": true, + "content": [ + "Performed software architecture, planning, and development for web apps, and mobile apps;", + "Designed and developed large-scale ICT systems, funded by international donors, the Horizon 2020 program, and the European Commission." + ] + } + ], + "skills": [ + "PHP", + "Laravel", + "JavaScript", + "React.js", + "Vue.js", + "PostgreSQL", + "TypeScript", + "Node.js", + "Nuxt.js", + "Cordova" + ] + }, + { + "id": 4, + "role": "Full-Stack Developer", + "company": "Archirodon Group N.V.", + "startDate": "Sept 2015", + "endDate": "Aug 2017", + "period": "1 year 11 months", + "description": [ + { + "isGrouped": false, + "content": "Archirodon Group N.V. was a construction company focused on building artificial lakes and skyscrapers." + }, + { + "isGrouped": true, + "content": [ + "Developed web applications;", + "Created, communicated, and managed project plans." + ] + } + ], + "skills": [ + "Laravel", + "JavaScript", + "Angular.js", + "Vue.js" + ] + }, + { + "id": 5, + "role": "Web Developer", + "company": "24 Media Digital Media Group", + "startDate": "Jan 2015", + "endDate": "Aug 2015", + "period": "7 months", + "description": [ + { + "isGrouped": false, + "content": "It was an internship. 24 Media Digital Media Group is a big journal company in Greece." + }, + { + "isGrouped": true, + "content": [ + "Created websites and web applications." + ] + } + ], + "skills": [ + "PHP", + "Laravel", + "Angular.js", + "WordPress" + ] + }, + { + "id": 6, + "role": "Web Developer", + "company": "Shape LTD", + "startDate": "Dec 2013", + "endDate": "Feb 2014", + "period": "2 months", + "description": [ + { + "isGrouped": false, + "content": "It was an ads company, and Stelios was creating websites." + }, + { + "isGrouped": true, + "content": [ + "Developed and supported the website;", + "Performed SEO of the platform." + ] + } + ], + "skills": [ + "PHP", + "WordPress" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "MSc. Computing", + "school": "Cardiff Metropolitan University", + "startDate": "2019", + "endDate": "2022" + }, + { + "id": 2, + "degree": "BSc. Computer Science", + "school": "IEK Akmi", + "startDate": "2014", + "endDate": "2016" + } + ] + }, + { + "id": 2535, + "name": "Tomek Jankowski", + "slug": "tomek-vue-node-fullstack-developer", + "alias": "Tomek", + "description": [ + "Tomek is a fullstack developer with over 17 years of commercial experience. Over the years, he has transitioned from using PHP to mastering modern tech stacks, focusing on Vue.js and Node.js in the last six years. His expertise in these technologies has driven the development and support of robust, high-traffic systems.", + "As the Technical Director at a web development agency for over a decade, he has successfully managed a team of 12 to 17 people and overseen projects for high-profile clients across various sectors.", + "Tomek has consistently received high appreciation from Proxify clients for his outstanding contributions and leadership." + ], + "proficiencies": [ + "Vue.js", + "Node.js", + "MongoDB", + "Nuxt.js", + "PHP", + "MySQL", + "Google Cloud", + "ElasticSearch", + "Redis", + "RabbitMQ", + "Kubernetes", + "TypeScript", + "Express.js", + "Koa", + "Nest.js" + ], + "compensations": { + "partTime": "€4,696 /month (20 h per week)", + "monthly": "€8,551 /month (40 h per week)" + }, + "location": "Poland", + "region": "GTM+3", + "experiences": [ + { + "id": 1, + "role": "Technical Director", + "company": "i3MEDIA LTD", + "startDate": "Jul 2010", + "endDate": "Jun 2022", + "period": "11 years 11 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Feature design, requirements for the dev team.", + "Development of more advanced or mission-critical features.", + "Code reviews + support for the other dev/front-end.", + "Technical meetings with clients.", + "Infrastructure design and maintenance/automation (GCP last 10 years).", + "Time & cost estimates." + ] + }, + { + "isGrouped": false, + "content": "Systems That Built" + }, + { + "isGrouped": true, + "content": [ + "Multi-channel (eBay, Amazon + web front) eCommerce solution with advanced modules to calculate optimal selling prices, complex product definitions & shipping rules, promotions, and integrations with couriers & warehousing solutions.", + "Public sector CMS with content versioning, advanced access control, publishing flows, widget-based content editor, dynamic forms module with manageable logic, validation, and payments; eventually used by councils for most citizen-council interactions (about 80 forms per website, i.e., bus passes, reporting issues, bins).", + "Charity donation platform - used to this date by a number of medium to large charities in the UK, integrated with MS Dynamics and other CRM solutions, also integrated with Gov.UK.", + "Project management - dedicated for media agencies, used internally for about 4 years. Too many features to list, definitely more than Basecamp/TeamWork (leaders at the time).", + "SEO campaign management - dedicated to marketing agencies, integrated into all relevant tools in the world of online marketing, report generation, prospect negotiations, content writing, time tracking, campaign schedule planning, task lists, etc.", + "Many bespoke websites: penny auctions, online poster design, search directories of various sorts, award applications, recruitment...the list goes on." + ] + } + ], + "skills": [ + "PHP", + "Symfony", + "Laravel", + "MySQL", + "JavaScript", + "Vue.js", + "jQuery", + "Node.js", + "Zend", + "Google Cloud" + ] + }, + { + "id": 2, + "role": "Web Developer, then Lead Developer", + "company": "i3MEDIA", + "startDate": "May 2007", + "endDate": "Jul 2010", + "period": "3 years 2 months", + "description": [ + { + "isGrouped": false, + "content": "i3MEDIA was a small agency building websites for local businesses.\n\n" + }, + { + "isGrouped": true, + "content": [ + "Developed the first bespoke CMS, which became the core product, the second version of which was implemented on some nationally recognized websites in 2010." + ] + } + ], + "skills": [ + "PHP", + "MySQL", + "JavaScript", + "Zend" + ] + }, + { + "id": 3, + "role": "Web Developer", + "company": "Freelance", + "startDate": "Mar 2005", + "endDate": "Mar 2007", + "period": "2 years", + "description": [ + { + "isGrouped": false, + "content": "Managed to complete 3 commercial projects." + } + ], + "skills": [ + "PHP", + "MySQL", + "Adobe Flash" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "MSc. Computer Science", + "school": "Faculty of Mathematics and Computer Science, University of Łódź", + "startDate": "2002", + "endDate": "2006" + } + ] + }, + { + "id": 3021, + "name": "Vardan Hayrapetyan", + "slug": "vardan-vue-node-fullstack-developer", + "alias": "Vardan", + "description": [ + "Vardan is a frontend-heavy fullstack developer with expertise in Vue.js, and Node.js. With six years of experience, he has worked on several large-scale web applications, particularly excelling in the real estate sector.", + "He is known for his leadership skills, guiding development teams toward completing high-quality projects that often exceed expectations. His problem-solving and management abilities ensure successful project outcomes.", + "Beyond his technical proficiency, Vardan's analytical skills are enhanced by his Master’s in International Relations, adding a unique perspective to his approach in technology projects." + ], + "proficiencies": [ + "Vue.js", + "React.js", + "Node.js", + "MongoDB", + "TypeScript", + "PostgreSQL", + "SQL", + "Apollo", + "Flask" + ], + "compensations": { + "partTime": "€3,772 /month (20 h per week)", + "monthly": "€6,871 /month (40 h per week)" + }, + "location": "Armenia", + "region": "GTM+4", + "experiences": [ + { + "id": 1, + "role": "Tech Lead", + "company": "Flair.hr", + "startDate": "Feb 2023", + "endDate": "Feb 2024", + "period": "1 year", + "description": [ + { + "isGrouped": true, + "content": [ + "Led the development of the HR Help Desk, Ticketing, Inventory, Documents Management and Performance Reviews projects.", + "Participated in code reviews and provided constructive feedback to colleagues to ensure best practices and high-quality code.", + "Led post-project evaluations to identify areas for improvement and implemented process improvements for future projects." + ] + } + ], + "skills": [ + "React.js", + "Node.js", + "GraphQL", + "Apollo" + ] + }, + { + "id": 2, + "role": "Tech Lead", + "company": "Monday Merch", + "startDate": "Feb 2022", + "endDate": "Dec 2023", + "period": "1 year 10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Effectively communicated project progress, risks, and issues to stakeholders, ensuring that all parties were informed and aligned throughout the project.", + "Conducted a thorough analysis of existing processes and identified areas for improvement, using this knowledge to develop and implement new processes that better aligned with business needs and objectives.", + "Switched the MVP version by defining the project structure and revisiting the architecture." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "TypeScript", + "Python", + "Tailwind", + "Team leading" + ] + }, + { + "id": 3, + "role": "Web Developer", + "company": "Remix", + "startDate": "May 2022", + "endDate": "Nov 2022", + "period": "6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed the Remix official website's user interface and core functionalities, ensuring mobile responsiveness;", + "Utilized GitHub Pages to deploy the React application;", + "Implemented a custom section scroller for enhanced user experience." + ] + } + ], + "skills": [ + "JavaScript", + "React.js", + "TypeScript", + "Project management", + "Tailwind" + ] + }, + { + "id": 4, + "role": "Tech Lead", + "company": "Flote", + "startDate": "May 2017", + "endDate": "Nov 2022", + "period": "5 years 6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Mentored 4 junior frontend developers, enhancing their proficiency in JavaScript and Vue.js;", + "Collaborated closely with the PM to ensure alignment with project plans, timelines, and billing;", + "Developed and constructed dynamic user interfaces within Agile environments for enterprise clients with valuations of up to $3 billion;", + "Participated actively in all development phases, from conceptualization and functional design to detailed implementation, debugging, and software solution deployment;", + "Supervised and coordinated a team of six employees, overseeing multiple critical business processes;", + "Led the design of the project's frontend architecture, leading weekly team meetings and formulating and executing strategies and plans;", + "Provided 24/7 technical support to maintain the seamless operation of the website;", + "Generated wireframes, mockups, and prototypes to communicate design concepts visually;", + "Implemented responsive design techniques, ensuring optimal user interface performance across various devices and screen sizes;", + "Contributed to enhancing the software development by proposing new tools and implementing best practices;", + "Conducted user research and usability testing, gathering feedback and pinpointing areas for improvement;", + "Played a key role in documenting project requirements, technical specifications, and development procedures." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "TypeScript", + "Project management", + "Design", + "Tailwind", + "Team leading" + ] + }, + { + "id": 5, + "role": "Tech Lead", + "company": "Tenanti", + "startDate": "Dec 2019", + "endDate": "Jun 2021", + "period": "1 year 6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Supervised a web development team, which included contract and off-shore developers, and held supervisory responsibilities over employees;", + "Established team-wide standards for quality processes and methodologies, ensuring that all applications met the highest quality benchmarks;", + "Provided mentorship and support to fellow team members, functioning as a team leader and in client interactions;", + "Led team meetings and organized task prioritization to ensure the punctual delivery of projects met required standards;", + "Maintained vigilant oversight across all facets of application development to guarantee alignment with quality standards;", + "Created comprehensive documentation for development tasks and Product Requirement Documents (PRD), ensuring clarity for team members and stakeholders;", + "Orchestrated software release planning and execution, encompassing testing, deployment, and documentation processes;", + "Conducted code reviews of team members' work, offering constructive feedback and guidance to enhance code quality.", + "Conducted code reviews of team members' work, offering constructive feedback and guidance to enhance code quality." + ] + } + ], + "skills": [ + "JavaScript", + "React.js", + "TypeScript", + "Flask", + "Design", + "Tailwind", + "Team leading" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "MSc. International Relations and Affairs", + "school": "Armenian National Academy of Sciences", + "startDate": "2017", + "endDate": "2019" + }, + { + "id": 2, + "degree": "BSc. Caucasian Studies", + "school": "Yerevan State University", + "startDate": "2013", + "endDate": "2017" + } + ] + }, + { + "id": 5486, + "name": "Abdulqudus Abubakre", + "slug": "abdulqudus-vue-frontend-developer", + "alias": "Abdulqudus", + "description": [ + "Abdulqudus is a senior frontend developer with over six years of commercial experience. His main framework of choice is Vue.js. He has also worked with frameworks like Nuxt.js and Vuetify for over three years. He is a fan of TDD and uses Cypress as a main testing tool in all his projects.", + "Abdulqudus holds a Bachelor's degree in Computer Engineering from the Federal University of Technology and has worked for companies in various countries including Switzerland and the USA, in diverse industries, including fintech and healthcare." + ], + "proficiencies": [ + "Vue.js", + "Nuxt.js", + "Vuex", + "TypeScript", + "Golang", + "Tailwind", + "Cypress", + "React.js", + "Chart.js", + "Storybook", + "Grafana", + "Apollo", + "GraphQL", + "Figma", + "Sentry", + "Plotly" + ], + "compensations": { + "partTime": "€3,436 /month (20 h per week)", + "monthly": "€6,199 /month (40 h per week)" + }, + "location": "Nigeria", + "region": "GTM+1", + "experiences": [ + { + "id": 1, + "role": "Frontend Developer", + "company": "CertifactionAg, Switzerland", + "startDate": "Aug 2021", + "endDate": "Oct 2023", + "period": "2 years 2 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed in-house PDF signing that allows users to process PDF documents directly within the browser using web assembly and Vuejs.", + "Built custom plugins and APIs tailored to clients' specifications, facilitating seamless integration into their web applications and Command Line Interfaces (CLIs).", + "Improved product quality and reduced risk of failure in production by setting up Cypress for code testing and Grafana for metrics monitoring.", + "Conducted performance enhancements through audits using Lighthouse and optimizing web application speed via advanced techniques like code splitting and lazy loading.", + "Worked on an e-prescription web app using Vue3, Typescript, and Bootstrap which allows medical personnel to ensure the authenticity of their prescriptions.", + "Collaborate with the design team to improve the user experience of the product by creating reusable components that conform to accessibility standards.", + "Perform regular peer programming and code reviews to evaluate the quality of the client and server-side code." + ] + } + ], + "skills": [ + "Vue.js", + "Bootstrap", + "TypeScript", + "Golang", + "Figma", + "Tailwind", + "Grafana", + "Unit Testing", + "IntelliJ", + "Webstorm", + "Cypress", + "Storybook" + ] + }, + { + "id": 2, + "role": "Senior Frontend Developer", + "company": "MyEtherWallet, USA", + "startDate": "May 2022", + "endDate": "Feb 2023", + "period": "9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Migrated the entire codebase for Ethereum dashboard explorer (ethvm.com) from Vue2 to Vue3 in just under 6 months.", + "Collaborate with stakeholders and the leadership team to build demo features for the Ethereum Devcon 2022 event in Columbia.", + "Provided support to the business development team with pre-sale activities, contributing to RFPs where appropriate and assisting in large pitches to potential clients where required.", + "Integrated OpenSea API with the web app to display up-to-date NFT data.", + "Setup GraphQL and Apollo client to help with integration with the new Nodejs API.", + "Improved data visualization by integrating ChartJS, enabling a comprehensive display of portfolio value details directly within the web." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "TypeScript", + "Node.js", + "GraphQL", + "Figma", + "SCSS", + "Vuetify", + "Apollo", + "Chart.js" + ] + }, + { + "id": 3, + "role": "Frontend Developer", + "company": "JamfSoftware, USA", + "startDate": "Nov 2021", + "endDate": "May 2022", + "period": "6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Implemented Sentry configuration to monitor and rectify recurring issues in production.", + "Enhanced test coverage of the web dashboard using Cypress and Vue Test Utils.", + "Worked with JamfProtect team on the admin web app of the JamfProtect application using Vuejs." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "Bootstrap", + "GraphQL", + "Figma", + "Unit Testing", + "Sentry", + "Cypress" + ] + }, + { + "id": 4, + "role": "Software Developer & Team Lead", + "company": "Outsource Global", + "startDate": "Dec 2019", + "endDate": "Jun 2021", + "period": "1 year 6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Led a team of backend and frontend developers to build an in-house HR system using Reactjs and Rails to track employee attendance, loans, and salary advances.", + "Handled communication between clients and team to better understand requirements and offered advice where necessary.", + "Collaborated with the design team to produce designs for client projects using Figma.", + "Oversaw the development of a central management system for the Federal Ministry of Humanitarian Affairs, Disaster Management, and Social Development Nigeria to keep track of the various social intervention schemes.", + "Built an online test portal with ReactJS and styled-components as part of the NASIMS program to provide a platform for assessing beneficiaries of the intervention schemes program." + ] + } + ], + "skills": [ + "JavaScript", + "React.js", + "Vue.js", + "Ruby on Rails", + "Node.js", + "Figma", + "Tailwind", + "Nuxt.js", + "Vuetify", + "Team leading" + ] + }, + { + "id": 5, + "role": "Frontend Developer Intern", + "company": "eHealth4everyone", + "startDate": "Jun 2018", + "endDate": "Dec 2018", + "period": "6 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed a multi-source data analytics dashboard using VueJS.", + "Total rewrite of existing data visualization library Plotly to Highcharts.", + "Integrated map SVG data showing states with the ability to drill down to local governments, which helped local hospitals and clinics have a better idea of the health data in their community.", + "Used Google scripts to convert data gathered in Google Sheets to Firebase JSON objects to be used for data visualization on the web app.", + "Provided general IT support to office staff, ensuring the internet was running and all computers worked as expected." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "Firebase", + "Vuetify", + "JSON", + "Chart.js", + "Plotly" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Engineering", + "school": "Federal University Of Technology", + "startDate": "2014", + "endDate": "2020" + } + ] + }, + { + "id": 5328, + "name": "Santiago Anaya", + "slug": "santiago-anaya-vue-ruby-fullstack-developer", + "alias": "Santiago", + "description": [ + "Santiago is a fullstack engineer with over six years of commercial experience, focusing on frontend development. He is an expert in Vue.js. On the backend, he uses Ruby on Rails and various relational databases, particularly PostgreSQL.", + "He is adept at increasing app performance and enhancing user experience, significantly contributing to every engagement he undertakes. His experience as a Tech and Engineering Lead highlights his leadership capabilities and ability to drive technical initiatives.", + "Santiago's combination of technical expertise, leadership skills, and dedication to improving application performance makes him a valuable asset to any development team." + ], + "proficiencies": [ + "Vue.js", + "PostgreSQL", + "Ruby", + "Ruby on Rails", + "TypeScript", + "SQL", + "Java", + "Vuex", + "Backbone", + "Angular", + "MySQL", + "Vuetify", + "React.js", + "Node.js", + "WordPress", + "MongoDB" + ], + "compensations": { + "partTime": "€3,100 /month (20 h per week)", + "monthly": "€5,695 /month (40 h per week)" + }, + "location": "Argentina", + "region": "GTM-3", + "experiences": [ + { + "id": 1, + "role": "Engineer Manager", + "company": "WISBOO.COM", + "startDate": "Oct 2022", + "endDate": "Aug 2023", + "period": "10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "GROUP TECH LEAD & DEVELOPER ENGINEER MANAGER.", + "APP DEVELOPMENT - WISBOO.COM / A dynamic application tailored for content creators, enabling them to craft and sell courses through personalized websites.", + "Responsible for the roles of Engineer Manager and Tech Lead.", + "Helped the team with contributing significantly to a dedicated working cell focused on a specific component of the app." + ] + } + ], + "skills": [ + "Angular.js", + "React.js", + "Ruby on Rails", + "Bootstrap" + ] + }, + { + "id": 2, + "role": "Full Stack Developer", + "company": "KEEPCON", + "startDate": "Jun 2020", + "endDate": "Apr 2022", + "period": "1 year 10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "APP DEVELOPMENT - KEEPCON.COM / An innovative application for large corporations, aggregating messages from various social media platforms for efficient operator response.", + "Responsible for a strategic migration to Vue.js.", + "Helped the team with enhancing the app's performance and user experience." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "Ruby on Rails", + "Bootstrap", + "TypeScript", + "Java", + "Backbone" + ] + }, + { + "id": 3, + "role": "Full Stack Developer", + "company": "XUBIO", + "startDate": "Mar 2019", + "endDate": "Dec 2019", + "period": "9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "APP DEVELOPMENT - XUBIO.COM / A specialized application for accountants, designed to manage client or company accounts with features tailored to different countries.", + "Responsible for providing a robust and user-friendly platform for accounting needs." + ] + } + ], + "skills": [ + "MySQL", + "Bootstrap", + "TypeScript", + "Java" + ] + }, + { + "id": 4, + "role": "Full Stack Developer", + "company": "KEEPERS", + "startDate": "Feb 2018", + "endDate": "Mar 2019", + "period": "1 year 1 month", + "description": [ + { + "isGrouped": true, + "content": [ + "WEB APPLICATIONS DEVELOPMENT.", + "Responsible for user-friendly and efficient platforms." + ] + } + ], + "skills": [ + "Vue.js", + "MongoDB", + "Node.js" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Systems Engeneering", + "school": "Universidad Technologica Nacinal", + "startDate": "2015", + "endDate": "2021" + } + ] + }, + { + "id": 5697, + "name": "Harshit Sangani", + "slug": "harshit-vue-frontend-developer", + "alias": "Harshit", + "description": [ + "Harshit is a frontend engineer with over six years of commercial experience, specializing in Vue.js. He has been integral to various stages of the software development lifecycle, from ideation to deployment, ensuring top-notch user experiences and scalable applications.", + "His expertise extends to modern frontend technologies and proficiency in DevOps practices. Notably, he has led the development of a CO2 Calculator for cost-splitting emissions and a community application targeting a 15M+ user base.", + "His strong background in building complex, modular frontend solutions and managing deployment cycles and state management tools like Vuex and Apollo further solidifies his capability to deliver high-quality, user-centric applications." + ], + "proficiencies": [ + "Vue.js", + "Nuxt.js", + "TypeScript", + "Flutter", + "Node.js", + "Golang", + "GraphQL", + "React.js", + "JavaScript", + "Tailwind", + "Dart", + "Apollo", + "Vuex", + "Figma", + "Neo4j", + "Vuetify", + "Angular", + "Storybook", + "Laravel", + "React Native" + ], + "compensations": { + "partTime": "€3,688 /month (20 h per week)", + "monthly": "€6,552 /month (40 h per week)" + }, + "location": "India", + "region": "GTM+5:30", + "experiences": [ + { + "id": 1, + "role": "Sr. Software Engineer", + "company": "Purpose Digital Real Estate GmbH", + "startDate": "Nov 2022", + "endDate": "Jun 2024", + "period": "1 year 7 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Single-handedly worked on a CO2 Calculator, which helped easily calculate the cost split for CO2 emission between landlords and tenants.", + "Created the base project setup, leveraging TypeScript to speed up the development in the long run.", + "Generated many modular base components to be used throughout the project.", + "Helped setting up deployment cycles and environments using Vercel." + ] + } + ], + "skills": [ + "Vue.js", + "TypeScript", + "Microservices", + "Tailwind", + "DevOps", + "Angular", + "VSCode", + "Storybook", + "Vuex" + ] + }, + { + "id": 2, + "role": "Founder and Engineering Manager", + "company": "BK Softech", + "startDate": "Jun 2022", + "endDate": "Apr 2024", + "period": "1 year and 10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Managed a team of 15+ members actively collaborating on non-profit community projects.", + "Connected communities across divided regions on a single platform to perform integrated businesses, find matrimonial matches, engage in advanced discussions, and much more." + ] + } + ], + "skills": [ + "React.js", + "Vue.js", + "TypeScript", + "Node.js", + "Flutter", + "Golang", + "Microservices", + "Figma", + "Tailwind", + "Nuxt.js", + "DevOps", + "Dart", + "Neo4j", + "MVVM", + "Vuetify", + "VSCode", + "Chakra UI", + "Vuex" + ] + }, + { + "id": 3, + "role": "Sr. Software Engineer", + "company": "REO", + "startDate": "Nov 2021", + "endDate": "Oct 2022", + "period": "11 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Worked with a great team to build advanced real-estate brokerage software.", + "Solved many user-centric issues and helped the team transition to TypeScript.", + "Created real-time compilation of GraphQL schemas to be directly used in the Frontend codebase, reducing the related bug reports by ~40% and enhancing Developer Experience." + ] + } + ], + "skills": [ + "Vue.js", + "TypeScript", + "GraphQL", + "Microservices", + "Tailwind", + "Nuxt.js", + "DevOps", + "VSCode", + "Apollo", + "Vuex" + ] + }, + { + "id": 4, + "role": "Co-Founder and Sr. Software Engineer", + "company": "HK Byte", + "startDate": "Nov 2017", + "endDate": "Apr 2022", + "period": "4 years 5 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Fulfilled requirements of 20+ clients.", + "Developed 25+ projects.", + "Helped the team grow with an overall experience in the SDLC process.", + "Managed a team of 8+ members.", + "Provided technical support to two successful startups, uplifting their profits by more than 250% and still counting." + ] + } + ], + "skills": [ + "Laravel", + "JavaScript", + "Vue.js", + "TypeScript", + "Adobe Illustrator", + "Node.js", + "React Native", + "Flutter", + "Figma", + "Tailwind", + "Nuxt.js", + "DevOps", + "Dart", + "Neo4j", + "MVVM", + "VSCode", + "Fusion 360", + "Storybook", + "Vuex" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Science", + "school": "Smt. CZMG BCA College", + "startDate": "2015", + "endDate": "2018" + } + ] + }, + { + "id": 3709, + "name": "Kostiantyn Draliuk", + "slug": "kostiantyn-vue-frontend-developer", + "alias": "Kostiantyn", + "description": [ + "Kostiantyn is a frontend developer with eight years of commercial experience. His primary expertise lies in Vue.js, where he has demonstrated exceptional proficiency in building robust and scalable web applications.", + "On top of his development skills, he has a great eye for design and works alongside the designers in his teams using Figma.", + "He has a proven track record of working with Proxify clients, delivering outstanding results with both high output and high code quality." + ], + "proficiencies": [ + "Vue.js", + "Vuex", + "Figma", + "Nuxt.js", + "TypeScript", + "Cypress", + "Svelte", + "JavaScript", + "SvelteKit" + ], + "compensations": { + "partTime": "€4,024 /month (20 h per week)", + "monthly": "€7,375 /month (40 h per week)" + }, + "location": "Ukraine", + "region": "GTM+3", + "experiences": [ + { + "id": 1, + "role": "Software Engineer (Frontend Developer / VueJs Developer / Svelte Developer)", + "company": "DNV GL (Norway, Remote)", + "startDate": "Oct 2021", + "endDate": "Jul 2024", + "period": "2 years 9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed high-performance micro-frontends using cutting-edge technologies like VueJS, Svelte, and TypeScript, resulting in improved application performance and scalability.", + "Played a key role in designing and implementing a micro-frontend applications, component libraries, and routing, which allowed for faster development, easier maintenance, and consistent user experiences across multiple applications.", + "Collaborated with cross-functional teams, including UX/UI designers, backend developers, and product managers, in an Agile environment to ensure smooth communication, timely delivery of features, and overall project success.", + "Actively participated in code reviews, ensuring adherence to best practices and high-quality code standards.", + "Implemented and maintained unit and integration tests, resulting in increased application stability and reduced time spent on bug fixes.", + "Demonstrated commitment to continuous learning and professional development by staying up-to-date with the latest frontend technologies and industry trends, leading to adopting new tools and practices that improved team efficiency and product quality." + ] + } + ], + "skills": [ + "Vue.js", + "TypeScript", + "Svelte" + ] + }, + { + "id": 2, + "role": "Full-stack Developer", + "company": "Freelance", + "startDate": "Dec 2017", + "endDate": "Oct 2021", + "period": "3 years 10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Successfully delivered a wide range of projects for diverse clients, including the development of websites from scratch, enhancements to existing frontends, and the creation of custom web applications, showcasing adaptability and versatility in addressing varied client needs.", + "Achieved outstanding results in speed optimization, SEO optimization, and quality audits, leading to increased client satisfaction, improved site rankings, and reduced page load times.", + "Expertly utilized a diverse range of frontend and backend technologies, including VueJS, Laravel, NodeJS, AdonisJs, and ExpressJS, to develop tailor-made solutions that met client requirements and exceeded expectations.", + "Developed and maintained component libraries and design systems in VueJS, ensuring a seamless user experience, improved maintainability, and efficient UI development across multiple projects.", + "Collaborated with clients to gather requirements, provide estimates, and offer technical guidance, ensuring clear communication, timely delivery, and alignment with project goals.", + "Effectively managed projects using tools like Jira, Azure, and YouTrack, prioritizing tasks, tracking progress, and providing regular status updates to clients.", + "Proactively identified and addressed performance bottlenecks, security vulnerabilities, and code maintainability issues, resulting in the delivery of robust, secure, and maintainable web applications.", + "Kept up-to-date with the latest industry trends, best practices, and emerging technologies, incorporating them into projects when appropriate to deliver cutting-edge solutions and stay competitive in the market." + ] + } + ], + "skills": [ + "Laravel", + "Vue.js", + "Node.js", + "Express.js", + "Azure" + ] + }, + { + "id": 3, + "role": "Frontend Developer", + "company": "Boboyan (Khmelnytskyy, Ukraine)", + "startDate": "Mar 2016", + "endDate": "Dec 2017", + "period": "1 year 9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed high-quality frontend solutions for Magento and OpenCart e-commerce platforms, consistently meeting project deadlines and exceeding client expectations with visually appealing and user-friendly designs.", + "Leveraged expertise in Git, Docker, and Linux to optimize development workflows, enhance collaboration among team members, and ensure efficient deployment and maintenance of applications.", + "Mentored colleagues in frontend development best practices, fostering a collaborative and supportive team environment that encouraged skill development and knowledge sharing.", + "Acted as a key contributor in the planning and execution of projects, working closely with project managers and other team members to gather requirements, estimate timelines, and allocate resources effectively.", + "Implemented responsive design principles, ensuring seamless and consistent user experiences across various devices and browsers, resulting in increased customer engagement and reduced bounce rates.", + "Proactively identified and resolved performance issues, bugs, and usability concerns, leading to improved site stability, increased conversion rates, and overall enhanced user satisfaction.", + "Participated in regular code reviews, providing constructive feedback and suggestions for improvement, leading to higher quality code and reduced technical debt.", + "Stayed up-to-date with the latest industry trends and frontend technologies, incorporating new tools and best practices to improve team efficiency, product quality, and client satisfaction." + ] + } + ], + "skills": [ + "JavaScript", + "Angular.js", + "Docker", + "Magento", + "Linux", + "eCommerce" + ] + }, + { + "id": 4, + "role": "Frontend Developer", + "company": "Avivi (Khmelnytskyy, Ukraine)", + "startDate": "Feb 2015", + "endDate": "Oct 2016", + "period": "1 year 8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Crafted visually stunning and responsive frontend designs for a variety of CMS-based websites using Photoshop and Zeplin mockups, resulting in increased client satisfaction and enhanced user experiences.", + "Developed responsive email templates that significantly improved client engagement, open rates, and click-through rates by optimizing for various devices and email clients.", + "Demonstrated proficiency in CSS, HTML, JavaScript, PHP, Angular, and Git to deliver exceptional results, showcasing adaptability and a strong foundation in frontend development technologies.", + "Collaborated with cross-functional teams, including designers, developers, and project managers, to ensure clear communication, efficient workflows, and alignment with project goals.", + "Implemented web accessibility best practices, ensuring that websites were usable and inclusive for a diverse range of users, leading to increased site traffic and improved brand reputation.", + "Actively participated in code reviews and knowledge sharing sessions, contributing to the continuous improvement of the team's coding standards and practices.", + "Worked with various CMS platforms, gaining valuable experience in customizing and extending their functionality to meet unique client requirements.", + "Kept up-to-date with the latest industry trends, best practices, and emerging frontend technologies, applying new knowledge and techniques to projects as appropriate." + ] + } + ], + "skills": [ + "PHP", + "JavaScript", + "Angular" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Engineering and Systems Programming", + "school": "Khmelnytskyi National University", + "startDate": "2013", + "endDate": "2017" + } + ] + }, + { + "id": 5022, + "name": "Eduard Miskov", + "slug": "eduard-miskov-vue-frontend-developer", + "alias": "Eduard", + "description": [ + "Eduard is a frontend developer with over seven years of commercial experience. His primary expertise is crafting visually appealing and user-friendly web applications using Vue.js.", + "Eduard's positivity and high motivation set him apart in the fast-evolving field of frontend development. His outstanding code quality highlights his technical expertise and commitment to excellence.", + "He has successfully collaborated with Proxify clients, consistently delivering timely results and maintaining high-quality standards. Eduard's ability to focus on engagement goals and deliver outstanding results makes him a valuable team member." + ], + "proficiencies": [ + "Vue.js", + "Vuex", + "Nuxt.js", + "Vanilla JavaScript", + "TypeScript", + "Jest", + "Figma", + "Vagrant", + "Shopware", + "jQuery", + "Storybook" + ], + "compensations": { + "partTime": "€3,436 /month (20 h per week)", + "monthly": "€6,119 /month (40 h per week)" + }, + "location": "Ukraine", + "region": "GTM+3", + "experiences": [ + { + "id": 1, + "role": "Frontend Developer", + "company": "Avenga", + "startDate": "May 2023", + "endDate": "Aug 2023", + "period": "3 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Led frontend development efforts in creating the online clothing store network for a leading German market player.", + "Focused on designing and implementing user panels, product listing pages, and search functionalities to enhance user experience.", + "Developed reusable components for Storybook, featuring diverse themes, to ensure consistent design elements across all online stores with unique visual identities.", + "Employed Nuxt 3 for its performance optimization and server-side rendering capabilities, enhancing overall website speed and responsiveness.", + "Demonstrated proficiency in Storybook, Vue, Nuxt, and Shopware to meet project requirements effectively." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "TypeScript", + "Nuxt.js", + "Storybook", + "Shopware" + ] + }, + { + "id": 2, + "role": "Frontend Developer", + "company": "Simplifai", + "startDate": "Feb 2021", + "endDate": "Oct 2022", + "period": "1 year 8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed a web application for a subsidiary of Elop specializing in smart concrete scanning solutions for architectural and bridge building firms.", + "Designed and implemented reusable UI components to enhance the application's usability and maintainability.", + "Utilized TypeScript to write clean and maintainable code, ensuring codebase quality and reliability.", + "Leveraged the Three.js library to create interactive 3D visualizations of concrete structures, enhancing the user experience.", + "Demonstrated expertise in Vue.js, JavaScript, Vuetify, and TypeScript to meet the project's technical requirements effectively.", + "Contributed to the advancement of smart concrete scanning solutions, supporting architectural and bridge-building companies in their projects." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "TypeScript", + "Vuetify" + ] + }, + { + "id": 3, + "role": "Frontend Developer", + "company": "Recman AS", + "startDate": "May 2020", + "endDate": "Feb 2021", + "period": "9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Spearheaded the development of a robust web calendar as an integral module within the Recman platform.", + "Employed Vanilla.js extensively to implement core features, including routing, MVC architecture, state management, and view rendering, all crafted from scratch.", + "Designed and built a calendar system akin to Google Calendar, seamlessly integrated into the organization's internal infrastructure.", + "Demonstrated proficiency in Vue.js, JavaScript, and SASS, ensuring the successful completion of the project.", + "Contributed significantly to enhancing the Recman platform's functionality by adding a feature-rich, internally focused web calendar module." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js" + ] + }, + { + "id": 4, + "role": "Frontend Developer", + "company": "Trinetix", + "startDate": "Jun 2019", + "endDate": "May 2020", + "period": "11 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Played a key role in a substantial analytical project aimed at enhancing the hotel and restaurant industry.", + "Led the migration process of an Angular.js application to Angular, ensuring the seamless transition while preserving the existing design system guidelines.", + "Successfully implemented new features within the Angular framework to enhance the functionality and capabilities of the application.", + "Demonstrated proficiency in Vue.js, JavaScript, SASS, and Angular to meet project requirements effectively.", + "Contributed significantly to the project's success, improving the analytical tools and capabilities available to the hotel and restaurant business." + ] + } + ], + "skills": [ + "JavaScript", + "Angular.js", + "Vue.js", + "Less CSS", + "Angular" + ] + }, + { + "id": 5, + "role": "Medior Frontend Developer", + "company": "Devellar", + "startDate": "Mar 2017", + "endDate": "Jun 2019", + "period": "2 years 3 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed custom WordPress templates from scratch within the educational sector, paying close attention to design aesthetics, SEO best practices, and alignment with the business's core values.", + "Demonstrated proficiency in JavaScript, WordPress, PHP, and Angular to successfully create bespoke templates tailored to educational needs.", + "Played a crucial role in enhancing the online presence and functionality of educational websites, catering to both user experience and search engine optimization.", + "Contributed to the growth and success of educational institutions by providing them with tailored WordPress solutions that aligned with their unique requirements and goals." + ] + } + ], + "skills": [ + "PHP", + "MySQL", + "JavaScript", + "HTML", + "WordPress", + "SQL", + "Angular", + "SASS" + ] + }, + { + "id": 6, + "role": "Medior Frontend Developer", + "company": "Webkitchen", + "startDate": "Jun 2016", + "endDate": "Jan 2017", + "period": "7 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Crafted customized templates to meet clients' unique design and functionality demands during my tenure at a web agency.", + "Delivered tailored solutions for various projects, including basic corporate websites and expansive online cosmetics stores, all built from the ground up.", + "Demonstrated expertise in WordPress, PHP, and MySQL to develop templates that catered to the specific needs and goals of each client.", + "Played a pivotal role in the agency's ability to provide clients with highly individualized web solutions, contributing to the success of various online ventures." + ] + } + ], + "skills": [ + "PHP", + "MySQL", + "HTML", + "WordPress", + "SQL", + "SASS" + ] + }, + { + "id": 7, + "role": "Web Development Mentor", + "company": "Education US", + "startDate": "Nov 2014", + "endDate": "Jun 2016", + "period": "1 year 7 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Offered valuable guidance and mentorship to students, focusing on contemporary website creation techniques, Adobe Creative Cloud (CC) tools, and navigating the job search process.", + "Equipped students with the necessary skills and knowledge to excel in website development within the dynamic IT industry.", + "Facilitated students' journeys toward securing their first positions in the IT field by providing essential insights and practical advice.", + "Acted as a supportive and knowledgeable resource for aspiring professionals, contributing to their career development and growth." + ] + } + ], + "skills": [ + "jQuery", + "Adobe Photoshop" + ] + }, + { + "id": 8, + "role": "Web Designer", + "company": "Slicemix", + "startDate": "Mar 2014", + "endDate": "Aug 2014", + "period": "5 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Held the position of lead web designer, with primary responsibilities encompassing the creation of visually captivating and impactful promotional websites.", + "Designed banners and engaging printed materials tailored to clients' distinct requirements within our digital marketing agency.", + "Leveraged skills in Adobe Photoshop and Adobe Illustrator to ensure the delivery of high-quality design work that effectively communicated our clients' messages and brand identities.", + "Played a pivotal role in enhancing the online presence and marketing collateral of various clients, contributing to their success in the digital landscape." + ] + } + ], + "skills": [ + "Adobe Photoshop", + "Adobe Illustrator" + ] + }, + { + "id": 9, + "role": "Web Designer", + "company": "DigitalDealerz", + "startDate": "Feb 2013", + "endDate": "Jan 2014", + "period": "11 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Designed and developed commercial websites and promotional materials catering to the needs of small to mid-sized businesses.", + "Prioritized user-friendliness, responsiveness, and visual appeal in all web projects to enhance the online presence and customer engagement for clients.", + "Generated blueprints and wireframes for websites, establishing clear and concise plans before the development phase.", + "Ensured that the end products were not only interactive but also engaging for users, enhancing the overall user experience and client satisfaction." + ] + } + ], + "skills": [ + "Adobe Photoshop", + "Adobe Illustrator", + "AutoCAD" + ] + }, + { + "id": 10, + "role": "Junior PHP Developer", + "company": "Metr&co", + "startDate": "Jan 2012", + "endDate": "Jan 2013", + "period": "1 year", + "description": [ + { + "isGrouped": true, + "content": [ + "Actively explored and applied Drupal's API to enhance the functionality and interactivity of web applications, contributing to the mastery of this versatile content management system.", + "Acquired knowledge and expertise in leveraging Drupal's capabilities to build dynamic and feature-rich web applications.", + "Kept abreast of the latest trends and best practices in Drupal web development, ensuring the ability to create robust and efficient solutions." + ] + } + ], + "skills": [ + "PHP", + "MySQL", + "SQL", + "Drupal" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Science and Information Technologies", + "school": "National University of Food Technologies", + "startDate": "2014", + "endDate": "2019" + }, + { + "id": 2, + "degree": "Sc. Software Development", + "school": "Kyiv Optical and Mechanical College", + "startDate": "2010", + "endDate": "2014" + } + ] + }, + { + "id": 4747, + "name": "Emmanuel Sackey", + "slug": "emmanuel-vue-js-ts-nuxt-nest-fullstack-dev", + "alias": "Emmanuel", + "description": [ + "Emmanuel is a frontend-heavy fullstack developer with seven years of professional experience, proficient in Vue.js and Node.js. His main focus is on creating user-friendly web pages and dependable back-end systems.", + "Additionally, he developed software for hospitals that improved patient care management and enhanced the quality of healthcare services.", + "One of his notable projects involved redesigning user interfaces, which resulted in a 30% increase in user interactions, underscoring his capability to deliver impactful solutions." + ], + "proficiencies": [ + "Vue.js", + "JavaScript", + "Nuxt.js", + "Node.js", + "React.js", + "TypeScript", + "Nest.js", + "Laravel", + "PostgreSQL", + "Docker", + "Kubernetes", + "Digital Ocean", + "Flutter", + "GraphQL", + "MongoDB", + "Firebase", + "AWS Lambda", + "Golang" + ], + "compensations": { + "partTime": "€3,772 /month (20 h per week)", + "monthly": "€6,871 /month (40 h per week)" + }, + "location": "Ghana", + "region": "GTM+0", + "experiences": [ + { + "id": 1, + "role": "Frontend-heavy Fullstack Developer", + "company": "Several clients (NDA)", + "startDate": "Jul 2023", + "endDate": "Aug 2024", + "period": "1 year 1 month", + "description": [ + { + "isGrouped": true, + "content": [ + "Worked with a German company and helped them build a job app that connects students and employers.", + "Worked on Vue.js and Node.js." + ] + } + ], + "skills": [ + "Vue.js", + "Docker", + "PostgreSQL", + "Node.js", + "GraphQL", + "Google Cloud", + "Firebase", + "Nest.js", + "Apollo" + ] + }, + { + "id": 2, + "role": "Lead Fullstack", + "company": "Simple Dealer", + "startDate": "Oct 2021", + "endDate": "Jun 2023", + "period": "1 year 8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Migrated a desktop user experience into a single-page app, improving customer engagement by 30%.", + "Architected product tours with React for a new feature that improved customer adoption by 20%, leading to over $1M in revenue.", + "Worked with designers to develop the front end for a new Kanban layout (Trello-like) that increased work efficiency and productivity by providing better data visibility.", + "Participated in each step of the product development process, from ideation to development improvement and testing for features reaching over 150,000 users." + ] + } + ], + "skills": [ + "JavaScript", + "React.js", + "Vue.js", + "Docker", + "AWS", + "Node.js", + "Flutter", + "GraphQL", + "Microservices", + "Redux.js", + "Team leading" + ] + }, + { + "id": 3, + "role": "Senior Backend Engineer", + "company": "QBE (Ghana) Limited", + "startDate": "Aug 2018", + "endDate": "May 2023", + "period": "4 years 9 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Architected microservices backend using Golang and NodeJS.", + "Built REST APIs for web apps, decreasing request latency by 40%.", + "Implemented CI/CD pipelines, automating testing and deployment processes.", + "Optimized MongoDB queries and indexing, reducing latency by 50%.", + "Led migration of monolith to microservices, decoupling frontend and backend." + ] + } + ], + "skills": [ + "Laravel", + "Docker", + "Node.js", + "Golang", + "GraphQL", + "Jenkins", + "Maven", + "Kubernetes", + "Terraform", + "Ansible", + "RabbitMQ", + "AWS EC2", + "Apollo", + "Solution Architecture" + ] + }, + { + "id": 4, + "role": "Frontend Engineer", + "company": "Agroinnova Ghana", + "startDate": "Jan 2019", + "endDate": "Sept 2021", + "period": "2 years 8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Led a complete overhaul of the user interface (UI) for the internal tool Akokomarket, contributing to a remarkable 30% increase in sales revenue.", + "Collaborated closely with the backend engineering team to implement GraphQL APIs, optimizing the reporting process for the analytical team and increasing reporting speed by 40%.", + "Spearheaded the implementation of a robust unit testing infrastructure using Jest for the applications, reducing user-reported bugs by 30% monthly." + ] + } + ], + "skills": [ + "Laravel", + "MySQL", + "JavaScript", + "React.js", + "Vue.js", + "Docker", + "PostgreSQL", + "AWS", + "NGINX", + "UI", + "Flutter", + "GraphQL", + "Firebase", + "Nest.js", + "Nuxt.js" + ] + }, + { + "id": 5, + "role": "Fullstack Software Developer", + "company": "Social Security & National Insurance Trust", + "startDate": "Jul 2016", + "endDate": "Nov 2018", + "period": "2 years 4 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Developed software solutions for individual departments in the company.", + "Developed and designed UI for SSNIT records system that allowed proper record keeping for user physical documents.", + "Designed biometric forms to collect customer biometric data." + ] + } + ], + "skills": [ + "Laravel", + "JavaScript", + "Vue.js", + "UI", + "Oracle" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Science", + "school": "University of Cape Coast", + "startDate": "2011", + "endDate": "2015" + } + ] + }, + { + "id": 1020, + "name": "Abdusaid Umarov", + "slug": "abdusaid-html-css-vue-typescript-frontend-dev", + "alias": "Abdusaid", + "intro": "Abdusaid is a Senior Frontend Developer with over six years of experience, where he’s made a name for himself in Vue.js and Nuxt.js. His skill in Vue.js is top-notch, proven by the perfect 100% score he achieved on the Proxify test.", + "description": [ + "Though he focuses on frontend work, Abdusaid isn’t just limited to that—he’s also jumped in to help with backend tasks using Laravel.", + "His experience across identity management, fintech, eCommerce, and other tech sectors shows his ability to adapt and thrive in different environments.", + "What makes Abdusaid stand out is not just his technical skills but his knack for understanding the bigger picture and delivering work that truly meets the needs of each project he takes on." + ], + "proficiencies": [ + "Vue.js", + "Vuex", + "Nuxt.js", + "Laravel", + "Java", + "Tailwind", + "Jest", + "React.js", + "Jenkins", + "Storybook", + "SonarQube", + "Docker" + ], + "compensations": { + "partTime": "€2,764 /month (20 h per week)", + "monthly": "€5,359 /month (40 h per week)" + }, + "location": "Uzbekistan", + "region": "GTM+5", + "experiences": [ + { + "id": 1, + "role": "Senior Frontend Developer", + "company": "Identity Blitz", + "startDate": "Sept 2023", + "endDate": "Jul 2024", + "period": "10 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Got experience creating custom web plugins: i18n localization plugin and automated docker runner plugin using Vite.", + "Configured project settings with prettierrc and vite.config, postcss.config, tsup.config, ts.config.", + "Developed Tablet and Mobile views by applying PostCSS." + ] + } + ], + "skills": [ + "Vue.js", + "Docker", + "TypeScript", + "SCSS" + ] + }, + { + "id": 2, + "role": "Senior Frontend Developer", + "company": "Uzum", + "startDate": "Jan 2023", + "endDate": "Sept 2023", + "period": "8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Got experience in building web apps using Modular Architecture.", + "Took full responsibility for complex tasks (such as authentication and fixing merge conflicts).", + "Got experience in using Turbo repo in projects that are based on mono repo architecture.", + "Did releases into the PROD environment.", + "Integrated localization using i18n-vue package." + ] + } + ], + "skills": [ + "Laravel", + "MySQL", + "JavaScript", + "Vue.js", + "TypeScript", + "Tailwind" + ] + }, + { + "id": 3, + "role": "Software Engineer", + "company": "EPAM Systems", + "startDate": "Sept 2021", + "endDate": "May 2023", + "period": "1 year 8 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Implemented new features using Vue.js/NUXT.js.", + "Conducted Code reviews.", + "Bug fixing.", + "Refactored the code to make it cleaner.", + "Made documented reports about commits using Gitlab's MergeRequests and Spikes.", + "Learnt new Prismic CMS.", + "Got experience with Magnolia CMS to work with the classic version of the project.", + "Worked in a Scrum environment and understood all of the features and terminologies of the methodology, including sprints, sprint plannings, retrospectives, and daily meetings/Stand-Ups." + ] + } + ], + "skills": [ + "MySQL", + "JavaScript", + "Vue.js", + "ES5/ES6", + "Jenkins", + "Nuxt.js", + "SonarQube" + ] + }, + { + "id": 4, + "role": "Frontend Developer", + "company": "Genesis-Innovation LLC. (Uzcard)", + "startDate": "Jan 2021", + "endDate": "Dec 2021", + "period": "11 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Created components/UI according to Figma design.", + "Connected APIs to UI using Axios.", + "Provided token authorizations, silent authentication method, and refreshed token/ JWT token.", + "Connected charts using Apex charts.", + "Created Vue Routers.", + "Used i18n internal language localization.", + "Widely used 'Vuex' module-based structure.", + "Created Designs using Element UI." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "UI", + "Vuex" + ] + }, + { + "id": 5, + "role": "Web Developer", + "company": "Fido-Biznes LLC", + "startDate": "Jun 2019", + "endDate": "Jun 2021", + "period": "2 years", + "description": [ + { + "isGrouped": true, + "content": [ + "Worked in a team to build the Uzbekistan Banking System.", + "Improved System’s performance, stability Querying, indexing, writing procedures, and functions to make the backend section of the system.", + "Created sophisticated JSP pages with JavaScript language for the frontend logic of the banking system.", + "Made Java services for exchanging information with the Government Custom Center in XML and JSON formats with key exchange techniques for providing such potential REST APIs." + ] + } + ], + "skills": [ + "MySQL", + "JavaScript", + "Java", + "SQL", + "Oracle", + "JSON", + "PL/SQL", + "XML" + ] + }, + { + "id": 6, + "role": "Web Developer", + "company": "Artel", + "startDate": "Sept 2018", + "endDate": "Jan 2020", + "period": "1 year 4 months", + "description": [ + { + "isGrouped": true, + "content": [ + "Worked in a team to build a real-world system for the technology industry.", + "Improved UI/frontend interface.", + "Built an Analytical section of the System with graphic analysis, according to the industry's provided Excel sheets, using logic to extract data.", + "Implemented frontend structures/components of the Internal Document Exchange System." + ] + } + ], + "skills": [ + "JavaScript", + "Vue.js", + "ES5/ES6", + "SCSS", + "Vuex" + ] + } + ], + "education": [ + { + "id": 1, + "degree": "BSc. Computer Science and Software Engineering", + "school": "INHA University in Tashkent", + "startDate": "2015", + "endDate": "2019" + } + ] + } +] diff --git a/src/developers/index.md b/src/developers/index.md new file mode 100644 index 0000000000..2346253772 --- /dev/null +++ b/src/developers/index.md @@ -0,0 +1,11 @@ +--- +page: true +footer: false +title: Vue Developers +--- + + + + diff --git a/src/developers/partnerConfig.js b/src/developers/partnerConfig.js new file mode 100644 index 0000000000..dc69693a7b --- /dev/null +++ b/src/developers/partnerConfig.js @@ -0,0 +1,73 @@ +import partnerData from '../partners/partners.json' + +const partnerName = 'Proxify' +const partner = partnerData.find(partner => partner.name === partnerName) + +const websiteLabel = 'proxify.io' +const websiteUrl = 'https://proxify.io/' +const applyUrl = 'https://career.proxify.io/apply' +const hireUrl = 'https://proxify.io/hire-vuejs' +const cloudinaryUrl = 'https://res.cloudinary.com/proxify-io/image/upload' + + +const partnerConfig = { + // Partner information + partnerName: partner?.name, + logo: partner?.logo, + flipLogo: partner?.flipLogo || false, + + // Partner website + websiteUrl: websiteUrl, + hireUsButtonUrl: hireUrl, + + // Cloudinary storage URL + cloudinaryUrl: cloudinaryUrl, + + // Hero Section + pageHeroBanner: { + title: 'Vue Developers', + description: 'Vue Developers are certified individual freelancers. Payments, compliance and vetting are administrated by our partner Proxify. Interested to join the list?', + applyButton: { + url: applyUrl, + label: 'Apply here' + } + }, + + // Hero Section + pageJoinSection: { + title: 'Become a listed developer', + description: 'Get a long-term part-time or full-time position at company looking for a Vue.js developer.', + applyButton: { + url: applyUrl, + label: 'Apply to join' + } + }, + + // Footer Configuration + pageFooter: { + text: `This highly vetted developer is brought to you by Vue’s partner:`, + email: 'vue@proxify.io', + phone: '+44 20 4614 2667', + websiteVueLink: hireUrl, + websiteVueLabel: websiteLabel + '/vue' + }, + + // Diagram sections + profileDiagram: { + title: 'Candidate profile', + prependText: 'How our developers score in the parameters that correlate best with future success in the role.' + }, + + scoreDiagram: { + title: 'Engineering excellence score', + prependText: 'The practical score range is 0 to 300. This is the distribution of scores for all evaluated Vue.js developers, and here’s where your candidate scored.', + appendText: 'Data from 3,661 evaluated Vue.js developers and 38,008 applicants.' + }, + + // Proficiency Section + proficiencies: { + skillsPerCard: 5 + } +} + +export default partnerConfig diff --git a/src/partners/components/PartnerAll.vue b/src/partners/components/PartnerAll.vue index d76ed51ef9..2421df5655 100644 --- a/src/partners/components/PartnerAll.vue +++ b/src/partners/components/PartnerAll.vue @@ -40,12 +40,14 @@ input { border-bottom: 1px solid var(--vt-c-divider-light); margin-bottom: 2em; } + .container { max-width: 960px; margin: 1em auto 2em; padding: 0 28px; position: relative; } + .icon { width: 18px; height: 18px; diff --git a/src/partners/components/PartnerHero.vue b/src/partners/components/PartnerHero.vue index 26a7cc42bf..583e0c891c 100644 --- a/src/partners/components/PartnerHero.vue +++ b/src/partners/components/PartnerHero.vue @@ -1,71 +1,19 @@ - - diff --git a/src/partners/components/PartnerJoin.vue b/src/partners/components/PartnerJoin.vue index 47c5ddf872..d29f180e2f 100644 --- a/src/partners/components/PartnerJoin.vue +++ b/src/partners/components/PartnerJoin.vue @@ -1,70 +1,12 @@ + + - - diff --git a/src/partners/components/PartnerLanding.vue b/src/partners/components/PartnerLanding.vue index a855973281..a12f731091 100644 --- a/src/partners/components/PartnerLanding.vue +++ b/src/partners/components/PartnerLanding.vue @@ -4,6 +4,7 @@ import PartnerHero from './PartnerHero.vue' import PartnerCard from './PartnerCard.vue' import PartnerList from './PartnerList.vue' import PartnerJoin from './PartnerJoin.vue' +import PageShowcaseListLayout from '@theme/components/PageShowcaseListLayout.vue' import data from '../partners.json' import { Partner } from './type' @@ -16,76 +17,26 @@ onMounted(() => { - - diff --git a/src/partners/components/PartnerList.vue b/src/partners/components/PartnerList.vue index 0cf9763048..4ae21fb026 100644 --- a/src/partners/components/PartnerList.vue +++ b/src/partners/components/PartnerList.vue @@ -1,92 +1,24 @@ - - diff --git a/src/partners/components/PartnerPage.vue b/src/partners/components/PartnerPage.vue index 788ee1b613..5f9dced158 100644 --- a/src/partners/components/PartnerPage.vue +++ b/src/partners/components/PartnerPage.vue @@ -1,4 +1,5 @@