Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/LeBraveLittleToaster/KnowYourFood


https://github.com/LeBraveLittleToaster/KnowYourFood

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# KnowYourFood - build with flutter and appwrite

The app is a prototype for a restaurant food statement app.
A user can provide their preference regarding some predefined topics and compare them to the food he/she ordered. A preference can be e.g.: Is it important that the food is from regional farmers (<50km)? (low/mid/high).
To make that process easy, he/she can scan a QR code, that can be generated by the app (and printed on a menu) by the restaurant.
This QR code wraps the foods database ID, which then is requested by the app. The user receives a overview about their preference compared to the restaurants rating. Additionally he can read the, from the restaurant provided, statements.

In the folder "Showroom", you can find some screenshots from the app.

## Showroom

Screenshots | Screenshots
:--:|:---:
Login page | Setting Preferences
![Login page](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/Login.jpg) | ![Setting Preferences](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/Choose_Preference_Openend.jpg)
Creating food and rate it | List of your food
![Creating food and rate it](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/Create_Food_With_Ratings.jpg) | ![List of your food](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/List_Of_Your_Food.jpg)
QR code generator | QR code scanner
![QR code generator](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/On_Test_Food_Clicked.jpg) | ![QR code scanner](https://github.com/LeBraveLittleToaster/KnowYourFood/blob/main/Showroom/QR_Code_Scanning.jpg)

## Database Settings

Unfortunatly I have no server running, but you can setup your instance with these collections and changing the IP in the MainApp part :)

These database settings are used in the appwrite instance to run it. Neither functions nor webhooks were used that should be set up.

> Food Collection
```jsonc
{
"$id": "60cf26aa68cd7",
"$permissions": {
"read": [
"*"
],
"write": [
"*"
]
},
"name": "Food",
"dateCreated": 1624188586,
"dateUpdated": 1624547082,
"rules": [
{
"$id": "60cf26ec930a2",
"$collection": "rules",
"type": "text",
"key": "foodId",
"label": "Food UUID",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf26ec98598",
"$collection": "rules",
"type": "text",
"key": "name",
"label": "Food Name",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf26ec9d7f7",
"$collection": "rules",
"type": "wildcard",
"key": "prefs",
"label": "Preference Statements",
"default": "",
"array": true,
"required": true,
"list": []
},
{
"$id": "60cf3b2b86a40",
"$collection": "rules",
"type": "text",
"key": "description",
"label": "Description",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf3b2b8c7dc",
"$collection": "rules",
"type": "text",
"key": "brandName",
"label": "Brand Name",
"default": "",
"array": false,
"required": true,
"list": []
}
]
}
```
> Preference Collection
```jsonc
{
"$id": "60cf38bba8397",
"$permissions": {
"read": [
"*"
],
"write": []
},
"name": "Preferences",
"dateCreated": 1624193211,
"dateUpdated": 1624202772,
"rules": [
{
"$id": "60cf38e66b53d",
"$collection": "rules",
"type": "text",
"key": "name",
"label": "Name",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf38e67138d",
"$collection": "rules",
"type": "text",
"key": "prefId",
"label": "pref UUID",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf38e677352",
"$collection": "rules",
"type": "text",
"key": "description",
"label": "Description",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf5e14b3f0a",
"$collection": "rules",
"type": "text",
"key": "category",
"label": "Category",
"default": "",
"array": false,
"required": true,
"list": []
}
]
}
```

> PreferenceRating Collection
```jsonc
{
"$id": "60cf383f29bac",
"$permissions": {
"read": [
"*"
],
"write": [
"*"
]
},
"name": "PreferenceRatings",
"dateCreated": 1624193087,
"dateUpdated": 1624279822,
"rules": [
{
"$id": "60cf388035da5",
"$collection": "rules",
"type": "text",
"key": "prefId",
"label": "Pref UUID",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf38803c7cf",
"$collection": "rules",
"type": "text",
"key": "userId",
"label": "user UUID",
"default": "",
"array": false,
"required": true,
"list": []
},
{
"$id": "60cf388041baf",
"$collection": "rules",
"type": "numeric",
"key": "rating",
"label": "Rating",
"default": 0,
"array": false,
"required": true,
"list": []
}
]
}
```