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.
Screenshots | Screenshots |
---|---|
Login page | Setting Preferences |
Creating food and rate it | List of your food |
QR code generator | QR code scanner |
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": []
}
]
}