first commit

This commit is contained in:
2026-07-14 18:13:44 +02:00
commit 92e0df7e37
71 changed files with 14242 additions and 0 deletions
View File
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace App\Controller;
use App\Portfolio\PortfolioContent;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class HomeController extends AbstractController
{
#[Route('/', name: 'app_home')]
public function index(PortfolioContent $content): Response
{
return $this->render('home/index.html.twig', [
'profile' => $content->profile(),
'technologies' => $content->technologies(),
'projects' => $content->projects(),
]);
}
}
View File
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
class Kernel extends BaseKernel
{
use MicroKernelTrait;
/**
* @return list<string> An array of allowed values for APP_ENV
*/
private function getAllowedEnvs(): array
{
return ['prod', 'dev', 'test'];
}
}
@@ -0,0 +1,91 @@
<?php
namespace App\Portfolio;
/**
* Treść portfolio (o mnie, technologie, projekty).
*
* To jedyne miejsce, które trzeba edytować, żeby podmienić dane na własne
* kontroler i szablony czytają wszystko stąd.
*/
final class PortfolioContent
{
/**
* @return array{name: string, role: string, location: string, available: bool, summary: string, about: list<string>, email: string, github: string, linkedin: string}
*/
public function profile(): array
{
return [
'name' => 'Szymon Gawlik',
'role' => 'Backend / Full-stack developer',
'location' => 'Kraków, PL',
'available' => true,
'summary' => 'Tworzę nowoczesne i funkcjonalne aplikacje internetowe — od backendu w PHP i Symfony po interfejsy oparte na JavaScript, Vue.js i React. Zajmuję się również integracją REST API, pracą z bazami danych, Dockerem oraz wdrażaniem i utrzymaniem aplikacji w środowisku Linux.',
'about' => [
'Od ponad 10 lat tworzę i rozwijam aplikacje internetowe, głównie w PHP. Łączę pracę backendową z frontendem opartym na JavaScript, jQuery, Twig, Smarty, Vue.js lub React, dbając o to, aby aplikacje były funkcjonalne, czytelne i łatwe w dalszym rozwoju.',
'Zajmuję się całym procesem tworzenia aplikacji — od analizy potrzeb i projektowania rozwiązania, przez implementację, aż po wdrożenie i utrzymanie w środowisku Linux. Najważniejsze są dla mnie solidny kod, stabilne działanie oraz rozwiązania, które rzeczywiście odpowiadają na potrzeby użytkowników.'
],
'email' => 'szymon.gawlik@gmail.com',
'github' => 'https://github.com/szymongawlik',
'gitea' => 'https://git.rhost.ovh/ryjek',
'linkedin' => 'https://www.linkedin.com/in/szymongawlik',
];
}
/**
* Technologie pogrupowane wg obszaru.
*
* @return list<array{group: string, items: list<string>}>
*/
public function technologies(): array
{
return [
['group' => 'Backend', 'items' => ['PHP 8.4', 'Symfony', 'API Platform', 'Doctrine ORM']],
['group' => 'Frontend', 'items' => ['JavaScript', 'jQuery', 'Smarty', 'Twig', 'Stimulus', 'React']],
['group' => 'Dane', 'items' => ['MySQL', 'Redis', 'PostgreSQL']],
['group' => 'DevOps', 'items' => ['Docker', 'GitHub Actions', 'Nginx', 'Linux']],
];
}
/**
* Lista projektów.
*
* @return list<array{name: string, year: string, role: string, description: string, stack: list<string>, thumbnail: string, github: string, live: string}>
*/
public function projects(): array
{
return [
[
'name' => 'Rozliczenia PIT',
'year' => '2024',
'role' => 'Autor',
'description' => 'Platforma do automatycznego pobierania danych o przychodach z dywidend oraz przeliczania ich zgodnie z obowiązującymi zasadami podatkowymi. Dzięki temu użytkownik szybko otrzymuje zestawienie należnego podatku oraz dane potrzebne do rozliczenia.',
'stack' => ['Symfony', 'API Platform', 'MySQL', 'Docker'],
'thumbnail' => 'images/projects/taxes.svg',
'github' => 'https://git.rhost.ovh/ryjek/taxes',
'live' => 'https://taxes.rhost.ovh/',
],
[
'name' => 'CRM',
'year' => '2025',
'role' => 'Autor',
'description' => 'System CRM dla kancelarii syndyka usprawnia zarządzanie sprawozdaniami z wykonania układu, porządkując terminy oraz dane dotyczące poszczególnych postępowań. Automatyczne przypomnienia i kontrola statusów ograniczają ryzyko opóźnień oraz ułatwiają przygotowanie kompletnych raportów dla sądu i wierzycieli.',
'stack' => ['Symfony', 'React', 'REST Api', 'MySQL', 'Docker'],
'thumbnail' => 'images/projects/crm.svg',
'github' => 'https://git.rhost.ovh/ryjek/sprawozdania',
'githubfront' => 'https://git.rhost.ovh/ryjek/sprawozdania-frontend',
'live' => 'https://crm.rhost.ovh/',
],
[
'name' => 'Wizytówka',
'year' => '2024',
'role' => 'Backend',
'description' => 'Strona wizytówka prezentuje najważniejsze informacje o firmie, jej ofercie i danych kontaktowych w przejrzystej formie. Galeria pozwala zaprezentować realizacje, a sekcja artykułów umożliwia publikowanie aktualności, porad i wartościowych treści dla klientów.',
'stack' => ['Symfony', 'Doctrine', 'Stripe', 'Tailwind'],
'thumbnail' => 'images/projects/wizytowka.svg',
'github' => 'https://github.com/szymongawlik/rynek-lokalny',
'live' => 'https://rynek.example.com',
],
];
}
}
View File