O MNIE

Cześć, tu Bartek

Profile Image

Mam 21 lat i mieszkam w Starym Mieście niedaleko Konina, a na co dzień przebywam także w Poznaniu. Studiuję na Politechnice Poznańskiej, gdzie rozwijam swoją pasję do technologii i jej praktycznych zastosowań w różnych projektach.
Moje zainteresowania obejmują programowanie, nowe technologie, które zmieniają nasz świat (w tym AI), a także sport.
Wierzę, że kluczem do sukcesu w dynamicznie zmieniającym się świecie jest ciągły rozwój i zdobywanie nowych doświadczeń.

Profile Image

PROJEKTY

FutRank - Oceny zawodników piłkarskich

lista_zawodnikow szczegoly_zawodnika logowanie ranking

FutRank to internetowa aplikacja stworzona w Laravelu, pozwalająca użytkownikom oceniać zawodników piłkarskich, przeglądać komentarze i wiele więcej – wszystko w przyjaznym i nowoczesnym interfejsie. Ponadto umożliwia użytkownikom rejestrację, logowanie, weryfikację e-mail, resetowanie hasła oraz zarządzanie kontem. Kluczową funkcjonalnością aplikacji jest lista zawodników z możliwością oceniania (w skali 1–5 gwiazdek), komentowania, filtrowania po klubie, pozycji, miejscu urodzenia, nazwie i komentarzach oraz sortowania po nazwie i średniej ocenie. Portal oferuje zaawansowane wyszukiwanie komentarzy, ranking zawodników na podstawie ocen, dashboard użytkownika, a także opcję edycji i usuwania własnych ocen. Zaimplementowano również integrację z API Hugging Face, umożliwiającą analizę sentymentu komentarzy w języku polskim przy użyciu modelu cardiffnlp/twitter-xlm-roberta-base-sentiment. Projekt wykorzystuje Blade i Tailwind CSS po stronie frontendowej, a także Alpine.js dla interaktywności. Dzięki middleware Laravel Breeze dostępna jest autoryzacja z pełną ochroną i wymogiem weryfikacji adresu e-mail. Aplikacja współpracuje z bazą danych MySQL i umożliwia przeglądanie listy zawodników bez konieczności logowania.

GitHub Logo Kod źródłowy

Koktajlove - Twój osobisty asystent barmański

Koktajlove to nowoczesna aplikacja mobilna dla miłośników drinków i koktajli, stworzona z użyciem Jetpack Compose i Firebase. Użytkownicy mogą przeglądać bogatą bazę koktajli, dodawać własne przepisy do ulubionych, filtrować je po kategoriach oraz przeglądać szczegóły dotyczące składników i sposobu przygotowania. Jednym z kluczowych elementów jest AI Barman – funkcja umożliwiająca generowanie drinków na podstawie składników lub preferencji użytkownika, zintegrowana z modelem językowym przez API. Aplikacja wspiera tryb ciemny i jasny, posiada dynamiczny layout z obsługą tabletów, zachowanie stanu zakładek, podział na kategorie (alkoholowe / bezalkoholowe) oraz detekcję połączenia z internetem. Projekt opiera się na Firebase Firestore jako backendzie do przechowywania danych o koktajlach, ulubionych oraz globalnych polubieniach. Wdrożono logowanie za pomocą Firebase Auth oraz routing do odpowiednich ekranów. Interfejs został zoptymalizowany pod kątem UX – zawiera zwijane paski aplikacji, responsywny układ grid, przełączanie zakładek gestem oraz animacje kart.

GitHub Logo Kod źródłowy

Wygładzanie obrazu metodą cepstralną z użyciem DCT

Przykładowy input i output dla zdjęcia

input output

