Awesome
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). <br>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.</br>
In the folder "Showroom", you can find some screenshots from the app.
Showroom
Screenshots | Screenshots |
---|---|
Login page | Setting Preferences |
Creating food and rate it | List of your food |
QR code generator | QR code scanner |
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
{
"$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
{
"$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
{
"$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": []
}
]
}