wk@portfolio:~/projects$ ls -la

28 projektów

🐍 Narzędzia Python CLI (2 projects)
🐍

Price Watcher

Skrypt monitorujący ceny produktów ze stron internetowych. Zapisuje historię cen do CSV i wysyła alert gdy cena spadnie poniżej progu.

portfolio — bash

$ price-watcher --track "RTX 4070" --threshold 2200

🔍 Śledzę: RTX 4070 | Próg: 2200 zł | Obecna cena: 2499 zł

$ price-watcher --history "RTX 4070"

📅 Historia cen RTX 4070: 2024-01-10: 2699 zł 2024-01-20: 2549 zł 2024-02-01: 2499 zł 🔔 Najniższa cena! Poniżej progu 2200 zł? Nie

  • Python
  • Requests
  • BeautifulSoup
  • lxml
  • Termcolor
🐍

Weather CLI

Prosta apka pogodowa w terminalu. Pokazuje temperaturę, wilgotność, wiatr i prognozę na 3 dni.

portfolio — bash

$ weather-cli --city Warszawa

🌤 Warszawa: 18°C, wilgotność 65%, wiatr 12km/h

$ weather-cli --forecast 3

Pon: 18°C ☀️ Wt: 21°C ⛅ Śr: 15°C 🌧

  • Python
  • Requests
  • Termcolor
🦀 Narzędzia Rust CLI (4 projects)
🦀

Batch Image Resizer

Narzędzie do masowej zmiany rozmiaru zdjęć. Obsługuje zmianę wymiarów, formatu i zachowuje proporcje.

portfolio — bash

$ image-resizer --input ./photos --size 800x600 --format webp

🖼️ Przetwarzanie obrazów: [██████████████████████████████] 24/24 (100%) Zmieniono rozmiar: 24 plików Format wyjściowy: WebP

$ image-resizer --input ./photos --size 1920x --keep-aspect

📐 Zachowanie proporcji: IMG_001.jpg → 1920x1280 (skala 0.5x) IMG_002.png → 1920x1440 (skala 0.4x) ✅ Zapisano 2 plików w ./output/

  • Rust
  • Clap
  • Pillow
  • Indicatif
🦀

File Organizer

Automatyczne porządkowanie plików w katalogu według rozszerzenia. Przenosi pliki do podkatalogów (Images, Documents, Videos, Music, Archives, Code).

portfolio — bash

$ file-organizer --dir ~/Pobrane --dry-run

🔍 Tryb podglądu (bez zmian): photo.jpg → Images/ raport.pdf → Documents/ wakacje.mp4 → Videos/

$ file-organizer --dir ~/Pobrane

📁 Uporządkowano 42 pliki: Images: 15 plików Documents: 12 plików Videos: 8 plików Music: 4 pliki Archives: 2 pliki Code: 1 plik

  • Rust
  • Clap
  • Walkdir
🦀

HTTP Server

Prosty serwer HTTP napisany od zera w Ruście bez zewnętrznych bibliotek. Serwuje pliki statyczne z katalogu.

portfolio — bash

$ http-server ./public --port 8080

🚀 Serwer HTTP uruchomiony na http://localhost:8080 Serwowanie plików z: ./public

$ curl http://localhost:8080/index.html

HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1424 <!DOCTYPE html>...

  • Rust
🦀

Todo CLI

Prosty menedżer zadań w terminalu. Dodawanie, oznaczanie jako ukończone i usuwanie zadań.

portfolio — bash

$ todo-cli add "Naprawić błąd w auth"

✅ Dodano zadanie #1: Naprawić błąd w auth

$ todo-cli list

📋 Lista zadań: [ ] #1 Naprawić błąd w auth [ ] #2 Napisać testy jednostkowe [✓] #3 Zaktualizować README

$ todo-cli done 1

✅ Zadanie #1 oznaczone jako ukończone

  • Rust
  • Clap
  • Serde
  • Colored
💚 Aplikacje Vue (7 projects)
💚

E-commerce Frontend

Makieta frontendu sklepu internetowego. Wyświetlanie produktów, filtrowanie po kategoriach, wyszukiwanie, koszyk z zapisem w localStorage.

E-commerce Frontend
e-commerce-frontend.app
E-commerce Frontend screenshot 1
  • Vue 3
  • Vite
💚

Kanban Board

Interaktywna tablica Kanban. Trzy kolumny (Do zrobienia, W trakcie, Gotowe), drag & drop, trwałość danych w LocalStorage.

Kanban Board
kanban-board.app
Kanban Board screenshot 1
  • Vue 3
  • Vite
💚

Movie Search

Wyszukiwarka filmów oparta na TMDB API. Wyszukiwanie po tytule, popularne filmy na stronie głównej, debounce na wejściu.

Movie Search
movie-search.app
Movie Search screenshot 1
  • Vue 3
  • Vite
  • TMDB API
💚

Pomodoro Timer

Prosty i minimalistyczny timer Pomodoro. Cykle 25 min pracy i 5 min przerwy, wizualny wskaźnik postępu i powiadomienia dźwiękowe.

Pomodoro Timer
pomodoro-timer.app
Pomodoro Timer screenshot 1
  • Vue 3
  • Vite
  • CSS
💚

Quiz App

Aplikacja quizowa o programowaniu. 10 pytań, natychmiastowe podświetlanie odpowiedzi, pasek postępu i ekran końcowy z wynikiem.

Quiz App
quiz-app.app
Quiz App screenshot 1
  • Vue 3
  • Vite
  • CSS
💚

Task Manager

Prosty menedżer zadań SPA. Dodawanie zadań z priorytetem, oznaczanie jako ukończone, filtrowanie i sortowanie, trwałość w LocalStorage.

Task Manager
task-manager.app
Task Manager screenshot 1
  • Vue 3
  • Vite
💚

Weather Dashboard

Panel pogodowy z wykresami temperatury. Używa API wttr.in bez klucza API.

Weather Dashboard
weather-dashboard.app
Weather Dashboard screenshot 1
  • Vue 3
  • Chart.js
  • Vite
⚛️ Aplikacje React (2 projects)
⚛️

GitHub Stats Dashboard

Wyświetla statystyki użytkownika GitHub: repozytoria, języki, obserwujących.

GitHub Stats Dashboard
github-stats-dashboard.app
GitHub Stats Dashboard screenshot 1
  • React
  • Vite
  • Recharts
⚛️

Markdown Notes

Notatnik w formacie Markdown z podglądem na żywo. Edytor ze wsparciem Markdown, automatyczne zapisywanie w localStorage, zarządzanie notatkami.

Markdown Notes
markdown-notes.app
Markdown Notes screenshot 1
  • React
  • Vite
  • Marked
🔷 API Laravel (4 projects)
🔷

Blog API

REST API bloga napisane w Laravel 10. Pełna obsługa postów i komentarzy z walidacją danych.

api-panel — rest
Endpoints
GET/api/posts
Request
{}
Response200 OK
{
  "data": [
    {
      "id": 1,
      "title": "Post title",
      "slug": "post-title",
      "body": "Content...",
      "author": {
        "name": "User"
      }
    }
  ]
}
  • Laravel
  • PHP
🔷

E-commerce Backend

REST API sklepu internetowego napisane w Laravel 10. Zarządzanie produktami i zamówieniami ze statusem zamówień.

api-panel — rest
Endpoints
GET/api/products
Request
{
  "page": 1,
  "limit": 10
}
Response200 OK
{
  "data": [
    {
      "id": 1,
      "name": "Product A",
      "price": 29.99,
      "stock": 50
    }
  ],
  "total": 150
}
  • Laravel
  • PHP
🔷

Film Ranking

API rankingu filmów z systemem ocen napisane w Laravel 11. Użytkownicy mogą dodawać filmy i oceniać je, automatyczne obliczanie średniej.

api-panel — rest
Endpoints
GET/api/films
Request
{
  "sort": "rating",
  "genre": "action"
}
Response200 OK
{
  "data": [
    {
      "id": 1,
      "title": "Inception",
      "rating": 9.1,
      "votes": 2341000
    }
  ]
}
  • Laravel
  • PHP
  • Tailwind CSS
🔷

URL Shortener

API do skracania linków. Skracanie URL, lista skróconych linków, przekierowanie po kodzie.

api-panel — rest
Endpoints
POST/api/shorten
Request
{
  "url": "https://example.com/very/long/path"
}
Response200 OK
{
  "short_url": "https://shr.tc/abc123",
  "expires_at": "2025-01-15"
}
  • Laravel
  • PHP
⚙️ Projekty C++ (3 projects)
⚙️

ASCII Art Generator

Konwertuje obrazy PPM na sztukę ASCII. Napisane w C++17.

portfolio — bash

$ ./ascii-art --input landscape.ppm --width 80

🎨 Konwersja landscape.ppm (320x240 → 80x30 znaków): @@@#########=====-----..... ######========-----....... =======------........

$ ./ascii-art --input photo.ppm --charset simple

📊 Zestaw znaków: simple (10 poziomów) ████████████▓▓▓▓▓▓▓░░░░ ... ✅ Zapisano do photo_ascii.txt

  • C++
  • CMake
⚙️

Memory Allocator Benchmark

Porównuje wydajność różnych metod alokacji pamięci w C++. malloc/free vs new/delete, stałe vs losowe rozmiary alokacji.

portfolio — bash

$ ./allocator-bench --iterations 100000 --mode fixed

🔬 Benchmark alokacji pamięci (100 000 iteracji): malloc/free: 12.4 ms (średnio 124 ns/alokacja) new/delete: 14.1 ms (średnio 141 ns/alokacja) allocator: 9.8 ms (średnio 98 ns/alokacja)

$ ./allocator-bench --iterations 100000 --mode random

🔬 Benchmark — losowe rozmiary: malloc/free: 18.7 ms new/delete: 21.3 ms allocator: 13.2 ms 🏆 Najlepszy: custom allocator (29.8% szybszy)

  • C++
  • CMake
⚙️

Terminal Notepad

Prosty edytor tekstu w terminalu napisany w C++ z ncurses. Skróty klawiszowe Ctrl+S/Ctrl+Q, nawigacja strzałkami.

portfolio — bash

$ terminal-notepad notes.txt

Otwarto: notes.txt | 3 linie | Tryb: vim

$ :w

Zapisano 3 linie → notes.txt

  • C++
  • ncurses
  • CMake
🧠 Machine Learning (4 projects)
🧠

Image Classifier CNN

Klasyfikator obrazów CNN w TensorFlow. Prosta sieć konwolucyjna trenowana na zbiorze CIFAR-10, klasyfikuje obrazy do 10 kategorii.

Training Metrics

94.6%Epochs: 15
Accuracy
100%75%50%25%0%
Loss
1.41.10.70.40
Sample Predictions
InputOutput
cat.jpgcat (97.2%)
car.jpgautomobile (92.8%)
dog.jpgdog (89.1%)
  • Python
  • TensorFlow
  • NumPy
  • Matplotlib
🧠

MNIST Classifier

Klasyfikator cyfr MNIST w PyTorch. Prosta sieć feedforward (784→128→64→10), osiąga ~97% dokładności po 3 epokach.

Training Metrics

98.3%Epochs: 10
Accuracy
100%75%50%25%0%
Loss
0.50.40.30.10
Sample Predictions
InputOutput
digit_7.png7 (99.1%)
digit_3.png3 (98.4%)
digit_9.png9 (97.2%)
  • Python
  • PyTorch
  • Torchvision
  • Matplotlib
🧠

Price Predictor

Predyktor cen mieszkań oparty na RandomForestRegressor. Trenowany na danych z cechami: metraż, pokoje, piętro, dzielnica, rok budowy.

Training Metrics

84.2% R²Epochs: 8
Accuracy
100%75%50%25%0%
Loss
0.80.60.40.20
Sample Predictions
InputOutput
3br, 90m², Śródmieście~8,450 PLN/m²
2br, 55m², Praga~6,800 PLN/m²
  • Python
  • scikit-learn
  • NumPy
  • Pandas
  • Matplotlib
🧠

Sentiment Analyzer

Analizator sentymentu tekstu. Model oparty na CountVectorizer + Naive Bayes, klasyfikuje tekst jako pozytywny lub negatywny.

Training Metrics

91.0%Epochs: 5
Accuracy
100%75%50%25%0%
Loss
0.80.60.40.20
Sample Predictions
InputOutput
Great product, happy!POSITIVE (96.2%)
Terrible service, never againNEGATIVE (97.8%)
  • Python
  • scikit-learn
  • NumPy
🟣 API C# (2 projects)
🟣

Bookmarks API

API menedżera zakładek w .NET 8 Minimal API. CRUD dla zakładek, wyszukiwanie po tytule lub URL, Swagger UI.

api-panel — rest
Endpoints
GET/api/bookmarks
Request
{
  "tag": "programming",
  "limit": 20
}
Response200 OK
{
  "items": [
    {
      "id": 1,
      "url": "https://docs.microsoft.com",
      "title": "MS Docs",
      "tags": [
        "programming",
        "dotnet"
      ]
    }
  ]
}
  • C#
  • .NET
  • Swashbuckle
🟣

Task Scheduler API

API planera zadań w ASP.NET Core 8. Pełny CRUD dla zadań, Swagger UI.

api-panel — rest
Endpoints
POST/api/tasks
Request
{
  "name": "Backup DB",
  "cron": "0 2 * * *",
  "command": "backup.sh"
}
Response200 OK
{
  "task_id": "t-001",
  "next_run": "2024-01-16T02: 00: 00Z",
  "status": "scheduled"
}
  • C#
  • ASP.NET Core
  • Swashbuckle