Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot + Angular + PostgreSQL


English version

OpenFoodStash - open internet application for the management of food supplies for household

The application was made to solve the problem of efficient management of the food we have and to eliminate food waste. The prototype was developed as an engineering project: FoodStash.

Capabilities

  • Creation of a personal account
  • Creation of Stash and Storage: virtual spaces for food storage and management
  • Efficient browsing of food in your possession
  • End-of-term food warnings
  • Simple food expiration date prediction
  • Ability to share space between users
  • History of food consumed/added/thrown away
  • Generation of statistics and analysis of user behavior
  • Multilingualism (english and polish language)

Development possibilities

  • Use of barcode scanner
  • Advanced food filtering
  • Additional parameters in statistics
  • Implementation of elements for user diet analysis

Requirements and commissioning

Required components

  • Node environment including npm
  • Adoptium Java 17 with Maven OR Docker
  • PostgreSQL database

Configuration files

The configuration in the following layers must be adjusted in order to work properly

Backend

  • /backend/src/main/resources/application.properties

    • database information
    • set frontend URL
    • mailing service SMTP settings
  • /backend/src/main/java/com/bkopysc/foodstash/security/SecurityConfig.java

    • CORS settings
    • request and authorization settings
  • /backend/src/main/java/com/bkopysc/foodstash/security/WebConfig.java

    • allowed requests settings
    • allowed Origins
  • /backend/src/main/java/com/bkopysc/foodstash/security/SecurityUtils.java

    • Token JWT settings

Frontend

  • /frontend/foodstash-app/src/app/core /config.ts
    • set API backend URL

Backend Startup

Java Maven

Two options:

  1. Making a build manually:
mvnclean install
java -jar <jar file name>
  1. Manually run
mvnspring-boot:run
mvnwspring-boot:run

Docker

Two options:

  1. Using Dockerfile
docker build -t foodstash_image:1 -f Dockerfile .
docker run -it --rm --name foodstashApp -p 8080:8080 foodstash_image:1 java -jar /opt/foodstashApi/foodstashApi.jar
  1. Using .sh scripts (Linux) Build:
sh ./backend/Docker-build.sh

Run:

sh ./backend/Docker-run.sh

API URL

The backend should be available by default at:

http://localhost:8080/api/

Launching the Frontend

ng serve ./frontend/foodstash-app/

URL

The frontend should be available by default at:

http://localhost:4200/

Notes

10.03.2023

Closed testing of public version of FoodStash Using:

  • Supabase: database - PostgreSQL
  • Heroku: backend hosting - Spring
  • Firebase: frontend hosting - Angular

Polska wersja

OpenFoodStash - otwarta aplikacja internetowa do zarządzania zapasami żywności dla gospodarstwa domowego

Aplikacja stara się rozwiązać problem efektywnego zarządzania posiadaną żywnością oraz zniwelować zjawisko marnowania żywności. Pierwowzór powstał jako projekt inżynierski: FoodStash.

Oferowane Możliwości

  • Tworzenie osobistego konta
  • Tworzenie Schowków i Składzików: wirtualnych przestrzeni do przechowywania i zarządzania żywnością
  • Efektywne przeglądanie posiadanej żywności
  • Ostrzeżenia dotyczące kończącego się terminu żywności
  • Prosta predykcja terminu żywności
  • Możliwość współdzielenia przestrzeni pomiędzy użytkownikami
  • Historia spożytej/dodanej/wyrzuconej żywności
  • Generowanie statystyk i analiza zachowań użytkownika
  • Wielojęzyczność (wspierany język angielski i polski)

Możliwości rozwoju

  • Wykorzystanie skanera kodów kreskowych
  • Zaawansowane filtrowanie żywności
  • Dodatkowe parametry w statystykach
  • Wdrożenie elementów do analizy diety użytkownika

Wymagania i uruchomienie

Wymagane elementy

  • Środowisko node wraz z npm
  • Adoptium Java 17 z Mavenem LUB Docker
  • Baza danych PostgreSQL

Konfiguracyjne pliki

W celu poprawnego działania należy dostosować konfigurację w poniższych warstwach.

Backend

  • /backend/src/main/resources/application.properties

    • informacje o bazie danych
    • frontend url
    • ustawieniach serwisu mailingowego SMTP
  • /backend/src/main/java/com/bkopysc/foodstash/security/SecurityConfig.java

    • ustawienia CORS
    • ustawienia autoryzacji request
  • /backend/src/main/java/com/bkopysc/foodstash/security/WebConfig.java

    • dozwolone metody zapytań
    • dozwolone Origins
  • /backend/src/main/java/com/bkopysc/foodstash/security/SecurityUtils.java

    • ustawienia tokenu JWT

Frontend

  • /frontend/foodstash-app/src/app/core /config.ts
    • ustawienie adresu API backend

Uruchomienie Backend

Java Maven

2 możliwości:

  1. Ręczne dokonanie buildu:
mvnclean install
java -jar <jar file name>
  1. Ręczne uruchomienie
mvnspring-boot:run
mvnwspring-boot:run

Docker

2 możliwości:

  1. Wykorzystanie Dockerfile
docker build -t foodstash_image:1 -f Dockerfile .
docker run -it --rm --name foodstashApp -p 8080:8080 foodstash_image:1 java -jar /opt/foodstashApi/foodstashApi.jar
  1. Użycie skryptów .sh (Linux) Build:
sh ./backend/Docker-build.sh

Run:

sh ./backend/Docker-run.sh

API URL

Backend powinien być dostępny domyślnie pod adresem:

http://localhost:8080/api/

Uruchomienie Frontend

ng serve ./frontend/foodstash-app/

URL

Frontend powinien być dostępny domyślnie pod adresem:

http://localhost:4200/

Aktualności

10.03.2023

Zamknięte testy publicznej wersji FoodStash Wdrożenie na:

  • Supabase: baza danych - PostgreSQL
  • Heroku: hosting backend - Spring
  • Firebase: hosting frontend - Angular

Screenshots

  • Home Screen / Ekran Startowy

ekan_znaczniki

  • Login Panel / Panel Logowania

logowanie_error

  • Signup Panel / Panel Rejestracji

rejestracja_znaczniki

  • Password Reset / Resetowanie Hasła

password_reset

  • Dashboard

dashboard

  • Stashes / Schowki

schowek_skrykti_dod

  • Stash Share / Udostępnianie Schowka

schowek_share

  • Selected Storage / Wybrany Składzik

skladzik_aktualne

  • Statistics / Statystyki

stats

  • Mobile View / Widok Mobilny

mobile

About

Open source project of FoodStash application (Fullstack management system)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages