From 25854e8a6511e88a05fced746f93ec3083198afb Mon Sep 17 00:00:00 2001 From: Ryjek Date: Thu, 27 Aug 2026 16:44:55 +0200 Subject: [PATCH] add full crm --- project/assets/styles/app.css | 24 +++++++++------ .../public/images/projects/crm-symfony.svg | 30 +++++++++++++++++++ project/src/Portfolio/PortfolioContent.php | 17 +++++++++-- 3 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 project/public/images/projects/crm-symfony.svg diff --git a/project/assets/styles/app.css b/project/assets/styles/app.css index 0ddf87e..fb3acd8 100644 --- a/project/assets/styles/app.css +++ b/project/assets/styles/app.css @@ -253,8 +253,11 @@ a { color: inherit; text-decoration: none; } .projects-grid { display: grid; - grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); - gap: 22px; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 18px; +} +@media (min-width: 900px) { + .projects-grid { grid-template-columns: repeat(3, 1fr); } } .project { display: flex; @@ -269,11 +272,13 @@ a { color: inherit; text-decoration: none; } .project-thumb { aspect-ratio: 16 / 9; width: 100%; - object-fit: cover; + height: auto; + object-fit: contain; + background: #0d1a2b; display: block; border-bottom: 1px solid var(--line); } -.project-body { padding: 22px; display: flex; flex-direction: column; flex: 1; } +.project-body { padding: 18px; display: flex; flex-direction: column; flex: 1; } .project-meta { display: flex; gap: 12px; @@ -285,16 +290,17 @@ a { color: inherit; text-decoration: none; } .project-name { font-family: var(--display); font-weight: 600; - font-size: 1.35rem; + font-size: 1.2rem; letter-spacing: -0.015em; margin: 0 0 10px; } -.project-desc { color: var(--muted); font-size: 0.98rem; margin: 0 0 18px; } +.project-desc { color: var(--muted); font-size: 0.92rem; margin: 0 0 16px; } .project-stack { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 20px; } .project-stack .chip { font-size: 0.74rem; padding: 4px 9px; } .project-actions { display: flex; - gap: 10px; + flex-wrap: wrap; + gap: 8px; margin-top: auto; padding-top: 4px; } @@ -303,8 +309,8 @@ a { color: inherit; text-decoration: none; } align-items: center; gap: 7px; font-family: var(--mono); - font-size: 0.82rem; - padding: 9px 14px; + font-size: 0.78rem; + padding: 8px 12px; border-radius: 9px; border: 1px solid var(--line-strong); transition: border-color 0.16s, background 0.16s, color 0.16s; diff --git a/project/public/images/projects/crm-symfony.svg b/project/public/images/projects/crm-symfony.svg new file mode 100644 index 0000000..1a1e77e --- /dev/null +++ b/project/public/images/projects/crm-symfony.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + CRM + + + + + + + CRM · Symfony + Twig + diff --git a/project/src/Portfolio/PortfolioContent.php b/project/src/Portfolio/PortfolioContent.php index c8af0ce..57cc1f2 100644 --- a/project/src/Portfolio/PortfolioContent.php +++ b/project/src/Portfolio/PortfolioContent.php @@ -125,14 +125,27 @@ final class PortfolioContent '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. + 'description' => 'System CRM dla kancelarii syndyka, napisany w całości w Symfony - widoki renderowane po stronie serwera w Twigu, bez osobnego frontendu i warstwy API. Prostsze wdrożenie i utrzymanie przy zachowaniu pełnej funkcjonalności: sprawozdania z wykonania układu, terminy, statusy postępowań i przypomnienia. +

Dane logowania: +
Nazwa użytkownika: demo +
Haslo: LRJXG1Vl1yTO', + 'stack' => ['Symfony', 'Twig', 'Doctrine', 'MySQL', 'Docker'], + 'thumbnail' => 'images/projects/crm-symfony.svg', + 'github' => 'https://git.rhost.ovh/ryjek/sprawozdania', + 'live' => 'https://crm-full.rhost.ovh/', + ], + [ + 'name' => 'CRM (beta)', + 'year' => '2026', + 'role' => 'Autor', + 'description' => 'Wersja beta systemu CRM dla kancelarii syndyka, zbudowana w architekturze rozdzielonej: backend w Symfony udostępnia REST API, a interfejs to aplikacja SPA w React. System porządkuje sprawozdania z wykonania układu, terminy oraz dane poszczególnych postępowań, a automatyczne przypomnienia i kontrola statusów ograniczają ryzyko opóźnień przy raportach dla sądu i wierzycieli.

Dane logowania:
Nazwa użytkownika: demo
Haslo: LRJXG1Vl1yTO', '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', + 'githubfront' => 'https://git.rhost.ovh/ryjek/sprawozdania/src/branch/masterApi/', 'live' => 'https://crm.rhost.ovh/', ], // [