Bartłomiej Romanek

Bartłomiej Romanek

Najlepsze technologie, to sprawdzone technologie!

E-mail LinkedIn

Moje projekty, głównie hobbystyczne

Chciałbym przedstawić Państwu projekty programistyczne, których jestem autorem lub w których tworzeniu brałem bezpośredni udział. Poniższa lista nie zawiera wszystkich pozycji, ale będzie z czasem aktualizowana.

Thumbnails Creator

Lipiec 2020

Generowanie miniaturek zdjęć oraz ich automatyczny upload na dowolny system plików, chmurę Amazon S3 lub usługę Dropbox.

Główne cechy:

  • Wykorzystanie PHP 7.4, Docker oraz Docker registry
  • Wykorzystanie Slim Framework w wersji 4.5
  • Pipeline w GitLab CI oparte w całości o Dockera (dzięki Docker-in-Docker)
Repozytorium

Image server

Marzec 2020

Aplikacja służąca jako usługa udostępniania zdjęć z możliwością dodawania znaku wodnego oraz automatycznej zmiany rozmiaru.

Główne cechy:

  • Wykorzystanie PHP 7.4, Docker, Docker registry, Cypress, GitLab CI
  • GitLab CI - uruchamianie z docker-compose: sniffery kodu, testy jednostkowe, testy integracyjne
  • PHP 7.4 - wykorzystanie nowej składni (array function, property access modifiers)
Repozytorium
Aplikacja Notifier

Aplikacja Powiadamiacz

Lipiec 2019

Aplikacja PWA (Progressive Web App) tworzona w języku TypeScript. Aplikacja nie ma ogólnego przeznaczenia - służy mi do poznania obu technologii. Aplikacja jest dostępna publicznie i można ją z powodzeniem zainstalować na smartfonie poprzez za pomocą przeglądarki Chrome oraz Opera. Na komputerze aplikację obecnie można zainstalować za pomocą przeglądarki Chrome.

Główne cechy:

  • Pełne wsparcie dla aplikacji PWA (wykorzystanie Service Workera)
  • Wykorzystanie dodatkowych API: Lokalizacja, powiadomienia, wibracja urządzenia, udostępnianie i inne
  • Architektura aplikacji w oparciu o wzorzec MVC
  • Wykorzystanie biblioteki Leaflet / OSM do wyświetlenia mapy oraz pinezki
Zobacz aplikację Repozytorium
Moja prywatna strona internetowa

Moja prywatna strona internetowa

Marzec 2018

Moja strona internetowa, na której aktualnie się znajdujesz. Postanowiłem przepisać aplikację napisaną w Laravelu na aplikację opartą o własny framework MVC w celu sprawdzenia trudności takiego rozwiązania. Aplikacja wykorzystuje features języka PHP7 oraz pozwala na łączenie się z wieloma typami baz danych dzięki zastosowaniu biblioteki PDO. Konfiguracja aplikacji następuje poprzez plik konfiguracyjny w języku YAML. Program może działać w dwóch trybach - deweloperskim oraz produkcyjnym.

Główne cechy:

  • Konfiguracja aplikacji poprzez plik w formacie YAML (m.in. środowisko, dane konfiguracyjne bazy danych, możliwość włączenia trybu serwisowego)
  • Konfigurowalny routing w osobnym pliku YAML
  • Wykorzystanie Composera (autoloader, dodatkowe komponenty, m.in. Smarty)
  • Dostęp do danych z bazy poprzez własny, prosty ORM oraz dedykowane repozytoria
  • Możliwość wstrzykiwania serwisów modyfikujących request à la middleware dostępne w Laravelu
System prezentacji treści na urządzeniach mobilnych

System prezentacji treści na urządzeniach mobilnych

Wrzesień 2017

Jest to zestaw aplikacji: CMS do zainstalowania na własnym serwerze oraz aplikacja mobilna na systemy Android oraz Windows. System umożliwia dzielenie się treściami multimedialnymi z innymi użytkownikami (np. pracownikami w organizacji).

