diff --git a/src/pages/Polski/portfolio.md b/src/pages/Polski/portfolio.md new file mode 100644 index 0000000..dbbec31 --- /dev/null +++ b/src/pages/Polski/portfolio.md @@ -0,0 +1,106 @@ +--- +title: Portfolio - Jan Michalak +description: Prezentacja części moich hobbistycznych projektów. +--- + +# Prosty framework PHP + +[**Repozytorium**](https://github.com/canicjusz/framework) + +Zacząłem tworzyć ten projekt, aby zagłębić się w język PHP, lepiej zrozumieć działanie framework'ów oraz poznać wyzwania, z jakimi autorzy takiego oprogramowania muszą się zmagać. + +Projekt jest wciąż nieukończony, ale chyba nigdy nie będzie kompletny. Używam go do tworzenia własnych aplikacji w PHP, więc implementuje jedynie tą funkcjonalność, która jest mi potrzebna. Np. +- statyczny i dynamiczny routing, +- narzucanie wzorca MVC, +- obsługa zmiennych środowiskowych, +- obsługa baz danych oraz wzbudowany Query Builder, +- możliwość modyfikowania zawartości `
` z poziomu każdego komponentu wizualnego strony. + +Cała dokumentacja dostępna jest w repozytorium. + +# Szkolne radio (projekt zespołowy) + +[**Repozytorium**](https://github.com/mbniol/lesna-radiowezel) + +## Problem +Szkolny radiowęzeł jest praktycznie nieużywany, należałoby wykorzystać tę infrastrukturę i przy okazji zaangażować w projekt uczniów. +## Rozwiązanie +Stworzenie aplikacji web'owej, w której uczniowie mogą zgłaszać piosenki, które mają grać w trakcie przerw w następnym dniu. Algorytm ustawia kolejkę w taki sposób, że piosenki z największą liczbą głosów lecą w trakcie przerw obiadowych. Program w pełni zautomatyzowany. + +Jedna część aplikacji jest dostępna dla uczniów. Mogą dodawać piosenki do listy wpisując link lub głosować na piosenki z listy poprzez wciśnięcie przycisku. Każdy uczeń ma po jednym głosie dziennie. + + +Druga część jest dostępna w sieci lokalnej szkoły. Zawiera stronę, która łączy się z SDK Spotify i puszcza muzykę oraz stronę, która wyświetla stan kolejki i aktualnie grany utwór. Strona ta jest wyświetlana na telewizorze w szkolnym holu, co widać na załączonym zdjęciu. + + +![alt text](/portfolio/radiowezel.jpg){.center} +## Czego nowego się nauczyłem +- Pracowanie z API i SDK Spotify +- identyfikacja anonimowych użytkowników +- Aktualizowanie danych na stronie "na żywo" przy użyciu server sent events (SSE) +# Serwis rekrutacyjny + +[**Repozytorium**](https://github.com/canicjusz/laborperejo) +## Problem +- marginalizacja osób mówiących w esperanto na serwisach rekrutacyjnych; +- brak scentralizowanego miejsca na wakaty dla esperantystów, co utrudniało znalezienie pracy jak i pracowników; +- zwiększenie atrakcyjności języka i przedstawienie języka jako sprawne narzędzie komercyjne. +## Rozwiązanie +Stworzenie serwisu rekrutacyjnego dla esperantystów zainspirowany funkcjonalnością i wyglądem innych dużych serwisów. + +Pozwalał przedsiębiorcom i przede wszystkim organizacjom esperanckim stworzenie profilu firmy i dodawanie ofert pracy. Użytkownicy mogli edytować swoje profile oraz udostępniać swoje CV. Strona była wyposażona w całkiem zaawansowaną przeglądarkę do przeglądania profili użytkowników, firm oraz ofert pracy. + +Z powodu zaniku zainteresowania i braku funduszy na dalsze utrzymywanie serwera, po roku zdecydowałem się zamknąć stronę. Mimo to można zobaczyć pełną funkcjonalność strony w prezentacji poniżej: + + + +## Czego nowego się nauczyłem + +- tworzenie aplikacji Back-end'owej przy użyciu Node.js (dokładniej Express.js), +- tworzenie systemu rejestracji i logowania przy użyciu ciasteczek, +- implementacja potwierdzania rejestracji i resetowanie hasła poprzez jednorazowy link, + +- podstaw MySQL, + +- automatyzowanie procesów przy użyciu programu `cron`. + + +# Biblioteka komponentów UI dla aplikacji mobilnych na system KaiOS + +[**Repozytorium**](https://github.com/canicjusz/KaiOS-native-UI) +## Problem +Brak framework agnostic biblioteki UI dla aplikacji mobilnych, która wiernie naśladowałaby wygląd komponentów natywnych. +## Rozwiązanie +Stworzenie niewielkiej biblioteki, która dokładnie odwzorowuje design'owe wytyczne zawarte w oficjalnej dokumentacji. Biblioteka stosuje metodologię nazewnictwa BEM. + +Bibliotekę można w bardzo łatwy sposób dostosować do własnych potrzeb zmieniając jedynie zmienne CSS na początku pliku. +## Czego nowego się nauczyłem +- popracowałem nad tworzeniem przejrzystego i czytelnego kodu, +- tworzenie dokumentacji. + +# Słownik jako wtyczka +[**Repozytorium**](https://github.com/canicjusz/plena-vortaro) + +## Problem +Czytanie tekstu w drugim języku bywa trudne. Przeskakiwanie z tekstu do słownika internetowego i wklejanie nieznanej frazy jest bardzo uciążliwe i czasochłonne, należy to uprościć. +## Rozwiązanie +Stworzenie wtyczki, która po zaznaczeniu słowa wyszukuje definicję poprzez API jednego ze słowników i wyświetla definicję w okienku pod zaznaczonym tekstem. + +Grubość obwódki okienka, wielkość oraz kolor tekstu, jak i kolor tła jest w pełni modyfikowalny w celach ułatwienia dostępu dla ludzi z niepełnosprawnościami. + +![alt text](https://raw.githubusercontent.com/canicjusz/plena-vortaro/master/showcase.gif) {.center} + +## Czego nowego się nauczyłem +- tworzenie wtyczek przeglądarkowych, +- framework'a Svelte.js, + +- podstawy języka TypeScript. +# Aplikacje na system KaiOS +- [**Zipper**](https://github.com/canicjusz/Zipper) - Kompresor plików na system KaiOS. Moja najpopularniejsza aplikacja, pomogła prawie 2000 użytkowników +- [**Flashcards**](https://github.com/canicjusz/flashcards) - Fiszki na system KaiOS +- [**10000h**](https://github.com/canicjusz/10000h) - Program do śledzenia własnych postępów na system KaiOS + +