GDSC-SWU / 2024-Plantry-SolutionChallenge

Convenient Food Management

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2024 Google Solution Challenge - Plantry Banner

πŸ’‘ Contents

  1. Problem
  2. About Plantry
  3. Our SDGs Goal
  4. Technology Stack
  5. Demo Video
  6. Design
  7. How to Start
  8. How to Run on Local
  9. Contributors

πŸ“Œ Problem

According to the United Nations World Food Programme(WFP), around 1.3 billion tons of food is wasted globally every year without being used as food. That's enough to feed nearly 800 million people who suffer from hunger.

Wasted food is a major contributor to greenhouse gases, with methane emitted as it decays in landfills having 80 times the greenhouse effect of carbon dioxide. According to the Food and Agriculture Organization of the United Nations(FAO), greenhouse gases from waste in the production and consumption of food account for 8-10% of global greenhouse gas emissions. The life cycle of food already emits a lot of carbon when it's produced, but when it's disposed of, additional carbon is released.

Consumers buy more food than they can actually eat, or store food incorrectly, resulting in food being thrown away before it is consumed. Not only does consumer overbuying create waste, it also contributes to producer overproduction.

Food is an essential part of human life, so it is essential that consumers consume it responsibly.


✨ About Plantry

To solve this problem, Plantry focuses on the consumer as one of the many contributors to the problem.

With Plantry, consumers can manage food inventory and record how the food is consumed (discarded, ingested, shared).

The data is visualized in graphs to help consumers be more aware of food waste, and to help them buy the right amount of food when they make future purchases, taking into account their previous consumption. It also helps consumers learn how to store food properly to avoid throwing it away when it's still edible, and encourages them to use use-by dates instead of sell-by dates to ensure that food is safe to consume for a longer period of time.

Reminder notifications are provided for food items that are nearing their expiration date to help consumers eat food within the expiration date.


πŸš€ Our SDGs Goal

Plantry SDGs_Goal

Improving food consumption habits among consumers can reduce greenhouse gas emissions from food waste by reducing unnecessary food waste and preventing overproduction by producers.
Proper storage and utilization of food can also help maintain a healthy lifestyle.


πŸ›  Technology Stack

Plantry Tech Stack


πŸ“Ή Demo Video

Plantry Demo Video Link


✍️ Design

readme-mockup


Plantry_all_feature gif

πŸ“± How to Start

1. Download APK file

APK Download Link

2. Install APK and Run the app


πŸ“² How to Run on Local

1. Clone this Repository

git clone https://github.com/GDSC-SWU/2024-Plantry-SolutionChallenge.git

2. Set your Environment variables

Use this as a reference to set environment variables

https://developer.android.com/tools/variables

3. Open Android Source Code on Android Studio

Giraffe Version or higher recommended
Android Studio Giraffe Download Link

4. Download Emulator

Pixel XL API 34 recommended

5. Set Api Base url in local properties file

base.url="http://34.47.86.239:8080"
ai_base.url="http://34.47.86.239:8000"

6. Store google-service.json

Store JSON file google-service.json containing the key on /Android/app

7. Run the app

press the green start button
Android Studio start button image

8. Send me your sha 1 key

If you can't log in, please do the process below:)

1. Enter `gradlew signalingReport` in the terminal window.
2. Press `ctrl + enter` or `command + enter` to execute the command.
3. please send your sha1 key `yearim1226@naver.com`.
4. After receiving a reply, please try logging in again.

+) How to Run Server on Local

The server is deployed, but if you want to run it on local, do the following:

1. Create application.properties file on server/plantry/src/main/resources

# DATABASE

SPRING_DATASOURCE_URL={YOUR_MYSQL_DATABASE_URL}
SPRING_DATASOURCE_USERNAME={YOUR_MYSQL_DATABASE_USERNAME}
SPRING_DATASOURCE_PASSWORD={YOUR_MYSQL_DATABASE_PASSWORD}


# Redis

SPRING_DATA_REDIS_HOST={YOUR_REDIS_DATABASE_HOST}
SPRING_DATA_REDIS_PORT={YOUR_REDIS_DATABASE_PORT}
SPRING_DATA_REDIS_PASSWORD={YOUR_REDIS_DATABASE_PASSWORD}


# Google OAuth

GOOGLE_OAUTH_CLIENT_ID={YOUR_GOOGLE_OAUTH_CLIENT_ID}


# JWT

JWT_SECRET_KEY=some-random-secret-key-plantry-9876
JWT_ISSUER=gdsc


# Server profile

PROFILE=local

2. Store the service account JSON file firebase_account_file.json containing the key on server/plantry/src/main/resources/firebase

Refer to the docs
Firebase DOCS

3. Run the server


πŸ‘©πŸ»β€πŸ’» Contributors

Plantry Yusun Choi Plantry Yerim Lee Plantry Yehan Shin Plantry Eunji Jung
Yusun Choi Yerim Lee Yehan Shin Eunji Jung
PM
Server Developer
Client Developer UX/UI Designer AI/ML Developer

About

Convenient Food Management

License:MIT License


Languages

Language:Kotlin 52.2%Language:Java 47.4%Language:Python 0.3%Language:Dockerfile 0.1%