diff --git a/components/layout/project-page/PageSection.tsx b/components/layout/project-page/PageSection.tsx index a745803..017fb1c 100644 --- a/components/layout/project-page/PageSection.tsx +++ b/components/layout/project-page/PageSection.tsx @@ -4,17 +4,19 @@ import { Section } from '@/utils/interfaces/interfaces' type PageSectionProps = Section -const PageSection = ({ title, titleHighlight, items }: PageSectionProps) => ( -
-

- {title} {titleHighlight && {titleHighlight}} -

- - {items.map((item, index) => ( - {item} - ))} - -
-) +const PageSection = ({ title, titleHighlight, items }: PageSectionProps) => { + return ( +
+

+ {title} {titleHighlight && {titleHighlight}} +

+ + {items.map((item) => ( + {item.text} + ))} + +
+ ) +} export default PageSection diff --git a/data/projects/personal/cryptoMania.ts b/data/projects/personal/cryptoMania.ts index 892d0d3..0677dda 100644 --- a/data/projects/personal/cryptoMania.ts +++ b/data/projects/personal/cryptoMania.ts @@ -1,12 +1,16 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'Description', + title: TEXT.description, titleHighlight: '', items: [ - 'This site was created to display cryptocurrencies with the ability to search for them and display their current value.', + { + id: '1-0', + text: 'This site was created to display cryptocurrencies with the ability to search for them and display their current value.', + }, ], }, ] diff --git a/data/projects/personal/krsiak.ts b/data/projects/personal/krsiak.ts index 6a50e0a..6f68161 100644 --- a/data/projects/personal/krsiak.ts +++ b/data/projects/personal/krsiak.ts @@ -1,10 +1,16 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'Description', + title: TEXT.description, titleHighlight: '', - items: ['I needed a new website for my personal presentation. I learnt Next.js, and used Tailwind CSS.'], + items: [ + { + id: '1-0', + text: 'I needed a new website for my personal presentation. I learnt Next.js, and used Tailwind CSS.', + }, + ], }, ] diff --git a/data/projects/work/groupon.ts b/data/projects/work/groupon.ts index ad2e065..58e8258 100644 --- a/data/projects/work/groupon.ts +++ b/data/projects/work/groupon.ts @@ -1,13 +1,20 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', items: [ - 'I worked on automation, testing scripts and team coordination.', - 'Groupon is an online marketplace, offering discounts on products and services, with 17 million customers.', + { + id: '1-0', + text: 'I worked on automation, testing scripts and team coordination.', + }, + { + id: '1-1', + text: 'Groupon is an online marketplace, offering discounts on products and services, with 17 million customers.', + }, ], }, { @@ -15,8 +22,14 @@ export const sections: Section[] = [ title: 'My role', titleHighlight: '', items: [ - 'SDET = Software Development Engineer in Testing.', - 'In testing, it is an IT professional who can work equally in both development and testing.', + { + id: '2-0', + text: 'SDET = Software Development Engineer in Testing.', + }, + { + id: '2-1', + text: 'In testing, it is an IT professional who can work equally in both development and testing.', + }, ], }, { @@ -24,11 +37,26 @@ export const sections: Section[] = [ title: 'Responsibility #1:', titleHighlight: 'QA Automation and Testing Scripts', items: [ - 'Setting up automation, including Playwright for E2E.', - 'Writing E2E tests in JavaScript and TypeScript.', - 'Coordinating efforts related to unit tests and integration tests.', - 'Writing documentation for developers.', - 'CI/CD pipeline in GitHub using Jenkins, for unit, integration, and E2E tests.', + { + id: '3-0', + text: 'Setting up automation, including Playwright for E2E.', + }, + { + id: '3-1', + text: 'Writing E2E tests in JavaScript and TypeScript.', + }, + { + id: '3-2', + text: 'Coordinating efforts related to unit tests and integration tests.', + }, + { + id: '3-3', + text: 'Writing documentation for developers.', + }, + { + id: '3-4', + text: 'CI/CD pipeline in GitHub using Jenkins, for unit, integration, and E2E tests.', + }, ], }, { @@ -36,12 +64,30 @@ export const sections: Section[] = [ title: 'Responsibility #2:', titleHighlight: 'Team Coordination', items: [ - 'Involved in hiring new SDET members for QA team.', - 'Work across 4 teams.', - '3 DEV teams (15 developers). Setting priorities for writing unit and integration tests.', - '1 QA team (6 manual testers). Coordinating regression testing for the website.', - 'Drive the discussion and decisions on technical topics related to the teams.', - 'Keeping up-to-date JIRA tasks for testing.', + { + id: '4-0', + text: 'Involved in hiring new SDET members for QA team.', + }, + { + id: '4-1', + text: 'Work across 4 teams.', + }, + { + id: '4-2', + text: '3 DEV teams (15 developers). Setting priorities for writing unit and integration tests.', + }, + { + id: '4-3', + text: '1 QA team (6 manual testers). Coordinating regression testing for the website.', + }, + { + id: '4-4', + text: 'Drive the discussion and decisions on technical topics related to the teams.', + }, + { + id: '4-5', + text: 'Keeping up-to-date JIRA tasks for testing.', + }, ], }, ] diff --git a/data/projects/work/komercniBanka.ts b/data/projects/work/komercniBanka.ts index 11c6dce..147bafe 100644 --- a/data/projects/work/komercniBanka.ts +++ b/data/projects/work/komercniBanka.ts @@ -1,13 +1,20 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', items: [ - 'I worked for the 3rd biggest bank in the Czech Republic, Komerční banka, owned by Société Générale.', - 'I worked on a website that is used by 2 000 000+ customers.', + { + id: '1-0', + text: 'I worked for the 3rd biggest bank in the Czech Republic, Komerční banka, owned by Société Générale.', + }, + { + id: '1-1', + text: 'I worked on a website that is used by 2 000 000+ customers.', + }, ], }, { @@ -15,9 +22,18 @@ export const sections: Section[] = [ title: 'Developed new features', titleHighlight: '', items: [ - 'I was tasked with creating a search page, with filters and results pagination for the bank branches and ATM locations and detail sub-pages.', - 'My task was to provide an easy user experience for all customers, using the Geolocation API and the Google Places Autocomplete API, so they could find their nearest bank branch or ATM.', - 'I created an Exchange Rates page with rates detail pages.', + { + id: '2-0', + text: 'I was tasked with creating a search page, with filters and results pagination for the bank branches and ATM locations and detail sub-pages.', + }, + { + id: '2-1', + text: 'My task was to provide an easy user experience for all customers, using the Geolocation API and the Google Places Autocomplete API, so they could find their nearest bank branch or ATM.', + }, + { + id: '2-2', + text: 'I created an Exchange Rates page with rates detail pages.', + }, ], }, { @@ -25,8 +41,14 @@ export const sections: Section[] = [ title: 'Responsive design', titleHighlight: '', items: [ - 'I was responsible for the responsive aspects of the web as well.', - 'Making sure it works well for users across desktop, tablet, and mobile platforms.', + { + id: '3-0', + text: 'I was responsible for the responsive aspects of the web as well.', + }, + { + id: '3-1', + text: 'Making sure it works well for users across desktop, tablet, and mobile platforms.', + }, ], }, ] diff --git a/data/projects/work/kooperativa.ts b/data/projects/work/kooperativa.ts index 848beaf..8289cb9 100644 --- a/data/projects/work/kooperativa.ts +++ b/data/projects/work/kooperativa.ts @@ -1,13 +1,20 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', items: [ - 'I worked for Kooperativa, the 2nd biggest insurance company in the Czech Republic, owned by Vienna Insurance Group.', - 'I was involved in the development of application that will improve services and customer experience of over 2 480 000+ customers.', + { + id: '1-0', + text: 'I worked for Kooperativa, the 2nd biggest insurance company in the Czech Republic, owned by Vienna Insurance Group.', + }, + { + id: '1-1', + text: 'I was involved in the development of application that will improve services and customer experience of over 2 480 000+ customers.', + }, ], }, { @@ -15,9 +22,18 @@ export const sections: Section[] = [ title: 'Developed new features', titleHighlight: '', items: [ - 'I was part of team to create comprehensive solution for arranging and managing insurance contracts.', - 'The application is designed to enhance the customer experience while providing employees with a modern system that simplifies their work.', - 'I worked with TypeScript, React, and Redux. I used Figma designs to develop a user interface. I also worked with a backend developer to ensure API integration.', + { + id: '2-0', + text: 'I was part of team to create comprehensive solution for arranging and managing insurance contracts.', + }, + { + id: '2-1', + text: 'The application is designed to enhance the customer experience while providing employees with a modern system that simplifies their work.', + }, + { + id: '2-2', + text: 'I worked with TypeScript, React, and Redux. I used Figma designs to develop a user interface. I also worked with a backend developer to ensure API integration.', + }, ], }, ] diff --git a/data/projects/work/moravia.ts b/data/projects/work/moravia.ts index 474aaed..28c4618 100644 --- a/data/projects/work/moravia.ts +++ b/data/projects/work/moravia.ts @@ -1,18 +1,27 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', - items: ['I managed a team of 3 people in localization team.'], + items: [ + { + id: '1-0', + text: 'I managed a team of 3 people in localization team.', + }, + ], }, { id: 2, title: 'Responsibility', titleHighlight: '', items: [ - 'I was responsible for translation delivery and quality checks for Microsoft projects Windows 8 + Windows Phone.', + { + id: '2-0', + text: 'I was responsible for translation delivery and quality checks for Microsoft projects Windows 8 + Windows Phone.', + }, ], }, { @@ -20,7 +29,10 @@ export const sections: Section[] = [ title: 'QA Automation', titleHighlight: '', items: [ - 'I was working on automation and scripts for manual repetitive tasks including filling in forms and checking translations.', + { + id: '3-0', + text: 'I was working on automation and scripts for manual repetitive tasks including filling in forms and checking translations.', + }, ], }, ] diff --git a/data/projects/work/smartsuppDashboard.ts b/data/projects/work/smartsuppDashboard.ts index 0478676..e9b7bba 100644 --- a/data/projects/work/smartsuppDashboard.ts +++ b/data/projects/work/smartsuppDashboard.ts @@ -1,13 +1,20 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', items: [ - 'I worked for a company that creates a chat solution for customer care teams.', - 'The product is a chat box for e-commerce and regular websites, and integrates with an email inbox and Facebook Messenger, all-in-one messaging platform.', + { + id: '1-0', + text: 'I worked for a company that creates a chat solution for customer care teams.', + }, + { + id: '1-1', + text: 'The product is a chat box for e-commerce and regular websites, and integrates with an email inbox and Facebook Messenger, all-in-one messaging platform.', + }, ], }, { @@ -15,9 +22,18 @@ export const sections: Section[] = [ title: 'Developed new features', titleHighlight: '', items: [ - 'I participated in the implementation of new features for the chat application dashboard.', - 'Ranging from new chat features to working on a chatbot page and creating graphs for statistics.', - 'I also updated the old JavaScript codebase to a modern one using REACT with hooks.', + { + id: '2-0', + text: 'I participated in the implementation of new features for the chat application dashboard.', + }, + { + id: '2-1', + text: 'Ranging from new chat features to working on a chatbot page and creating graphs for statistics.', + }, + { + id: '2-2', + text: 'I also updated the old JavaScript codebase to a modern one using REACT with hooks.', + }, ], }, ] diff --git a/data/projects/work/smartsuppHelp.ts b/data/projects/work/smartsuppHelp.ts index b4e79fd..83e45da 100644 --- a/data/projects/work/smartsuppHelp.ts +++ b/data/projects/work/smartsuppHelp.ts @@ -1,18 +1,27 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', - items: ['I was the company WordPress administrator and I was responsible for the website.'], + items: [ + { + id: '1-0', + text: 'I was the company WordPress administrator and I was responsible for the website.', + }, + ], }, { id: 2, title: 'Writing new tutorials', titleHighlight: '', items: [ - 'I was writing tutorials for the company main product chat dashboard, taking screenshots and creating new content.', + { + id: '2-0', + text: 'I was writing tutorials for the company main product chat dashboard, taking screenshots and creating new content.', + }, ], }, { @@ -20,7 +29,10 @@ export const sections: Section[] = [ title: 'Website localization', titleHighlight: '', items: [ - 'The company had customers from different countries, I was responsible for the localization into 9 languages. 🇬🇧 🇨🇿 🇪🇸 🇫🇷 🇭🇺 🇩🇪 🇮🇹 🇳🇱 🇵🇱', + { + id: '3-0', + text: 'The company had customers from different countries, I was responsible for the localization into 9 languages. 🇬🇧 🇨🇿 🇪🇸 🇫🇷 🇭🇺 🇩🇪 🇮🇹 🇳🇱 🇵🇱', + }, ], }, ] diff --git a/data/projects/work/smartsuppWeb.ts b/data/projects/work/smartsuppWeb.ts index 4ecee23..30534ae 100644 --- a/data/projects/work/smartsuppWeb.ts +++ b/data/projects/work/smartsuppWeb.ts @@ -1,24 +1,38 @@ +import { TEXT } from '@/localization/english' import { Section } from '@/utils/interfaces/interfaces' export const sections: Section[] = [ { id: 1, - title: 'My job', + title: TEXT.myJob, titleHighlight: '', - items: ['I was responsible for the entire company’s Front End and website presentation.'], + items: [ + { + id: '1-0', + text: 'I was responsible for the entire company’s Front End and website presentation.', + }, + ], }, { id: 2, title: 'Developed new website', titleHighlight: '', - items: ['The main company website was built with PHP and JavaScript.'], + items: [ + { + id: '2-0', + text: 'The main company website was built with PHP and JavaScript.', + }, + ], }, { id: 3, title: 'Created new documentation site', titleHighlight: '', items: [ - 'I created a documentation site that was running on Jekyll, Markdown, and Shopify’s Liquid template language, and later the site was moved to VuePress.', + { + id: '3-0', + text: 'I created a documentation site that was running on Jekyll, Markdown, and Shopify’s Liquid template language, and later the site was moved to VuePress.', + }, ], }, ] diff --git a/localization/english.ts b/localization/english.ts index d390519..01484d7 100644 --- a/localization/english.ts +++ b/localization/english.ts @@ -36,6 +36,11 @@ const COMPANIES = { const WORK = { otherExperience: 'Other Experience', + myJob: 'My job', +} + +const MISC = { + description: 'Description', } export const TEXT = { @@ -45,4 +50,5 @@ export const TEXT = { ...HOME, ...COMPANIES, ...WORK, + ...MISC, } diff --git a/utils/interfaces/interfaces.ts b/utils/interfaces/interfaces.ts index 5676d47..ceae44d 100644 --- a/utils/interfaces/interfaces.ts +++ b/utils/interfaces/interfaces.ts @@ -16,11 +16,15 @@ export interface MenuLink { } // sections +export interface SectionItem { + id: string + text: string +} export interface Section { id?: number title: string titleHighlight?: string | undefined - items: string[] + items: SectionItem[] } // project item