Spring Boot + Angular + PostgreSQL
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.
- 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)
- Use of barcode scanner
- Advanced food filtering
- Additional parameters in statistics
- Implementation of elements for user diet analysis
- Node environment including npm
- Adoptium Java 17 with Maven OR Docker
- PostgreSQL database
The configuration in the following layers must be adjusted in order to work properly
-
/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/foodstash-app/src/app/core
/config.ts
- set API backend URL
Two options:
- Making a build manually:
mvnclean install
java -jar <jar file name>
- Manually run
mvnspring-boot:run
mvnwspring-boot:run
Two options:
- 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
- Using .sh scripts (Linux) Build:
sh ./backend/Docker-build.sh
Run:
sh ./backend/Docker-run.sh
The backend should be available by default at:
http://localhost:8080/api/
ng serve ./frontend/foodstash-app/
The frontend should be available by default at:
http://localhost:4200/
10.03.2023
Closed testing of public version of FoodStash Using:
- Supabase: database - PostgreSQL
- Heroku: backend hosting - Spring
- Firebase: frontend hosting - Angular
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.
- 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)
- Wykorzystanie skanera kodów kreskowych
- Zaawansowane filtrowanie żywności
- Dodatkowe parametry w statystykach
- Wdrożenie elementów do analizy diety użytkownika
- Środowisko node wraz z npm
- Adoptium Java 17 z Mavenem LUB Docker
- Baza danych PostgreSQL
W celu poprawnego działania należy dostosować konfigurację w poniższych warstwach.
-
/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/foodstash-app/src/app/core
/config.ts
- ustawienie adresu API backend
2 możliwości:
- Ręczne dokonanie buildu:
mvnclean install
java -jar <jar file name>
- Ręczne uruchomienie
mvnspring-boot:run
mvnwspring-boot:run
2 możliwości:
- 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
- Użycie skryptów .sh (Linux) Build:
sh ./backend/Docker-build.sh
Run:
sh ./backend/Docker-run.sh
Backend powinien być dostępny domyślnie pod adresem:
http://localhost:8080/api/
ng serve ./frontend/foodstash-app/
Frontend powinien być dostępny domyślnie pod adresem:
http://localhost:4200/
10.03.2023
Zamknięte testy publicznej wersji FoodStash Wdrożenie na:
- Supabase: baza danych - PostgreSQL
- Heroku: hosting backend - Spring
- Firebase: hosting frontend - Angular
- Home Screen / Ekran Startowy
- Login Panel / Panel Logowania
- Signup Panel / Panel Rejestracji
- Password Reset / Resetowanie Hasła
- Dashboard
- Stashes / Schowki
- Stash Share / Udostępnianie Schowka
- Selected Storage / Wybrany Składzik
- Statistics / Statystyki
- Mobile View / Widok Mobilny









