-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
106 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
--- | ||
title: Portfolio - Jan Michalak | ||
description: Prezentacja części moich hobbistycznych projektów. | ||
--- | ||
<script setup> | ||
import Grid from '../../components/Grid.vue' | ||
</script> | ||
# 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 `<head>` 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. | ||
<!-- | ||
Oczywiście istnieje panel admina na hasło, gdzie można blokować piosenki ręcznie (piosenki z przekleństwami są banowane automatycznie). --> | ||
|
||
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. | ||
|
||
<!-- Panel admina dla tej części aplikacji pozwala tworzyć szablony zawierające czas rozpoczęcia i zakończenia przerw oraz kalendarz, w którym można zaznaczyć dni wolne (nie są wtedy zliczane głosy, ani nie leci muzyka). --> | ||
![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: | ||
|
||
<iframe class="center" width="560" height="315" src="https://www.youtube.com/embed/m4QBzho7LpU?si=_TvnVllTZQzy6485" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> | ||
|
||
## Czego nowego się nauczyłem | ||
<!-- - Korzystanie z frameworka SvelteKit --> | ||
- 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, | ||
<!-- - cykliczne wysyłanie e-mail'i, --> | ||
- podstaw MySQL, | ||
<!-- - tworzenie zaawansowanej wyszukiwarki, implementowanie paginacji --> | ||
- automatyzowanie procesów przy użyciu programu `cron`. | ||
<!-- - Obsługa błędów z komunikatami dla użytkownika --> | ||
|
||
# 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, | ||
<!-- - korzystanie z ShadowRoot i Selection API, --> | ||
- 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 | ||
|
||
<Grid :files="[{path: '/portfolio/zipper1.png'}, {path:'/portfolio/zipper2.png'}]" /> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.