
Gdy chodzę obecnie na rozmowy o pracę, głównym tematem jest moje dotychczasowe doświadczenie zawodowe i projekty, w których brałam udział. Jednak nie zawsze tak było. Gdy doświadczenia brak lub jest niewielkie, portfolio jest wizytówką naszych umiejętności. Czasem jedyną.
Z doświadczeniem przychodzi też wiele pomysłów na nowe projekty. Czyli dokładnie przeciwnie do potrzeb i możliwości. Na początku tych pomysłów brak. Ale coś na to poradzimy. Dzielę się dziś moimi projektami, które realizowałam po godzinach. Wszystkie faktycznie powstały, chociaż niekoniecznie są (lub były) udostępnione lub mają wersję demo.
Poza opisem projektów, dzielę się linkami do źródeł danych lub API, z których korzystałam. A jeśli projekt jest gdzieś dostępny, to podaję info, gdzie go znaleźć.
No to zaczynamy - ku inspiracji.
Moje projekty:
Apka do odmiany fińskich czasowników
W pewnych pięknych czasach uczyłam się języka fińskiego. Spędziłam około 9 miesięcy na wymianie w Finlandii w czasie studiów (a nawet dostałam dyplom inżynierski tamtejszej uczelni) i zawsze wspominam Finlandię z ogromnym sentymentem. Jednak naukę fińskiego już nie za bardzo.
Aplikację do odmiany i testowania swoich umiejętności w tym zakresie stworzyłam jeszcze na studiach na projekt zaliczeniowy. Leży gdzieś na dysku, bo nigdy nie doczekał się własnego repo ani wersji demo online.
Jeśli jesteście ciekawi jak wygląda odmiana fińskich czasowników, to polecam linki: https://www.verbix.com/languages/finnish.html oraz https://people.uta.fi/~km56049/finnish/verbs.html
Ten drugi w zasadzie zapewnia algorytm jak napisać taką odmianę, bo dla każdej z 6 grup jest nieco inna.
Aplikacja do uczenia się niemieckich rodzajników
Wciąż w tematach językowych, ale już może nieco popularniejsze zagadnienie. Aplikacja w Django i z użyciem biblioteki ‘django_quiz’ do odpytywania. Dane wygenerowane na podstawie zliczenia najpopularniejszych słów w kilku niemieckich tekstach lub zasobach Tatoeby (oj raj dla różnych projektów programistycznych, świetne dane na licencji Creative Commons: Tatoeba)
Kiedyś miałam projekt wystawiony na hostingu, ale obecnie już jest w niebycie. Sam kod można podejrzeć tu: https://github.com/iustitia/garts, aczkolwiek jakaś część może już nie działać. Boję się w to nawet patrzeć, bo dopiero uczyłam się wtedy Django, więc może tam być sam wstyd :)
Aplikacja do masowego wysyłania SMS
Ta aplikacja osiągnęła faktyczny etap produkcyjny i została użyta w toku przygotowań do wesela przez moją znajomą. Ale porzuciłam zainteresowanie rozwijania jej. Może na własny użytek jeszcze do niej wrócę - w kontekście wesela lub jakiejkolwiek innej imprezy.
Aplikacja webowa, która zaciąga kontakty z pliku vcf (standardowy format na który można wyeksportować kontakty z telefonów) i umożliwia wysyłanie SMSów z dedykowanego numeru telefonu. Do wysyłania SMS użyłam Twilio, ale jest też kilka innych podobnych serwisów.
Za dedykowany numer i możliwość wysyłania faktycznych smsów trzeba zapłacić, ale można sobie spokojnie testować w wersji bezpłatnej wysyłkę na jeden zweryfikowany numer. Jest doklejana jakaś wiadomość z serwisu, ale dla projektu do portfolio powinno wystarczyć.
Tutorial i przykładowy kod korzystający z Twillio: https://www.twilio.com/docs/sms/quickstart/python
Blog
Blog, który właśnie czytasz stoi na Django z dokładką biblioteki ‘zinnia’. Do tego dokupiłam szablon, dołożyłam jeszcze kilka bibliotek. Pochłonęło sporo czasu i pewnie łatwiej by było stworzyć wszystko w Wordpressie. Mnie cieszyło i bawiło zrobienie tego samodzielnie. A teraz mogę sobie zawsze dopisać jakąś część, co już w przeszłości robiłam np. pisząc dodatek do skracania linków.
Pisanie całego projektu pod swoje wymagania było dla mnie o tyle świetne, że miałam konkretne oczekiwania rozwiązań. Byłam swoim własnym Product Ownerem i to chwilami całkiem wymagającym. Np. chciałam koniecznie, żeby komentarze pod postami miały swoją hierarchię i tym samym można było na nie odpowiadać.
Nie pisałam jednak bloga od zupełnych podstaw, tylko skorzystałam z biblioteki, która faktycznie podstawowe części bloga już rozwiązywała. Inna sprawa, że sporo kodu biblioteki musiałam się naczytać, żeby zrozumieć co i jak połączyć z moim szablonem. Ale było warto.
Apka do aktualizacji budżetu w Google Docs
Kiedy jeszcze miałam reżim do planowania i zarządzania budżetem, dość mocno go pilnowałam. Obecnie nie za bardzo mam na to motywację, bo wiem już mniej więcej ile wydaję miesięcznie. Poza tym aplikacja bankowa pokazuje mi miesięczne wpływy i wypływy, co zapewnia podstawową kontrolę.
Jednak jakieś 1,5 roku temu faktycznie śledziłam swoje wydatki na bieżąco, analizowałam ile co mnie kosztuje itd. Używałam do tego szablonu przygotowanego przez Michała Szafrańskiego na blogu (rok 2018, rok 2019).
Uwaga poboczna: Jeśli nie wiesz na co uciekają Ci pieniądze, to bardzo polecam prowadzenie budżetu przez kilka miesięcy. Pozwala zrozumieć co się dzieje w finansach i zwiększyć poczucie kontroli nad tym ważnym obszarem. Możliwe, że u Ciebie wszystko wygląda wzorowo i wiesz na czym stoisz. Ale badania (zrealizowane przez serwis pożyczkowy, ale zawsze) pokazują, że stan wiedzy o finansach w Polsce jest zatrważający (Badanie Wonga).
Raz na jakiś czas siadałam z paragonami i wyciągami bankowymi spisując wydatki do arkusza. Edukacyjny proces, ale bardzo czasochłonny. Postanowiłam stworzyć sobie aplikację, w której wybieram kategorię, datę, podaję kwotę i mój budżet jest automatycznie aktualizowany.
Ponieważ arkusz był w Google Spreadsheet, korzystałam z Google Spreadsheet API, a sama aplikacja była napisana we Flask’u. Możecie się spodziewać, że Google będzie miał wyborną dokumentację. Zdecydowanie nie. Wiele aspektów w ogóle nie znalazłam wymienionych np. jak odnieść się do kolejnej zakładki, a nie pierwszej. Czytanie kodu źródłowego biblioteki “ułatwiającej” też nie było trywialne. Poskładałam całość, ale często czytając fragmenty kodu innych.
Pomijając aspekt dokumentacji, był to bardzo satysfakcjonujący projekt, z którego dobrodziejstw już nie korzystam. Bardzo polecam bądź tą samą ścieżkę, bądź jakiś inny projekt z Google Spreadsheet API (przykład z dokumentacji: https://developers.google.com/sheets/api/samples/reading)
Źródło mojej aplikacji: https://github.com/iustitia/budget_updater
Średnie kroczące
Nieco bardziej współczesny dla mnie projekt. Średnie kroczące to typ wskaźnika, pomagającego zorientować się o kierunku ruchów akcji giełdowych.
Matematycznie jest to dość prosta konstrukcja. Wartość średniej kroczącej dziś możemy obliczyć jako średnia arytmetyczna z n ostatnich dni. Np. licząc wartość średniej kroczącej 3-dniowej w czwartek, liczymy jako średnią arytmetyczną z poniedziałku, wtorku i środy. W piątek będziemy liczyć już z wtorku, środy i czwartku. Możemy wyliczyć średnie na różnych wartości n i obserwować, gdzie się przecinają.
Więcej o średnich kroczących poczytasz tutaj: Średnie kroczące, jakie są rodzaje i jak je wykorzystać w inwestycjach) , a dane do analiz tego typu możesz pobrać z: Dane Bossa
To jest też ciekawy projekt pod kątem różnych wizualizacji i analizy czy faktycznie te wskaźniki przekazywały dobre informacje o kupnie i sprzedaży. Planuję go jeszcze rozwijać.
Generator polskich imion i nazwisk
Na potrzeby prezentacji napisałam prosty generator imion i nazwisk po polsku. Program tak trywialny jak się wydaje, ale może się przydać do generowania testowych danych do innych projektów. Można też rozszerzyć o generowanie innych danych osobowych.
Podsumowanie
To tyle z projektów nieco większych lub faktycznie przeze mnie pamiętanych i udokumentowanych. Miał to być post o projektach do portfolio, nie tylko moich, ale na tyle się rozpisałam, że postanowiłam podzielić ten temat na kilka wpisów.
Moje projekty lub źródła danych przyniosły Ci jakiś pomysł na własny projekt? Daj znać w komentarzu.
Justyna to jak jest czteroletnie doświadczenie czy trzyletnie doświadczenie?
Teraz to już nawet dłuższe ;) Faktycznie muszę to zaktualizować i uwspólnić, dzięki!