Nowoczesna, responsywna strona portfolio stworzona w oparciu o najnowsze technologie webowe. Projekt służy jako wizytówka zawodowa, prezentująca moje doświadczenie, zrealizowane projekty oraz szczegółową ofertę usług programistycznych. Aplikacja została zaprojektowana z myślą o wysokiej wydajności, SEO oraz dostępności.
Projekt wykorzystuje nowoczesny stack technologiczny zapewniający szybkość działania, skalowalność i łatwość utrzymania kodu:
- Next.js 15 (App Router) - Framework React do budowania aplikacji webowych.
- TypeScript - Statycznie typowany nadzbiór JavaScript.
- React - Biblioteka do budowania interfejsów użytkownika.
- Tailwind CSS - Framework CSS utility-first.
- Framer Motion - Biblioteka do tworzenia zaawansowanych animacji.
- Lucide React - Zestaw ikon.
- Radix UI - Dostępne komponenty UI (wykorzystywane m.in. w powiadomieniach Toast).
- Tailwind Merge & CLSX - Narzędzia do warunkowego łączenia klas CSS.
- next-intl - Pełna obsługa wielojęzyczności (i18n) z routingiem opartym na ścieżkach.
- Zod - Walidacja schematów danych (formularze).
- Nodemailer - Obsługa wysyłki wiadomości e-mail (formularz kontaktowy).
- Server Actions - Obsługa logiki po stronie serwera bezpośrednio w komponentach React.
- ESLint & Prettier - Linter i formatter kodu.
- Husky & lint-staged - Automatyzacja sprawdzania kodu przed commitem (Git Hooks).
Aplikacja wspiera wiele wersji językowych (obecnie PL i EN) dzięki bibliotece next-intl.
- Routing obsługuje prefiksy językowe (np.
/pl,/en). - Treści statyczne pobierane są z plików tłumaczeń JSON.
- Middleware automatycznie wykrywa i przekierowuje użytkownika na odpowiednią wersję językową.
Projekt oparty jest na App Router z dynamicznym routingiem:
- Strona Główna (
/) - Sekcja Hero, O mnie, Doświadczenie, Wybrane projekty, Kontakt. - Portfolio (
/portfolio) - Pełna lista zrealizowanych projektów.- Szczegóły Projektu (
/portfolio/[slug]) - Dynamicznie generowane strony dla każdego projektu.
- Szczegóły Projektu (
- Oferta (
/oferta) - Sekcje dedykowane konkretnym usługom:- Strony Internetowe (
/oferta/strony-internetowe) - Systemy Dedykowane / CRM (
/oferta/systemy-dedykowane-crm) - Wdrożenia AI (
/oferta/wdrozenia-ai) - Automatyzacje (
/oferta/automatyzacje)
- Strony Internetowe (
Aby uruchomić projekt lokalnie, wykonaj następujące kroki:
-
Sklonuj repozytorium:
git clone <adres-repozytorium> cd PortfolioNextJS
-
Zainstaluj zależności: Użyj wybranego menedżera pakietów (npm, yarn lub pnpm).
npm install # lub yarn install -
Konfiguracja zmiennych środowiskowych: Upewnij się, że posiadasz plik
.envskonfigurowany zgodnie z wymaganiami projektu (głównie dla obsługi SMTP formularza kontaktowego). -
Uruchom serwer deweloperski:
npm run dev # lub yarn dev -
Otwórz aplikację: Przejdź pod adres http://localhost:3000 w swojej przeglądarce.
Aby zbudować aplikację pod środowisko produkcyjne:
npm run build
npm start