Skip to content

bpedryc/Foodity

Repository files navigation

LinkedIn


Logo

Foodity

An Android application for writing down all sorts of cooking
notes or original recipes and sharing them with friends

View Demo

About The Project

The project provides its users with flexible tools for defining cooking notes - they can be anything: recipes, tea brewing instructions, favourite snack, fancy knife collection - whatever your heart desires! Notes are grouped into categories. The application lets you browse through other users' notes. You can follow other users to see their latest activity. Additionaly users are provided with built-in kitchen tools like a timer or a unit converter to help with cooking.

The project has been implemented as a part of the engineering thesis "Foodity - A Social Kitchen Assistant".

(back to top)

Built With

(back to top)

Getting started

To get a local copy up and running on Windows follow these simple example steps.

Prerequisites

  1. Android Studio to run the mobile app (https://developer.android.com/studio)
  2. IntelliJ IDEA to run the server app (https://www.jetbrains.com/idea/download)
  3. Git for Windows to run Keycloak shell script (https://gitforwindows.org/)

Installation

  1. Clone the repository
git clone https://github.com/bpedryc/Foodity.git
  1. Download Keycloak server (WildFly distribution) from the official website https://www.keycloak.org/downloads
  2. Place the contents of downloaded "keycloak-..." directory to "*cloned repository path*/FoodityKeycloak/"
  3. In IntelliJ select File>Open, then select directory "*cloned repository path*/FoodityServer"
  4. On C:\ drive create a new directory called "uploads" (C:\uploads)
  5. In Android Studio select File>Open, then select directory "*cloned repository path*/Foodity" (the selected path should look like "....../Foodity/Foodity")
  6. Navigate to the file: assets>config.properties. In that file replace server_url value with a local IP address (with port 8080) of the machine that you will be running the server on. (The Android emulator or device needs to be in the same network as the server machine)

Running

  1. First run Keycloak with the prepared bash script "*cloned repository path*/FoodityKeycloak/run_keycloak.sh"
sh run_keycloak.sh
  1. Then in IntelliJ run the server - navigate to the class "FoodityServerApplication" (you can double-press shift key to search for a specific class in IntelliJ) and click on the small green button to the left of the function "main(args: Array)"
  2. Lastly run the mobile application in Android Studio - the configuration should be generated automatically
  3. In the application click "Sign Up", enter any username, email and password for your user (email doesn't have to be real), for example: Username: abc Email: [email protected] Password: abc
  4. Click "Sign Up" and wait for feedback about your account being created
  5. On the login page enter created account username and password, then sign in and try out the app! :)

Issues

If an error occurs when starting either the server or the mobile app:

  • In IntelliJ, set Project SDK to version 11 in project settings (File>Project Structure)
  • In Android Studio, set Gradle JDK to version 11 (File>Settings>Build,Execution,Deployment>Build Tools>Gradle)

(back to top)

Demo

showcase_edit

Edit your cooking notes in any way you want. A cooking note can be made out of three types of elements: text, list and image. You can upload any image from your device's memory.


























showcase_browse

Follow your friends' accounts, watch their activity and browse through their notes collection.


























showcase_tools

Use built-in tools for converting different types of units from all over the world. Spare yourself some kitchen tools and use a scale only!


























(back to top)

Contact

Bartłomiej Pedryc - [email protected]

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages