From 6173df1e0d81e208aa2e3b4f2b703424229068c7 Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 13:57:02 +0300
Subject: [PATCH 1/6] Swap JS and Python in CV
---
src/pages/cv/data/tech_skills.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/cv/data/tech_skills.ts b/src/pages/cv/data/tech_skills.ts
index a8f5289..919e74f 100644
--- a/src/pages/cv/data/tech_skills.ts
+++ b/src/pages/cv/data/tech_skills.ts
@@ -9,8 +9,8 @@ export type TechSkillId = (typeof tech_skill_ids)[number];
const tech_skills = merge({
en: {
languages: {
- python: 'Python: , pandas, numpy',
js: 'JS: TypeScript, , , Vite',
+ python: 'Python: , pandas, numpy',
csharp: 'C#: WPF, WinForms',
},
other: {
From c910d9429b7c5aa5e6ca46c77e3201834b8a106d Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 14:09:10 +0300
Subject: [PATCH 2/6] Fix margins and text alignment
---
src/pages/cv/CVDocument.tsx | 8 ++++++--
src/pages/cv/components/tags/Tag.tsx | 1 +
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/pages/cv/CVDocument.tsx b/src/pages/cv/CVDocument.tsx
index b1d8fb7..db1eae2 100644
--- a/src/pages/cv/CVDocument.tsx
+++ b/src/pages/cv/CVDocument.tsx
@@ -58,7 +58,7 @@ const CVDocument = () => {
const tagsContextValue = useMemo(() => ({ tags: allTags, pushTag }), [pushTag, allTags]);
return (
-
+
{
align="center"
spacing="0"
>
-
+
{t('info.cv_name')}
diff --git a/src/pages/cv/components/tags/Tag.tsx b/src/pages/cv/components/tags/Tag.tsx
index ee89474..baa5cee 100644
--- a/src/pages/cv/components/tags/Tag.tsx
+++ b/src/pages/cv/components/tags/Tag.tsx
@@ -44,6 +44,7 @@ const Tag = ({
fontWeight={isSelected ? 'bold' : 'normal'}
color={isSelected ? 'blue.800' : undefined}
textDecoration="underline dotted 1px"
+ textAlign="center"
as={RouteLink}
to={target}
>
From 13aa0f4778b3346a7312805151e8d95c9c874c70 Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 14:37:58 +0300
Subject: [PATCH 3/6] Edit the home page
---
src/pages/Home.tsx | 46 ++++++++++++++++++++++++++++++++--------------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx
index 68ea36a..746c5df 100644
--- a/src/pages/Home.tsx
+++ b/src/pages/Home.tsx
@@ -1,5 +1,4 @@
-import { Link as RouteLink } from 'react-router-dom';
-import { Text, Heading, Link, Box } from '@chakra-ui/react';
+import { Text, Heading, Link, Box, ListItem, UnorderedList } from '@chakra-ui/react';
import Layout from '../components/layout/Layout';
const Home = () => (
@@ -12,8 +11,8 @@ const Home = () => (
{' '}
here.
-
- Who?
+
+ About me
@@ -24,19 +23,38 @@ const Home = () => (
My real name is Vladislav Safonov, I am a software developer. In 2023, I finished my
bachelor's degree at{' '}
- Innopolis University.
+
+ Innopolis University
+
+ .
-
- So?
-
- Originally this site is meant to hold my{' '}
-
- CV
- {' '}
- written in React.
+ By the way, I made my thesis publicly available at{' '}
+
+ ResearchGate
+
+ .
- Probably, I will add more stuff here later, we'll see.
+
+ Links
+
+
+
+
+ telegram
+
+
+
+
+ telegram channel (ru)
+
+
+
+
+ github profile
+
+
+
);
From a9821c65733b5a0e50975b810ba914c96b5d4049 Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 15:01:20 +0300
Subject: [PATCH 4/6] Move github link, change padding
---
src/components/layout/Layout.tsx | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx
index a7d7e74..678fd44 100644
--- a/src/components/layout/Layout.tsx
+++ b/src/components/layout/Layout.tsx
@@ -1,23 +1,23 @@
-import React from 'react';
-import { Box, Center, HStack, Link, Text, VStack } from '@chakra-ui/react';
+import { ReactNode } from 'react';
+import { Box, Center, HStack, Icon, Link, Spacer, VStack } from '@chakra-ui/react';
+import { FiExternalLink } from 'react-icons/fi';
import NavLink from './NavLink';
-const Layout = (props: { children: React.ReactNode }) => (
-
+const Layout = (props: { children: ReactNode }) => (
+
-
+
home
cv
+
+
+ source code
+
+
{props.children}
-
- Source code of this website is available at{' '}
-
- GitHub
-
-
);
From cbac92d184062d88d6910272acd0c27b34c24974 Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 15:04:54 +0300
Subject: [PATCH 5/6] Fix study years lol
---
src/pages/cv/data/education.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/cv/data/education.ts b/src/pages/cv/data/education.ts
index b5a3cd1..6b05adf 100644
--- a/src/pages/cv/data/education.ts
+++ b/src/pages/cv/data/education.ts
@@ -14,7 +14,7 @@ const education = merge({
iu: {
specialty: 'Computer science, Bachelor',
organization: 'Innopolis University',
- period: '2021 — 2023',
+ period: '2019 — 2023',
},
},
ru: {
From 1f5c2e014a499025d369b18afb050c634c014e55 Mon Sep 17 00:00:00 2001
From: Vladislav Safonov <29694249+ntdesmond@users.noreply.github.com>
Date: Sat, 9 Sep 2023 15:43:53 +0300
Subject: [PATCH 6/6] Add publications section
---
src/i18n.ts | 11 +++++++++++
src/pages/cv/CVDocument.tsx | 25 ++++++++++++++++++++++++-
src/pages/cv/data/publications.ts | 31 +++++++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 1 deletion(-)
create mode 100644 src/pages/cv/data/publications.ts
diff --git a/src/i18n.ts b/src/i18n.ts
index e87ccae..f96f7e6 100644
--- a/src/i18n.ts
+++ b/src/i18n.ts
@@ -8,6 +8,7 @@ import soft_skills from './pages/cv/data/soft_skills';
import summary from './pages/cv/data/summary';
import info from './pages/cv/data/info';
import tech_skills from './pages/cv/data/tech_skills';
+import publications from './pages/cv/data/publications';
i18n.use(initReactI18next).init({
resources: {
@@ -36,6 +37,11 @@ i18n.use(initReactI18next).init({
content: projects.en,
},
+ publications: {
+ title: 'Publications',
+ content: publications.en,
+ },
+
tech_skills: {
title: 'Technical skills',
languages: 'Programming languages',
@@ -98,6 +104,11 @@ i18n.use(initReactI18next).init({
content: education.ru,
},
+ publications: {
+ title: 'Публикации',
+ content: publications.ru,
+ },
+
languages: {
title: 'Языки',
content: languages.ru,
diff --git a/src/pages/cv/CVDocument.tsx b/src/pages/cv/CVDocument.tsx
index db1eae2..ce0a7e5 100644
--- a/src/pages/cv/CVDocument.tsx
+++ b/src/pages/cv/CVDocument.tsx
@@ -32,6 +32,7 @@ import type { LanguageProficiency } from './data/languages';
import type { WorkEntryId, WorkExperience } from './data/work';
import type { Education, EducationId } from './data/education';
import type { ProgrammingLanguageId, TechSkillId } from './data/tech_skills';
+import { Publication, PublicationId } from './data/publications';
const CVDocument = () => {
const [allTags, setTags] = useState>(new Set(['Frontend', 'Backend']));
@@ -163,7 +164,7 @@ const CVDocument = () => {
).map(([id, project]) => (
-
+
{project.name}
@@ -178,6 +179,28 @@ const CVDocument = () => {
))}
+
+
+ {Object.entries(
+ t('sections.publications.content', { returnObjects: true }) as Record<
+ PublicationId,
+ Publication
+ >,
+ ).map(([id, publication]) => (
+
+
+
+
+ {publication.name}
+
+
+ {publication.type}
+ {publication.date}
+
+
+ ))}
+
+
diff --git a/src/pages/cv/data/publications.ts b/src/pages/cv/data/publications.ts
new file mode 100644
index 0000000..ecf2722
--- /dev/null
+++ b/src/pages/cv/data/publications.ts
@@ -0,0 +1,31 @@
+import merge from './merge';
+
+export interface Publication {
+ name: string;
+ type: string;
+ date: string;
+ url: string;
+}
+
+const publication_ids = ['kiosk'] as const;
+export type PublicationId = (typeof publication_ids)[number];
+
+const publications = merge({
+ en: {
+ kiosk: {
+ name: 'Development of software for an interactive information kiosk',
+ url: 'https://dx.doi.org/10.13140/RG.2.2.24800.25609',
+ type: "Bachelor's Thesis",
+ date: 'July 2023',
+ },
+ },
+ ru: {
+ kiosk: {
+ name: 'Разработка программного обеспечения для информационного киоска',
+ type: 'Бакалаврская работа',
+ date: 'Июль 2023',
+ },
+ },
+});
+
+export default publications;