Celem projektu było stworzenie aplikacji kulinarnej, czyli narzędzia dla miłośników gotowania, które oferuje wiele funkcji ułatwiających organizację i przygotowywanie posiłków. Główne funkcje aplikacji to między innymi dodawanie przepisów kulinarnych, artykułów i tworzenie planów posiłków na cały tydzień, również w celu umożliwienia użytkownikom odkrywania nowych pomysłów na potrawy oraz stworzenie społeczności kulinarnej. Użytkownicy mogą tworzyć i publikować swoje przepisy dodając zdjęcia, szczegółowe instrukcje, listy składników oraz wskazówki dotyczące przygotowania potrawy. Przepisy mogą być kategoryzowane według rodzaju dania oraz kuchni poprzez tagi. Program umożliwia również dodawanie artykułów kulinarnych na temat kuchni, technik gotowania, porad dietetycznych i innych tematów związanych z gastronomią. Komunikacja między użytkownikami polega na komentarzach umieszczanych pod danym wpisem. Umożliwia to wymianę doświadczeń i rekomendację. Zaawansowana funkcja wyszukiwania, pozwala na filtrowanie przepisów według różnych kryteriów, takich jak składniki, kuchnia, dieta czy nazwa przepisu. Aplikacja posiada funkcję organizacji planów posiłków na 7 dni, wybierając tydzień oraz dokładną datę, podczas przeglądania przepisu. Bardziej pobocznymi funkcjami są: dodawanie przepisów do ulubionych przez użytkownika i przeglądanie listy najpopularniejszych oraz najczęściej oglądanych przepisów, co pomaga w znalezieniu inspiracji i trendów kulinarnych
Front-end:
- react-hot-toast - obsługa pop-upów
- Emotion- react – pakiet z stylami
- Mui-material – biblioteka z komponentami
- framer-motion – biblioteka z płynnymi przejściami dla komponentów
- react-icons - zbiór ikon
- react-router-dom – routing w aplikacji
- react-slick - obsługa karuzel obrazkowych
- react-spinners - zbiór animacji używanych do ładowania
- Axios – biblioteka umożliwiająca zapytania HTTP z poziomu aplikacji Node.js
- React-datepicker – biblioteka umożliwiająca korzystanie z kalendarza jako komponent
- ESlint - narzędzie do statycznej analizy kodu
- Autoprefixer – dodaje prefiksy dostawcy w celu polepszenia kompatybilności na różnych przeglądarkach
Back-end:
- Cors - umożliwia współdzielenie zasobów z serwerem na innej domenie
- Nodemon – serwer testowy z automatycznym odświeżaniem
- Pg – biblioteka do obsługi połączenia i zapytań związanych z bazą danych
- Dotenv – moduł przechowujący dane wrażliwe jak hasła dostępu do bazy
- express-session – biblioteka do obsługi sesji użytkownika
- Rimraf – biblioteka użyta do obsługi polecenia rm – rf dla dockera w celu ponownego kompilowania typescrypta i usuwania starej wersji
- Bcrypt – biblioteka do szyfrowania haseł z użyciem zaawanowanych metod szyfrujących
- body-parser – biblioteka używana do pozyskania informacji z zapytania HTTP