Projekty

CookTool - kulinarny pomocnik

[OBRAZEK]

Proces wytwarzania oprogramowania to nie tylko proces implementacyjny. Faktem jest, że etap ten daje najwięcej satysfakcji, ponieważ da się go ocenić pod względem efektywności, wydajności czy spełnienia oczekiwań klienta. Natomiast by efekty pracy były jak najbardziej zadowalające, potrzeba taki proces zaplanować czy zapoznać się z potrzebami potencjalnych użytkowników. Dlatego też praca inżynierska Izabeli Wiatrowskiej pt. „Badanie procesu wytwarzania oprogramowania na podstawie aplikacji webowej i mobilnej dotyczącej przepisów kulinarnych” uwzględnia nie tylko wykreowany produkt, ale także łączy ze sobą temat użycia umiejętności miękkich w praktyce.


[OBRAZEK]
Rys. 1: Proces wytwarzania oprogramowania. [1]


Zaczęło się od myśli “chcę wytworzyć aplikację, która pomoże komuś w kuchni podczas przygotowania posiłków”. Na tym etapie nie było jeszcze mowy o tym, czego potrzebowaliby inni użytkownicy. Po rozmowach z opiekunem pracy zaczął kreować się model aplikacji webowej i mobilnej, który skierowany byłby do grupy studentów. A jak wiadomo, nie zawsze student ma czas bądź środki, by ugotować coś sycącego i bogatego w składniki. Dlatego też, krok po kroku, zaczęto przygotowywać program pomagający studentom w kuchni.


[OBRAZEK]
Rys. 2: Mem przedstawiający typową piramidę żywieniową studenta. [2]


W pierwszym kroku zrobiono przegląd stron internetowych oraz aplikacji mobilnych o podobnej tematyce. W ten sposób określono wady i zalety znalezionych zasobów, m. in. pojawiła się tu aplikacja mobilna Listonic oraz strona internetowa mojeGotowanie.pl. W kolejnym kroku przeprowadzono anonimową ankietę dotyczącą kulinarnej aplikacji marzeń. Odpowiedziało na nią 50 osób w wieku ok. 24-25 lat. Sama ankieta umożliwiła użytkownikom odpowiedzieć na pytania podzielone na cztery kategorie: interfejs użytkownika, przetwarzanie składników przez aplikację, przepisy użytkownika oraz wkład użytkownika. Po zebraniu informacji można było dowiedzieć się, że potencjalni użytkownicy chcieliby program o interfejsie w ciepłych barwach, gdzie znaleźliby w większości łatwe przepisy, ale o zróżnicowanym poziomie trudności, z możliwością przechowywaniu składników, na podstawie których można by było np. wybierać przepis.


[OBRAZEK]
Rys. 3: Odpowiedzi na pytania z kategorii “Interfejs użytkownika”.

[OBRAZEK]
Rys. 4: Odpowiedzi na pytania z kategorii “Przetwarzanie składników przez aplikację”.

[OBRAZEK]
Rys. 5: Odpowiedzi na pytania z kategorii “Przepisy użytkownika”.

[OBRAZEK]
Rys. 6 Odpowiedzi na pytania z kategorii “Wkład użytkownika”.


Ostatnim krokiem okazał się wybór metodologii w celu zaplanowania pracy nad programem oraz podzielenia projektu na mniejsze fragmenty. Aby wybór był przemyślany, przejrzano wiele źródeł związanych z metodologiami zwinnymi, jak i klasycznymi. Dla tej aplikacji webowej oraz mobilnej została wybrana metodologia zwinna Scrumban, łącząca zarówno metodologię Scrum jak i Kanban. Dzięki niej szybko można było zauważyć postęp tworzenia projektu, a także skupić się na konkretnym zadaniu. Dodatkowo taka metodologia nie narzuca estymacji zadań (czasu oraz ważności zadań), co pozwala programiście na większą swobodę oraz wpływa na lepszą wydajność projektowania.


[OBRAZEK]
Rys. 7: Tablica trello przedstawiająca funkcjonalności oraz zadania do wykonania aplikacji webowej oraz mobilnej.


Do wykonania programu został użyty framework Blazor. Został on wybrany ze względu na możliwość opracowania interfejsu użytkownika, jak i serwera, w oparciu o język C# i biblioteki platformy .NET. W pewnych przypadkach może zostać uzupełniony o język JavaScript. Dodatkowo, sam framework korzysta ze standardu WebAssembly, który jest wspierany przez większość przeglądarek na całym świecie (również mobilnych). Standard ten pozwala na skompilowanie różnych języków programowania do formatu binarnego i obsłużenia ich w przeglądarce internetowej. Aby połączyć się z bazą danych, użyto biblioteki NPoco (pochodna biblioteki PetaPoco), dzięki której możliwy był dostęp do danych takich jak: przepisy, użytkownicy czy składniki.


[OBRAZEK]
Rys. 8: Logo platformy Blazor. [3]


Krok po kroku zaczęła powstawać aplikacja webowa oraz mobilna, która została nazwana aplikacją CookTool. Oferuje wiele przydatnych narzędzi, a kilka z nich to:

  1. Dodawanie przepisów do ulubionych.
  2. Dodawanie składników, znajdujących się w kuchni użytkownika, w sposób manualny i poprzez kod kreskowy.
  3. Losowanie przepisów na podstawie posiadanych składników.
  4. Tworzenie tygodniowego jadłospisu.
  5. Przeliczanie produktów na inne jednostki miary (np. z gramów na szklanki).
  6. Zmiana proporcji składników względem porcji.

[OBRAZEK]
Rys. 9: Dodawanie składników przy pomocy kodu kreskowego.

[OBRAZEK]
Rys. 10: Przeliczanie produktów na inne jednostki miary.

Dzięki użyciu umiejętności miękkich podczas procesu wytwarzania udało się lepiej zapoznać z potrzebami użytkowników oraz zaplanować cały proces implementacyjny, a tym samym zyskać na samej jakości oprogramowania. Sama aplikacja CookTool jest przystosowana do dalszego rozwoju. Pojawiło się też kilka pomysłów od użytkowników, które pozwoliłyby jeszcze bardziej ulepszyć aplikację. Do takich pomysłów należą:

  • przepis w formacie pdf do wydrukowania na kartkę
  • makroskładniki zawarte w przepisie
  • wybór przepisów względem trybu życia użytkownika oraz kaloryczności
  • społeczność pozwalająca oceniać i komentować przepisy

I wiele, wiele innych...Kod programu można podejrzeć na naszym githubie.

Źródła:

[1] http://www.sumitsshevtekar.com/sdlc/

[2] https://me.me/i/college-student-food-pyramid-2570894

[3] https://en.wikipedia.org/wiki/Blazor

Data zakończenia: 15.2.2021

Autorzy

Izabela Wiatrowska