
An Android application for writing down all sorts of cooking
notes or original recipes and sharing them with friends
View Demo
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".
- Kotlin
- Spring Boot
- Hibernate
- SQLite
- Hilt
- Retrofit
- Kotlin Coroutines
- Android View Binding
- Android Data Binding
- Espresso
To get a local copy up and running on Windows follow these simple example steps.
- Android Studio to run the mobile app (https://developer.android.com/studio)
- IntelliJ IDEA to run the server app (https://www.jetbrains.com/idea/download)
- Git for Windows to run Keycloak shell script (https://gitforwindows.org/)
- Clone the repository
git clone https://github.com/bpedryc/Foodity.git
- Download Keycloak server (WildFly distribution) from the official website https://www.keycloak.org/downloads
- Place the contents of downloaded "keycloak-..." directory to "*cloned repository path*/FoodityKeycloak/"
- In IntelliJ select File>Open, then select directory "*cloned repository path*/FoodityServer"
- On C:\ drive create a new directory called "uploads" (C:\uploads)
- In Android Studio select File>Open, then select directory "*cloned repository path*/Foodity" (the selected path should look like "....../Foodity/Foodity")
- 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)
- First run Keycloak with the prepared bash script "*cloned repository path*/FoodityKeycloak/run_keycloak.sh"
sh run_keycloak.sh
- 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)"
- Lastly run the mobile application in Android Studio - the configuration should be generated automatically
- 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
- Click "Sign Up" and wait for feedback about your account being created
- On the login page enter created account username and password, then sign in and try out the app! :)
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)
Follow your friends' accounts, watch their activity and browse through their notes collection.
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!
Bartłomiej Pedryc - [email protected]