Celem projektu jest porównanie wydajności algorytmu wygładzania obrazu opartego na dyskretnej transformacie cosinusowej (DCT), realizowanego w trzech wariantach: sekwencyjnym, z użyciem OpenMP oraz z wykorzystaniem platformy CUDA. Algorytm polega na przekształceniu każdego wiersza obrazu z dziedziny przestrzennej do częstotliwościowej, odcięciu wysokich częstotliwości (współczynników DCT), a następnie odwrotnym przekształceniu, co skutkuje efektem wygładzenia obrazu i redukcji szumów. Projekt skupia się na analizie czasu wykonania dla każdego wariantu oraz ocenie jakości przetworzonego obrazu.

GitHub Logo Kod źródłowy

Symulacja wulkanu

Projekt polegał na stworzeniu zaawansowanej wizualizacji trójwymiarowego, eksplodującego wulkanu, który został zaprezentowany w ramach przedmiotu Grafika Komputerowa i Wizualizacja. W realizacji wykorzystano narzędzia i technologie, takie jak OpenGL, GLM, Assimp oraz Blender. Użyto autorski system cząsteczek do dymu i lawy. W fizyce lawy i opadających kamieni zastosowano technikę rzutu ukośnego, co pozwoliło na realistyczne odwzorowanie ruchu i interakcji tych elementów w przestrzeni 3D.

PUT Pharmacy - aplikacja dla aptek

application_apex application_apex2

Aplikacja PUT Pharmacy została opracowana w środowisku Oracle APEX w ramach projektu z baz danych. Jej celem było umożliwienie użytkownikowi definiowania, przeglądania i edytowania danych. Projekt rozpoczął się od stworzenia diagramu ERD, diagramu relacyjnego i skryptów DDL, a następnie aplikacja została wdrożona jako w pełni funkcjonalny interfejs CRUD. Rozwiązanie pozwala na intuicyjne zarządzanie bazą danych leków, dostawców i zamówień w środowisku przyjaznym dla użytkownika niezaawansowanego.

Gra Pong dla dwóch graczy - Raspberry Pi

pong game pong game schema

Projekt zakładał implementację klasycznej gry "Pong" dla dwóch graczy z wykorzystaniem Raspberry Pi. Gracze sterują paletkami za pomocą potencjometrów, a rozgrywka prezentowana jest na wyświetlaczu LED RGB. Gra została wzbogacona o efekty dźwiękowe i losowe zdarzenia wpływające na mechanikę. Celem było połączenie programowania gier w Pythonie z obsługą sprzętowych interfejsów analogowych i cyfrowych oraz integracja z fizycznym środowiskiem, co czyni projekt idealnym połączeniem elektroniki i programowania.

GitHub Logo Kod źródłowy

GiftGuide project

application

Projekt regułowy systemu eksperckiego oparty na wyborze prezentu! Projekt ten wykorzystuje CLIPS jako rdzeń systemu regułowego oraz Python jako interfejs użytkownika i narzędzie do integracji.

GitHub Logo Kod źródłowy

Skrypty w bashu

Generowanie miniaturek

miniaturki

Skrypt przyjmuje listę katalogów jako argument i przetwarza obrazy znajdujące się bezpośrednio w tych katalogach. Dla każdego obrazu tworzy miniaturę o określonym rozmiarze, którą umieszcza w podkatalogu o nazwie tn w tym samym katalogu co oryginalny plik. Dodatkowo, skrypt synchronizuje czasy modyfikacji, zmiany i dostępu miniatur z odpowiednimi czasami oryginalnych obrazów, zapewniając zgodność metadanych i uporządkowanie plików.

IPC Publish-Subscribe

Celem projektu była implementacja systemu przekazywania (rozgłaszania) wiadomości do wszystkich procesów, które zasubskrybowały dany typ wiadomości (zarejestrowały się na ich odbiór). Tworzona aplikacja wykorzystuje mechanizm kolejek komunikatów. W ramach realizacji projektu konieczne było opracowanie protokołu komunikacyjnego i 2 programów: klienta i serwera. Każdy klient może wysyłać i otrzymywać wiadomości do/od pozostałych użytkowników systemu. W wymianie wiadomości pomiędzy klientami zawsze pośredniczy serwer (bezpośrednia komunikacja pomiędzy klientami jest zabroniona). Otrzymywane wiadomości wyświetlane są na ekranie.