Główne cechy:

  • Multiplatformość dzięki zastosowaniu Cordova
  • Tworzenie notatek zawierających tekst oraz multimedia: zdjęcia, wideo, audio oraz pliki pdf
  • Natywne powiadomienia o otrzymaniu nowej zawartości
  • Interfejs dostosowany do urządzeń mobilnych
  • API umożliwiające stworzenie zewnętrznych aplikacji
System zdalnej kompilacji kodu źródłowego

System zdalnej kompilacji kodu źródłowego

Styczeń 2017

Jest to zestaw dwóch aplikacji: klienta napisanego w języku JavaScript oraz serwera napisanego w języku C#, umożliwiający kompilację oraz uruchamianie kodu na zdalnej maszynie dzięki wykorzystaniu kompilatora języka C.

Główne cechy:

  • Wykorzystanie protokołu WebSocket do komunikacji
  • Kompilacja kodu napisanego w języku C/C++
  • Autoryzacja połączenia hasłem
  • Wyświetlanie informacji o błędach kompilacji
  • Wyświetlanie danych ze standardowego wyjścia
Repozytorium
Wieloplatformowy panel dyskusyjny

Wieloplatformowy panel dyskusyjny

Grudzień 2016

Jest to aplikacja à la forum dyskusyjne, spotykane powszechnie w internecie; tak więc możemy tutaj dodawać nowe wątki i posty. Aplikacja składa się z dwóch osobnych wersji: na system Windows Desktop oraz na system Windows 10.

Główne cechy:

  • Wieloplaftormowa aplikacja dzięki zastosowaniu technologii UWP oraz WPF
  • Czytanie treści postów na głos (synteza mowy)
  • Obsługa wielu typów baz danych dzięki Entity Framework
  • Obsługa powiadomień / minimizacja aplikacji do zasobnika
  • Zarządzanie użytkownikami oraz ich role w systemie
Repozytorium (Desktop) Repozytorium (UWP)
Internetowa baza algorytmów programistycznych

Internetowa baza algorytmów programistycznych

Styczeń 2016

Jest to aplikacja webowa napisana w ramach mojej pracy dyplomowej. Program został wykonany w całości w technologii PHP, natomiast do składowania danych została wykorzystana baza MySQL.

Główne cechy:

  • Dodawanie i przeglądanie algorytmów
  • Wyszukiwanie algorytmów w bazie
  • Ocena przydatności algorytmu na podstawie kryteriów
  • Porównywanie algorytmów ze sobą
  • Ocenianie algorytmów i zapisywanie do ulubionych
Sejf plików dla systemu Windows

Sejf plików dla systemu Windows

Grudzień 2015

Jest to aplikacja desktopowa stworzona w ramach projektu zespołowego. Pozostałe osoby w zespole: Paweł Sumionka oraz Radosław Tomaszewski. Program został wykonany w języku C++ wykorzystując Nana C++ Library oraz Windows VHD Reference.

Główne cechy:

  • Tworzenie / otwieranie sejfu z pliku
  • Domyślne otwieranie ostatnio zapisanego sejfu
  • Konfiguracja sejfu (nazwa, rozmiar, hasło dostępu)
  • Szyfrowanie plików za pomocą algorytmu AES
  • Ścisła integracja z systemem Windows
CMS umożliwiający skracanie hiperłączy we własnej domenie

CMS umożliwiający skracanie hiperłączy we własnej domenie

Listopad 2015

Jest to aplikacja typu CMS (ang. Content Management System) umożliwiająca po instalacji na własnym serwerze skracanie hiperłączy. Aplikacja posiada sporo udogodnień związanych z widocznością linków w sieci. Do działania wymagany jest dostep do bazy danych MySQL.

Główne cechy:

  • Tworzenie kont użytkoników
  • Tworzenie własnego / losowo wygenerowanego łącza
  • Zliczanie liczby kliknięć na odnośnik
  • Zarządzanie urządzeniami oraz użytkownikami
  • Eksportowanie zestawień
Repozytorium

Części kodu nie mogę (albo nie chcę) udostępniać publicznie. Jeżeli jesteś zainteresowany szczegółami powyższych projektów - zapraszam do kontaktu. Chętnie wymienię się z Tobą doświadczeniami.