diff --git a/package-lock.json b/package-lock.json index 857fc7e..bd15f76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "jquery": "^3.6.0", "popper.js": "^1.16.1", "vue": "^2.6.14", + "vue-meta": "^2.4.0", "vue-router": "^3.5.2", "vuex": "^3.6.2" }, @@ -16641,6 +16642,22 @@ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true }, + "node_modules/vue-meta": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", + "integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==", + "dependencies": { + "deepmerge": "^4.2.2" + } + }, + "node_modules/vue-meta/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vue-router": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz", @@ -31177,6 +31194,21 @@ } } }, + "vue-meta": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", + "integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==", + "requires": { + "deepmerge": "^4.2.2" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + } + } + }, "vue-router": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz", diff --git a/package.json b/package.json index aff5007..359db1a 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "jquery": "^3.6.0", "popper.js": "^1.16.1", "vue": "^2.6.14", + "vue-meta": "^2.4.0", "vue-router": "^3.5.2", "vuex": "^3.6.2" }, diff --git a/public/api/projects.json b/public/api/projects.json deleted file mode 100644 index 9c99599..0000000 --- a/public/api/projects.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "id": 1, - "title": "Test 1", - "category": "prywatne", - "author": "Kamil Niemczycki", - "image": "assets/img/projects/kamilcraft.jpg", - "release_data": "30 sierpnia 2021", - "version": "v1.0.0", - "short_description": "abcdefghijklmnoprestuwxyz" - }, - { - "id": 2, - "title": "Test 1", - "category": "wordpress", - "image": "assets/me.jpg", - "release_data": "30 sierpnia 2021", - "version": "v1.0.0", - "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - }, - { - "id": 3, - "title": "Test 1", - "category": "prywatne", - "image": "assets/me.jpg", - "release_data": "30 sierpnia 2021", - "version": "v1.0.0", - "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - }, - { - "id": 4, - "title": "Test 1", - "category": "zlecenia", - "image": "assets/me.jpg", - "release_data": "30 sierpnia 2021", - "version": "v1.0.0", - "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - }, - { - "id": 5, - "title": "Test 1", - "category": "zlecenia", - "image": "assets/me.jpg", - "release_data": "30 sierpnia 2021", - "version": "v1.0.0", - "short_description": "abcdefghijklmnoprestuwxyz" - } -] diff --git a/src/components/sections/Experiences.vue b/src/components/sections/Experiences.vue index 75dadcd..c5f51fa 100644 --- a/src/components/sections/Experiences.vue +++ b/src/components/sections/Experiences.vue @@ -8,64 +8,19 @@ technologie, które wspomagają pisanie i rozwijanie oprogramowania.

-
+
- - +
-

{{ php.header }}

+

{{ skill.header }}

-

{{ php.description }}

-

{{ php.description.substr(0, 255) }}... Więcej

-
-
-
-
- -
-

{{ javascript.header }}

-
-

{{ javascript.description }}

-

{{ javascript.description.substr(0, 255) }}... Więcej

-
-
-
-
- -
-

{{ vue.header }}

-
-

{{ vue.description }}

-

{{ vue.description.substr(0, 255) }}... Więcej

-
-
-
-
- - -
-

HTML & CSS

-
-

I have more than 10 years' experience building software for clients all over the world. Below is a quick overview of my main technical skill sets and technologies I use. Want to find out more about my experience? Check out my online resume and project portfolio.

-
-
-
-
- -
-

Node.js

-
-

I have more than 10 years' experience building software for clients all over the world. Below is a quick overview of my main technical skill sets and technologies I use. Want to find out more about my experience? Check out my online resume and project portfolio.

-
-
-
-
- -
-

Sass

-
-

I have more than 10 years' experience building software for clients all over the world. Below is a quick overview of my main technical skill sets and technologies I use. Want to find out more about my experience? Check out my online resume and project portfolio.

+

{{ skill.description }}

+

{{ parseText(skill.description) }}... Więcej

@@ -77,27 +32,117 @@ export default { name: 'Experiences', data () { return { - php: { + list: [] + } + }, + mounted () { + this.list = [ + { + icons: [ + { + class: 'icon-php', + name: 'php', + title: 'Ikona PHP' + }, + { + class: 'icon-laravel', + name: 'laravel', + title: 'Ikona Laravel' + } + ], header: 'PHP & Laravel', showMore: false, description: `PHP wraz z frameworkiem Laravel wykorzystuję do tworzenia nowych projektów. Laravel znacznie przyspiesza pisanie części backendowej, odciążając programistę od pisania skomplikownych filtrów i monotonnych - walidacji przyjmowanych danych od użytkowników. Jednakże, choć dobrze pracuje mi się w środowisku Laravel w - miarę możliwości staram się pisać kod w samym PHP z wykorzystaniem bibliotek i paczek autorskich.` + walidacji przyjmowanych danych od użytkowników. Jednakże, choć dobrze pracuje mi się w środowisku Laravel + w miarę możliwości staram się pisać kod w samym PHP z wykorzystaniem bibliotek i paczek autorskich.` }, - javascript: { + { + icons: [ + { + class: 'icon-js', + name: 'js-square', + title: 'Ikona JavaScript' + } + ], header: 'JavaScript Vanilla', showMore: false, description: `JavaScript wykorzystuję głównie do logiki frontendowej jak i pisania kodu wykonywalnego po stronie przeglądarki internetowej. Wykorzystując możliwości reaktywnych frameworków mogę przyspieszyć pisanie UI.` }, - vue: { + { + icons: [ + { + class: 'icon-vue', + name: 'vuejs', + title: 'Ikona Vue' + } + ], header: 'Vue', showMore: false, description: `Framework ten wspomaga mnie w pisaniu aplikacji frontendowej. Przyspiesza tworzenie warstwy wizualnej, obsługę interakcji z użytkownikiem i bindowanie zdefiniowanych pól, które są odpowiednio renderowane przez przeglądarkę. To wszystko, umożliwia łatwe łączenie CSS i HTML z logiką i otrzymanymi danymi z API.` + }, + { + icons: [ + { + class: 'icon-html5', + name: 'html5', + title: 'Ikona HTML5' + }, + { + class: 'icon-css3', + name: 'css3-alt', + title: 'Ikona CSS3' + } + ], + header: 'HTML & CSS', + showMore: false, + description: `Framework ten wspomaga mnie w pisaniu aplikacji frontendowej. Przyspiesza tworzenie warstwy + wizualnej, obsługę interakcji z użytkownikiem i bindowanie zdefiniowanych pól, które są odpowiednio renderowane + przez przeglądarkę. To wszystko, umożliwia łatwe łączenie CSS i HTML z logiką i otrzymanymi danymi z API.` + }, + { + icons: [ + { + class: 'icon-node', + name: 'node', + title: 'Ikona Node.js' + } + ], + header: 'Node.js', + showMore: false, + description: `Framework ten wspomaga mnie w pisaniu aplikacji frontendowej. Przyspiesza tworzenie warstwy + wizualnej, obsługę interakcji z użytkownikiem i bindowanie zdefiniowanych pól, które są odpowiednio renderowane + przez przeglądarkę. To wszystko, umożliwia łatwe łączenie CSS i HTML z logiką i otrzymanymi danymi z API.` + }, + { + icons: [ + { + class: 'icon-sass', + name: 'sass', + title: 'Ikona Sass' + } + ], + header: 'Sass', + showMore: false, + description: `Framework ten wspomaga mnie w pisaniu aplikacji frontendowej. Przyspiesza tworzenie warstwy + wizualnej, obsługę interakcji z użytkownikiem i bindowanie zdefiniowanych pól, które są odpowiednio renderowane + przez przeglądarkę. To wszystko, umożliwia łatwe łączenie CSS i HTML z logiką i otrzymanymi danymi z API.` } + ] + }, + methods: { + parseText (text) { + let shortText = text.substr(0, 200) + if (shortText.slice(-1) === ' ') { + shortText = text.substr(0, 199) + } + return shortText + }, + changeMoreStatus (skill) { + skill.showMore = !skill.showMore } } } @@ -125,7 +170,7 @@ export default { font-size: 1.8em; margin-bottom: 3px; - & > *[class|=icon] { + & > svg[class*='icon'] { margin-right: 10px; &:last-child { diff --git a/src/main.js b/src/main.js index c69c674..c5d1836 100644 --- a/src/main.js +++ b/src/main.js @@ -2,6 +2,7 @@ import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' +import './vue-meta' import '../scss/default.scss' import { library } from '@fortawesome/fontawesome-svg-core' diff --git a/src/views/About.vue b/src/views/About.vue index 188ebfe..6c0f3cd 100644 --- a/src/views/About.vue +++ b/src/views/About.vue @@ -2,8 +2,11 @@

Studia

-

Nazywam się Kamil Niemczycki, jestem absolwentem Państwowej Wyższej Szkoły Zawodowej im. Witelona w Legnicy.

-

Studiowałem na kierunku Informatyka o specjalności Programowanie Aplikacji Mobilnych i Internetowych.

+

+ Nazywam się Kamil Niemczycki, jestem absolwentem Państwowej Wyższej Szkoły Zawodowej im. Witelona w Legnicy. + Studiowałem na kierunku Informatyka o specjalności Programowanie Aplikacji Mobilnych i + Internetowych. +

@@ -18,6 +21,9 @@ section#about {