GitHub Logo Kod źródłowy

PUT Friends Together Game

game

Prosta gra przygodowa napisana w języku C używając biblioteki SFML. Gra polega na odwiedzaniu przyjaciół i zdobywaniu punktów, uwzględniono mechanikę kolizji. Zawiera ścieżkę dźwiękową, której odtwarzanie można w każdej chwili włączyć lub wyłączyć. Po zdobyciu wymaganej liczby punktów pojawia się jumpscare z krzykiem (nawiązanie do gry "Straszny labirynt"), następnie można kontynuować dalej grę.

Problem marszrutyzacji z ograniczeniami pojemności i oknami czasowymi - optymalizacja

Problem rozwiązano używając algorytmu GRASP (Greedy randomized adaptive search procedure) oraz Tabu Search. Rozwiązanie używające algorytmu Tabu Search pobiło najlepszy wynik na Politechnice Poznańskiej. Problem ten polega na optymalnym planowaniu tras dla floty pojazdów, które muszą dostarczyć towary do zestawu klientów, przy uwzględnieniu wielu ograniczeń.

GitHub Logo Kod źródłowy

RouteMaster App

app

Aplikacja desktopowa rozwiązująca problem marszrutyzacji, który dotyczy spedytorów. Została stworzona w paradygmacie programowania obiektowego. Backend w języku C++ oraz frontend przy użyciu Qt Creator.

Algorytmy i Struktury Danych

W ramach zajęć z algorytmów i struktur danych realizowałem projekty w językach C++ oraz Python. Zadania obejmowały implementację różnych metod sortowania, zaawansowanych struktur danych (m.in. drzewa, grafy, kolejki priorytetowe), a także algorytmów grafowych, takich jak BFS, DFS, znajdowanie cyklu Eulera i Hamiltona. Dodatkowo zajmowałem się problemami optymalizacyjnymi, takimi jak problem plecakowy (knapsack), z zastosowaniem technik przeszukiwania i programowania dynamicznego. Projekty miały na celu rozwój myślenia algorytmicznego i optymalizacji kodu pod kątem złożoności obliczeniowej.

GitHub Logo Kody źródłowe projektów

Programowanie i konstrukcja robotów opartych na mikrokontrolerach

car1 car2

Zaprojektowałem i zbudowałem dwa autonomiczne pojazdy. Pierwszy z nich oparty był na platformie Arduino UNO, natomiast drugi powstał w oparciu o własnoręcznie zaprojektowaną i wytrawioną płytkę PCB z mikrokontrolerem ATmega. Projekt wymagał zarówno wiedzy z zakresu elektroniki, jak i praktycznych umiejętności montażu komponentów i lutowania. Szczególnym wyzwaniem było samodzielne przygotowanie działającej płytki drukowanej oraz integracja wszystkich elementów. Poniżej znajduje się film prezentujący cały proces budowy.

GitHub Logo Kod źródłowy

Inne projekty i umiejętności

W ramach studiów realizowałem różnorodne projekty programistyczne — od aplikacji w Swift, przez proste programy w językach C, C++, Pythonie, aż po problemy logiczne rozwiązane w Prologu. Mam również doświadczenie z językiem SQL oraz R, wykorzystywanym do statystyki i analizy danych. Niniejsza strona stanowi mój autorski projekt, wykonany w HTML, CSS oraz JS. W trakcie zajęć z inżynierii oprogramowania poznałem język Java oraz metodykę Scrum, w której aktywnie uczestniczyłem jako Scrum Master. Potrafię także tworzyć podstawowe programy sieciowe — m.in. serwer w języku C++ z wykorzystaniem BSD socket API działający w sieci rozległej. Większość moich projektów znajduje się na moim GitHubie, a najważniejsze z nich opisałem w sekcji „Projekty”.

GitHub Logo Mój GitHub

KONTAKT