{"id":18942570,"url":"https://github.com/asis2016/gesund","last_synced_at":"2026-01-28T09:37:10.854Z","repository":{"id":45709311,"uuid":"514052631","full_name":"asis2016/gesund","owner":"asis2016","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-20T08:45:35.000Z","size":22376,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T17:41:03.074Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asis2016.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-14T21:28:39.000Z","updated_at":"2022-08-20T07:51:49.000Z","dependencies_parsed_at":"2022-09-06T04:01:33.561Z","dependency_job_id":null,"html_url":"https://github.com/asis2016/gesund","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asis2016/gesund","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asis2016%2Fgesund","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asis2016%2Fgesund/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asis2016%2Fgesund/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asis2016%2Fgesund/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asis2016","download_url":"https://codeload.github.com/asis2016/gesund/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asis2016%2Fgesund/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28843954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T12:33:27.956Z","updated_at":"2026-01-28T09:37:10.832Z","avatar_url":"https://github.com/asis2016.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\nThe Gesund App (hereinafter \"APP\") is a \u003ci\u003eSelf-management Gamification Web Application\u003c/i\u003e developed as a master thesis\nproject at the\nUniversity of Koblenz-Landau.\n\nThe thesis is titled 'Introducing Gamification to overcome employee's health-related risks in work from home (WfH)\nsettings'. In short, the intervention is trying to find out if the APP is helpful for employees to overcome\nhealth-related risks in their remote work setting.\n\n## Table of contents (WIP)\n\n- [Project organization](#)\n- [Tech stack](#)\n- [Installation](#)\n    - [GIT clone](#)\n    - [Python VENV](#)\n    - [MySQL Server](#)\n\n- [UML Use case diagram](#uml-use-case-diagram)\n- [Database](#database)\n    - [Table overview](#table-overview)\n    - [Table details](#table-details)\n    - [Dummy data setup](#dummy-data-setup)\n- [Tests](#tests)\n- [Deployment](#deployments)\n- [End-user documentation](#end-user-documentation)\n- [Feedback](#feedback)\n- [Contributing](#contributing)\n- \"Legal\"\n    - [Disclaimer](#disclaimer)\n    - [License](#license)\n    - [Privacy Policy](#privacy-policy)\n- [References](#references)\n- [Images, vectors, or icons](#images-vectors-or-icons)\n\n\n## Project organization\n\n## Tech stack\n\n1. [Python 3.8.10](https://www.python.org/downloads/release/python-3810/)\n2. [Django 4.0.6](https://docs.djangoproject.com/en/4.0/releases/4.0.6/)\n3. [MySQL 8.0.29](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-29.html)\n4. [Shell Scripts](https://www.gnu.org/software/bash/manual/html_node/Shell-Scripts.html)\n5. [Bootstrap v5.2](https://getbootstrap.com/docs/5.2/getting-started/download/)\n6. [jQuery 3.6.0](https://blog.jquery.com/2021/03/02/jquery-3-6-0-released/)\n\n## Installation\n\n**GIT Clone from Github**\n\nFirst step is to make a directory.\n\n```shell\n$ mkdir gesund_project\n$ cd gesund_project\n```\n\nThen, clone the [Gesund App repository](https://github.com/asis2016/gesund) from the GitHub.\n\n```shell\ngesund_project $ git clone https://github.com/asis2016/gesund.git .\ngesund_project $ cd gesund\n```\n\n**Python VENV**\n\nInstall and activate [Python virtual environments](https://docs.python.org/3/tutorial/venv.html). And activate it.\n\n```shell\ngesund_project/gesund $ python3 -m venv venv\ngesund_project/gesund $ source venv/bin/activate\n```\n\nOnce it has been activated, install `requirements.txt`.\n\n```shell\n(venv) gesund_project/gesund $ pip install -r requirements.txt\n```\n\n### MySQL database\n\nThe Gesund App requires MySQL database. Hence, you should create:\n\n1. MySQL Database: `gesund`\n2. MySQL username: `your_username`\n3. MySQL password: `your_password`\n\n#### phpMyAdmin\n\ntodo: step-by-step phpMyAdmin `gesund` setup\n\n### `.env` file\n\nThe project depends on .env file.\n\n```shell\n(venv) gesund_project/gesund $ touch .env\n```\n\n```\n# LOCAL\nENVIRONMENT='local'\nREST_API_URL='localhost:8000/api/v1'\nREST_API_BEARER_TOKEN=''\nDB_DATABASE='gesund'\nDB_USER='your_mysql_username'\nDB_PASS='your_mysql_password'\nALLOWED_HOSTS_ENV='localhost 127.0.0.1 *'\nCORS_ORIGIN_WHITELIST_ENV='http://localhost:8000 http://127.0.0.1:8000'\n\n# EMAIL\nEMAIL_HOST='your_email_host'\nEMAIL_PORT=''\nEMAIL_HOST_USER='noreply@your_email_host'\nEMAIL_HOST_PASSWORD=''\nDEFAULT_FROM_EMAIL='noreply@your_email_host'\nRECEIVE_EMAIL_AT='info@your_email_host'\n```\n\n**Start migration process**\n\n```shell\n(venv) gesund_project/gesund $ python manage.py showmigrations\n(venv) gesund_project/gesund $ python manage.py makemigrations\n(venv) gesund_project/gesund $ python manage.py migrate\n```\n\n**Create Django superuser**\n\n```shell\n(venv) gesund_project/gesund $ python manage.py createsuperuser\n\nUsername: djangoadmin\nEmail address: admin@example.com\nPassword: dj4n604dm1n\n```\n\n**Runserver**\n\n```shell\n(venv) gesund_project/gesund $ python manage.py runserver 0.0.0.0:8000\n```\n\nYour development server must be running at [http://0.0.0.0:8000/](http://0.0.0.0:8000/).\n\n**Validate admin page**\n\nValidate the admin page by going to [http://0.0.0.0:8000/admin](http://0.0.0.0:8000/admin). And provide the\nfollowing credentials:\n\n`username`: `djangoadmin`\n\n`password`: `dj4n604dm1n`\n\n**Update bearer token**\n\nBearer token is used as a authentication mechanism for REST API. Now, update your `.env`:\n\n```shell\n(venv) gesund_project/gesund $ printf '%s' 'djangoadmin:dj4n604dm1n' | base64\n```\n\n```\nZGphbmdvYWRtaW46ZGo0bjYwNGRtMW4=\n```\n\n```shell\n(venv) gesund_project/gesund $ vi .env\n\n---\nREST_API_URL='localhost:8000/api/v1'\nREST_API_BEARER_TOKEN='ZGphbmdvYWRtaW46ZGo0bjYwNGRtMW4=' #new\n---\n```\n\n**Is your REST API working?**\n\nLet's check if it is working:\n\n```shell\ncurl --location --request GET 'http://127.0.0.1:8000/api/v1/echo/' \\\n--header 'Authorization: Basic ZGphbmdvYWRtaW46ZGo0bjYwNGRtMW4='\n```\n\nYou should receive response:\n\n```\n{\"message\":\"Hello, world!\"}\n```\n\n### site.webmanifest\n\nChange `start_url` to a relevant URL.\n\n```shell\n{\n  \"name\": \"Gesund APP\",\n  \"short_name\": \"GA\",\n  \"start_url\": \"http://192.168.2.110:8000/\",\n  ....\n}\n```\n\n## Or, use **Docker**\n\n```shell\n$ mkdir gesund_docker\n$ cd gesund_docker\ngesund_docker $ git clone https://github.com/asis2016/gesund.git .\n```\n\nCopy provided `.env`, `docker-compose.yml`, `Dockerfile`, and `requirements.txt` in the `gesund_docker` root folder.\n\n**docker-compose.yml**\n\n```yaml\nversion: '3.7'\n\nservices:\n  web:\n    build: .\n    command: python /code/gesund/manage.py runserver 0.0.0.0:9001\n    volumes:\n      - .:/code\n\n    ports:\n      - 9001:9001\n\n    depends_on:\n      - db\n\n  db:\n    image: mysql:5.7\n    environment:\n      MYSQL_DATABASE: 'gesund'\n      MYSQL_ALLOW_EMPTY_PASSWORD: 'true'\n    volumes:\n      - ./data/mysql/db:/var/lib/mysql\n```\n\n**Dockerfile**\n\n```\nFROM python:3.8\n\nENV PYTHONDONTWRITEBYTECODE 1\nENV PYTHONUNBUFFERED 1\n\nWORKDIR /code\n\nCOPY Pipfile Pipfile.lock /code/\n\nRUN pip install pipenv \u0026\u0026 pipenv install --system\n\nCOPY . /code/\n```\n\n**requirements.txt**\n```\nasgiref==3.5.2\nbackports.zoneinfo==0.2.1\nDjango==4.0.6\ndjango-active-link==0.1.8\ndjango-cors-headers==3.11.0\ndjango-filter==21.1\ndjangorestframework==3.13.1\n\nprotobuf==4.21.2\npython-dotenv==0.20.0\npytz==2022.1\nsqlparse==0.4.2\nwhitenoise==6.2.0\nXlsxWriter==3.0.3\n\nmysqlclient\u003e=2.0\n```\n\n**.env**\n\n```\n# LOCAL\nENVIRONMENT='local'\nREST_API_URL='http://192.168.2.110:8000/api/v1'\nREST_API_BEARER_TOKEN=''\nDB_DATABASE='gesund'\nDB_USER='root'\nDB_PASS=''\nALLOWED_HOSTS_ENV='localhost 127.0.0.1 *'\nCORS_ORIGIN_WHITELIST_ENV='http://localhost:8000 http://127.0.0.1:8000'\n\n# EMAIL\nEMAIL_HOST=''\nEMAIL_PORT=''\nEMAIL_HOST_USER=''\nEMAIL_HOST_PASSWORD=''\nDEFAULT_FROM_EMAIL=''\nRECEIVE_EMAIL_AT=''\n```\n\n**pipenv install**\n\n```shell\ngesund_docker $ pipenv shell\n(gesund_docker-xyz) $ pipenv install -r requirements.txt\n```\n\nUpdate `settings.py` with the following information:\n\n```shell\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.mysql',\n        'HOST': 'db',                             #new\n        'PORT': '3306',\n        'NAME': DB_DATABASE,\n        'USER': DB_USER,\n        'PASSWORD': DB_PASS\n    }\n}\n```\n\n\n\n\n\nThe docker build command builds Docker images from a Dockerfile:\n\n```shell\n(gesund_docker-xyz) $ docker build . -t gesund_img\n\nSending build context to Docker daemon  17.88MB\nStep 1/7 : FROM python:3.8\n3.8: Pulling from library/python\nd836772a1c1f: Downloading  23.12MB/55MB\n66a9e63c657a: Download complete \nd1989b6e74cf: Download complete \nc28818711e1e: Downloading   5.34MB/54.58MB\n5084fa7ebd74: Downloading  8.014MB/196.8MB\n7f162c881e4f: Waiting \n3834558b67a0: Waiting \nedcbbf846ff7: Waiting \n865a38cd8857: Pulling fs layer\n```\n\nThe docker-compose up starts and restart all the services mentioned in `docker-compose.yml`:\n\n```shell\n(gesund_docker-xyz) $ docker-compose up -d\n```\n\n\n\nDatabase migration:\n\n```shell\n(gesund_docker-xyz) $ docker-compose exec web python gesund/manage.py migrate\n```\n\ncreate superuser:\n\n```shell\n(gesund_docker-xyz) $ docker-compose exec web python gesund/manage.py createsuperuser\n\nusername: admin\npassword: *****\n```\n\nNow, check if [localhost:9001](http://0.0.0.0:9001/) is working.\n\n### Docker container\n\n```shell\n$ docker ps -a\n```\n\nStop a container\n\n```shell\n$ docker stop \u003ccontainer_id\u003e\n```\n\n**Warning:** Deleting all container\n\n```shell\n$ docker rm -f $(docker ps -a -q)\n```\n\n### Docker image\n\n```shell\n$ docker images\n```\n\n### checking MySQL\n\n```shell\n(gesund_docker-xyz) $ docker exec -it \u003ccontainer_id\u003e bash\nbash-4.2# mysql\nmysql\u003e show databases;  \n\n+--------------------+\n| Database           |\n+--------------------+\n| information_schema |\n| gesund             |\n| mysql              |\n| performance_schema |\n| sys                |\n+--------------------+\n5 rows in set (0.00 sec)\n```\n ## User flow\n\nUser flow is used for describing the process of interaction between a user and the website. The following image presents\nthe 'flow' from the Gesund App entry point until the final action, i.e., Logging out.\n\n![sitemap](./resources/images/user_flow.svg)\n\n\u003cp align=\"center\"\u003e\nFigure. User flow of the Gesund app (own representation).\n\u003c/p\u003e\n\n### Example of the user flow\n\nA simplified example of setting the goal in the app would be:\n\n1. The user logs in successfully.\n2. From the Dashboard page, the user clicks on the Profile menu.\n3. From the menu, the user navigates towards the My Goals page.\n4. On the page, the user can view her current Goals.\n5. By clicking on Update your goals, she is then sent to the Goals update page.\n6. Now, she will set her goals by providing relevant information.\n7. Finally, she sees the confirmation message.\n\nAbove mentioned example of a user flow is called a 'happy path,' which means a simplified version of the user flow has a\nsuccessful response.\n\nReference: ## Wireframes\n\n### Login or Sign up\n\n![login or Sign up](./resources/images/wireframe_sm_login_sign_up.svg)\n\n\n### Dashboard\n\n![dashboard](./resources/images/wireframe_sm_dashboard.svg)\n\n### Profile\n\n![profile](./resources/images/wireframe_sm_profile.svg)\n\n### Food intake\n\n![food intake](./resources/images/wireframe_sm_food_intake.svg)\n\n### Steps\n\n![steps](./resources/images/wireframe_sm_steps.svg)\n\n\n### Water intake\n\n![water intake](./resources/images/wireframe_sm_water_intake.svg)\n\n### Weights\n\n![weights](./resources/images/wireframe_sm_weight.svg)\n\n### About us\n\n![about us](./resources/images/wireframe_sm_about_us.svg)\n\n![](./resources/images/)\n\n\n\nwireframe_sm_water_intake.drawio\nwireframe_sm_weight.drawio\n\n\n\n## Mockup\n\n### Login system\n\n![login system](./resources/images/mockup_sm_login_signup.svg)\n\n### Dashboard\n\n![dashboard](./resources/images/mockup_sm_dashboard.svg)\n\n### Profile\n\n![profile](./resources/images/mockup_sm_profile.svg)\n\n### Food intake\n\n![food intake](./resources/images/mockup_sm_food_intake.svg)\n\n### Pomodoro\n\n![pomodoro](./resources/images/mockup_sm_pomodoro.svg)\n\n### Steps\n\n![steps](./resources/images/mockup_sm_steps.svg)\n\n### Water\n\n![water](./resources/images/mockup_sm_water_intake.svg)\n\n### Weight\n\n![weight](./resources/images/mockup_sm_weight.svg)\n\n### About\n\n![about](./resources/images/mockup_sm_about.svg)\n\n\n\n## Sitemap\n\n\u003cp\u003e\nA sitemap is a collection of pages on a website. In a simple form, it is a map of the website. Draw.io was used to\ncreate the visual sitemap of the Gesund app.\n\u003c/p\u003e\n\n![sitemap](./resources/images/sitemap.svg)\n\n\u003cp align=\"center\"\u003e\n    \u003ci\u003eFigure. Visual sitemap of the Gesund app (own representation).\u003c/i\u003e\n\u003c/p\u003e\n\n## UML use case diagram\n\n![sitemap](./resources/images/uml_use_case_diagram.svg)\n\n## Database\n\nEntity-Relationship Diagram (ERD) is a standard approach for data structures and database systems design (todo:erd.pdf).\nThe\nfigure:todo represents the ERD of the Gesund app that provides a visual overview of the database and the\nrelations between tables. The tables are created during the app installation (see the migration process(todo:link)). The\ntable:todo includes additional information on the database tables.\n\n![Database diagram](./resources/images/erd.svg)\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eFigure:todo Entity-Relationship Diagram (ERD) of the Gesund App.\u003c/i\u003e\n\u003c/p\u003e\n\n### Table overview\n\nThis table overview section provides brief information on the project database tables.\n\n```shell\n$ mysql -u \u003cusername\u003e -p\n```\n\n```shell\nmysql\u003e show databases;\nmysql\u003e use gesund;\nmysql\u003e show tables;\n\n+-----------------------------+\n| Tables_in_gesund            |\n+-----------------------------+\n| aboutus_contactus           |\n| accounts_usersignlog        |\n| auth_group                  |\n| auth_group_permissions      |\n| auth_permission             |\n| auth_user                   |\n| auth_user_groups            |\n| auth_user_user_permissions  |\n| calories_caloriecategory    |\n| calories_caloriefooddetail  |\n| calories_calorieintake      |\n| challenges_challenge        |\n| django_admin_log            |\n| django_content_type         |\n| django_migrations           |\n| django_session              |\n| goals_goals                 |\n| history_history             |\n| pomodoros_pomodoro          |\n| profiles_profile            |\n| steps_steps                 |\n| water_intake_waterintake    |\n| weights_weight              |\n| xps_xp                      |\n+-----------------------------+\n24 rows in set (0,00 sec)\n```\n\n| Table name                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                         | Relevant area(s) of the Gesund App UI                                                                                                                              |\n|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| auth_user                                                                                 | The table is a part of the built-in Django authentication system. It stores users' data like username, password, email, is_staff, last_login, et cetera. Furthermore, the authentication system handles groups, permissions, and cookie-based user sessions. See [official documentation](https://docs.djangoproject.com/en/4.1/topics/auth/) for more information.                                 | \u003cul\u003e\u003cli\u003e/accounts/login/\u003c/li\u003e\u003cli\u003e/accounts/logout/\u003c/li\u003e\u003cli\u003e/accounts/signup/\u003c/li\u003e\u003cli\u003e/accounts/password_reset/\u003c/li\u003e\u003cli\u003e/accounts/password_change/\u003c/li\u003e\u003c/ul\u003e        |\n| profiles_profile                                                                          | The table manages users' profile. It has one-to-one relationship with the `user` table.                                                                                                                                                                                                                                                                                                             | \u003cul\u003e\u003cli\u003e/profile/\u003c/li\u003e\u003cli\u003e/profile/:id/update/\u003c/li\u003e\u003c/ul\u003e                                                                                                           |\n| goals_goals                                                                               | The table describes the goals of the user for daily food intake (cal), daily water intake (L), and weight (kg).                                                                                                                                                                                                                                                                                     | \u003cul\u003e\u003cli\u003e/goals/\u003c/li\u003e\u003cli\u003e/goals/:id/update/\u003c/li\u003e\u003c/ul\u003e                                                                                                               |\n| calories_caloriefooddetail                                                                | The table is extracted from the flattened USDA National Nutrient MongoDB Database. The original article can be found at [https://data.world/craigkelly/usda-national-nutrient-db](https://data.world/craigkelly/usda-national-nutrient-db), and the original database can be found at [http://www.ars.usda.gov/Services/docs.htm?docid=8964](http://www.ars.usda.gov/Services/docs.htm?docid=8964). | NA                                                                                                                                                                 |\n| calories_caloriecategory                                                                  | The table manages category for `caloriefooddetail` table.                                                                                                                                                                                                                                                                                                                                           | NA                                                                                                                                                                 |\n| calories_calorieintake                                                                    | The table manages users' food intake based on the `caloriefooddetail` data.                                                                                                                                                                                                                                                                                                                         | \u003cul\u003e\u003cli\u003e/foods/\u003c/li\u003e\u003cli\u003e/foods/calorie-intake-datestamp-collection/:datestamp/\u003c/li\u003e\u003cli\u003e/foods/add/\u003c/li\u003e\u003cli\u003e/foods/:id/update/\u003c/li\u003e\u003cli\u003e/foods/:id/delete/\u003c/li\u003e\u003c/ul\u003e |\n| pomodoros_pomodoro                                                                        | The table manages users' Pomodoro.                                                                                                                                                                                                                                                                                                                                                                  | \u003cul\u003e\u003cli\u003e/pomodoros/\u003c/li\u003e\u003cli\u003e/pomodoros/add/\u003c/li\u003e\u003cli\u003e/pomodoros/detail/:id/\u003c/li\u003e\u003cli\u003e/pomodoros/pomodoro-datestamp-collection/:datestamp/\u003c/li\u003e\u003c/ul\u003e                  |\n| steps_steps                                                                               | The table manages users' steps.                                                                                                                                                                                                                                                                                                                                                                     | \u003cul\u003e\u003cli\u003e/steps/\u003c/li\u003e\u003cli\u003e/steps/add/\u003c/li\u003e\u003cli\u003e/steps/:id/update/\u003c/li\u003e\u003cli\u003e/steps/:id/delete/\u003c/li\u003e\u003c/ul\u003e                                                                |\n| water_intake_waterintake                                                                  | The table manages users' water intake.                                                                                                                                                                                                                                                                                                                                                              | \u003cul\u003e\u003cli\u003e/water-intake/\u003c/li\u003e\u003cli\u003e/water-intake/add/\u003c/li\u003e\u003cli\u003e/water-intake/:id/update/\u003c/li\u003e\u003cli\u003e/water-intake/:id/delete/\u003c/li\u003e\u003c/ul\u003e                                    |\n| weights_weight                                                                            | The table manages users' weight.                                                                                                                                                                                                                                                                                                                                                                    | \u003cul\u003e\u003cli\u003e/weight/\u003c/li\u003e\u003cli\u003e/weight/add/\u003c/li\u003e\u003cli\u003e/weight/:id/update/\u003c/li\u003e\u003cli\u003e/weight/:id/delete/\u003c/li\u003e\u003c/ul\u003e                                                            |\n| xps_xp                                                                                    | The table manages users' experience points (xps).                                                                                                                                                                                                                                                                                                                                                   | /xps/                                                                                                                                                              |\n| aboutus_contactus                                                                         | The table consists of the users' messages sent to the admin.                                                                                                                                                                                                                                                                                                                                        | /about/contact-us/                                                                                                                                                 | \n| history_history                                                                           | The table provides a summary of actions taken by the user. The activities include: CREATE a resource, UPDATE the resource, DELETE the resource, and REWARD by the system.                                                                                                                                                                                                                           | /history/                                                                                                                                                          |\n| accounts_usersignlog                                                                      | The table logs users' login and logout activity. **\nNote:** only the Gesund App admin has access to view for analysis purposes.                                                                                                                                                                                                                                                                      | NA                                                                                                                                                                 |\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eTable:todo Tables of the Gesund App database in logical order.\u003c/i\u003e\n\u003c/p\u003e\n\n### Table details\n\nThis table details section provides facts about the table and its associated fields. One way to see the detail is\nthrough the following command:\n\n```shell\nmysql \u003e describe \u003ctable_name\u003e;\n```\n\n#### Table: aboutus_contactus\n\nFor instance, describe aboutus_contactus table:\n\n```mysql\nmysql \u003e describe aboutus_contactus;\n\n+-----------+--------------+------+-----+---------+----------------+\n| Field     | Type         | Null | Key | Default | Extra          |\n+-----------+--------------+------+-----+---------+----------------+\n| id        | int          | NO   | PRI | NULL    | auto_increment |\n| datestamp | date         | NO   |     | NULL    |                |\n| subject   | varchar(100) | NO   |     | NULL    |                |\n| message   | longtext     | NO   |     | NULL    |                |\n| author_id | int          | NO   | MUL | NULL    |                |\n+-----------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: accounts_usersignlog\n\n```mysql\n+------------+-------------+------+-----+---------+----------------+\n| Field      | Type        | Null | Key | Default | Extra          |\n+------------+-------------+------+-----+---------+----------------+\n| id         | int         | NO   | PRI | NULL    | auto_increment |\n| datestamp  | datetime(6) | NO   |     | NULL    |                |\n| log_status | varchar(10) | NO   |     | NULL    |                |\n| author_id  | int         | NO   | MUL | NULL    |                |\n+------------+-------------+------+-----+---------+----------------+\n```\n\n#### Table: auth_group\n\n```mysql\n+-------+--------------+------+-----+---------+----------------+\n| Field | Type         | Null | Key | Default | Extra          |\n+-------+--------------+------+-----+---------+----------------+\n| id    | int          | NO   | PRI | NULL    | auto_increment |\n| name  | varchar(150) | NO   | UNI | NULL    |                |\n+-------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: auth_group_permissions\n\n```mysql\n+---------------+--------+------+-----+---------+----------------+\n| Field         | Type   | Null | Key | Default | Extra          |\n+---------------+--------+------+-----+---------+----------------+\n| id            | bigint | NO   | PRI | NULL    | auto_increment |\n| group_id      | int    | NO   | MUL | NULL    |                |\n| permission_id | int    | NO   | MUL | NULL    |                |\n+---------------+--------+------+-----+---------+----------------+\n```\n\n#### Table: auth_user\n\n```mysql\n+--------------+--------------+------+-----+---------+----------------+\n| Field        | Type         | Null | Key | Default | Extra          |\n+--------------+--------------+------+-----+---------+----------------+\n| id           | int          | NO   | PRI | NULL    | auto_increment |\n| password     | varchar(128) | NO   |     | NULL    |                |\n| last_login   | datetime(6)  | YES  |     | NULL    |                |\n| is_superuser | tinyint(1)   | NO   |     | NULL    |                |\n| username     | varchar(150) | NO   | UNI | NULL    |                |\n| first_name   | varchar(150) | NO   |     | NULL    |                |\n| last_name    | varchar(150) | NO   |     | NULL    |                |\n| email        | varchar(254) | NO   |     | NULL    |                |\n| is_staff     | tinyint(1)   | NO   |     | NULL    |                |\n| is_active    | tinyint(1)   | NO   |     | NULL    |                |\n| date_joined  | datetime(6)  | NO   |     | NULL    |                |\n+--------------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: auth_user_groups\n\n```mysql\n+----------+--------+------+-----+---------+----------------+\n| Field    | Type   | Null | Key | Default | Extra          |\n+----------+--------+------+-----+---------+----------------+\n| id       | bigint | NO   | PRI | NULL    | auto_increment |\n| user_id  | int    | NO   | MUL | NULL    |                |\n| group_id | int    | NO   | MUL | NULL    |                |\n+----------+--------+------+-----+---------+----------------+\n```\n\n#### Table: auth_user_user_permissions\n\n```mysql\n+---------------+--------+------+-----+---------+----------------+\n| Field         | Type   | Null | Key | Default | Extra          |\n+---------------+--------+------+-----+---------+----------------+\n| id            | bigint | NO   | PRI | NULL    | auto_increment |\n| user_id       | int    | NO   | MUL | NULL    |                |\n| permission_id | int    | NO   | MUL | NULL    |                |\n+---------------+--------+------+-----+---------+----------------+\n```\n\n#### Table: calories_caloriecategory\n\n```mysql\n+----------+--------------+------+-----+---------+----------------+\n| Field    | Type         | Null | Key | Default | Extra          |\n+----------+--------------+------+-----+---------+----------------+\n| id       | int          | NO   | PRI | NULL    | auto_increment |\n| category | varchar(100) | NO   |     | NULL    |                |\n| status   | tinyint(1)   | NO   |     | NULL    |                |\n+----------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: calories_caloriefooddetail\n\n```mysql\n+-------------+------------+------+-----+---------+----------------+\n| Field       | Type       | Null | Key | Default | Extra          |\n+-------------+------------+------+-----+---------+----------------+\n| id          | int        | NO   | PRI | NULL    | auto_increment |\n| food        | longtext   | NO   |     | NULL    |                |\n| description | longtext   | NO   |     | NULL    |                |\n| calories    | double     | NO   |     | NULL    |                |\n| protein     | double     | NO   |     | NULL    |                |\n| fat         | double     | NO   |     | NULL    |                |\n| carb        | double     | NO   |     | NULL    |                |\n| sugar       | double     | NO   |     | NULL    |                |\n| fiber       | double     | NO   |     | NULL    |                |\n| status      | tinyint(1) | NO   |     | NULL    |                |\n| category_id | int        | NO   | MUL | NULL    |                |\n+-------------+------------+------+-----+---------+----------------+\n```\n\n#### Table: calories_calorieintake\n\n```mysql\n+--------------------+----------+------+-----+---------+----------------+\n| Field              | Type     | Null | Key | Default | Extra          |\n+--------------------+----------+------+-----+---------+----------------+\n| id                 | int      | NO   | PRI | NULL    | auto_increment |\n| datestamp          | date     | NO   |     | NULL    |                |\n| consume            | double   | NO   |     | NULL    |                |\n| author_id          | int      | NO   | MUL | NULL    |                |\n| food               | longtext | NO   |     | NULL    |                |\n| calories           | double   | NO   |     | NULL    |                |\n| carb               | double   | NO   |     | NULL    |                |\n| description        | longtext | YES  |     | NULL    |                |\n| fat                | double   | NO   |     | NULL    |                |\n| fiber              | double   | NO   |     | NULL    |                |\n| food_detail_ref_id | int      | NO   | MUL | NULL    |                |\n| protein            | double   | NO   |     | NULL    |                |\n| sugar              | double   | NO   |     | NULL    |                |\n+--------------------+----------+------+-----+---------+----------------+\n```\n\n#### Table: challenges_challenge\n\n```mysql\n+------------+-------------+------+-----+---------+----------------+\n| Field      | Type        | Null | Key | Default | Extra          |\n+------------+-------------+------+-----+---------+----------------+\n| id         | int         | NO   | PRI | NULL    | auto_increment |\n| start_date | datetime(6) | NO   |     | NULL    |                |\n| challenge  | varchar(15) | NO   |     | NULL    |                |\n| status     | tinyint(1)  | NO   |     | NULL    |                |\n| author_id  | int         | NO   | MUL | NULL    |                |\n+------------+-------------+------+-----+---------+----------------+\n```\n\n#### Table: django_admin_log\n\n```mysql\n+-----------------+-------------------+------+-----+---------+----------------+\n| Field           | Type              | Null | Key | Default | Extra          |\n+-----------------+-------------------+------+-----+---------+----------------+\n| id              | int               | NO   | PRI | NULL    | auto_increment |\n| action_time     | datetime(6)       | NO   |     | NULL    |                |\n| object_id       | longtext          | YES  |     | NULL    |                |\n| object_repr     | varchar(200)      | NO   |     | NULL    |                |\n| action_flag     | smallint unsigned | NO   |     | NULL    |                |\n| change_message  | longtext          | NO   |     | NULL    |                |\n| content_type_id | int               | YES  | MUL | NULL    |                |\n| user_id         | int               | NO   | MUL | NULL    |                |\n+-----------------+-------------------+------+-----+---------+----------------+\n```\n\n#### Table: django_content_type\n\n```mysql\n+-----------+--------------+------+-----+---------+----------------+\n| Field     | Type         | Null | Key | Default | Extra          |\n+-----------+--------------+------+-----+---------+----------------+\n| id        | int          | NO   | PRI | NULL    | auto_increment |\n| app_label | varchar(100) | NO   | MUL | NULL    |                |\n| model     | varchar(100) | NO   |     | NULL    |                |\n+-----------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: django_migrations\n\n```mysql\n+---------+--------------+------+-----+---------+----------------+\n| Field   | Type         | Null | Key | Default | Extra          |\n+---------+--------------+------+-----+---------+----------------+\n| id      | bigint       | NO   | PRI | NULL    | auto_increment |\n| app     | varchar(255) | NO   |     | NULL    |                |\n| name    | varchar(255) | NO   |     | NULL    |                |\n| applied | datetime(6)  | NO   |     | NULL    |                |\n+---------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: django_session\n\n```mysql\n+--------------+-------------+------+-----+---------+-------+\n| Field        | Type        | Null | Key | Default | Extra |\n+--------------+-------------+------+-----+---------+-------+\n| session_key  | varchar(40) | NO   | PRI | NULL    |       |\n| session_data | longtext    | NO   |     | NULL    |       |\n| expire_date  | datetime(6) | NO   | MUL | NULL    |       |\n+--------------+-------------+------+-----+---------+-------+\n```\n\n#### Table: goals_goals\n\n```mysql\n+-----------+--------+------+-----+---------+----------------+\n| Field     | Type   | Null | Key | Default | Extra          |\n+-----------+--------+------+-----+---------+----------------+\n| id        | int    | NO   | PRI | NULL    | auto_increment |\n| water     | double | NO   |     | NULL    |                |\n| calories  | double | NO   |     | NULL    |                |\n| steps     | double | NO   |     | NULL    |                |\n| author_id | int    | NO   | MUL | NULL    |                |\n| weight    | double | NO   |     | NULL    |                |\n| pomodoro  | double | NO   |     | NULL    |                |\n+-----------+--------+------+-----+---------+----------------+\n```\n\n#### Table: history_history\n\n```mysql\n+-------------+-------------+------+-----+---------+----------------+\n| Field       | Type        | Null | Key | Default | Extra          |\n+-------------+-------------+------+-----+---------+----------------+\n| id          | int         | NO   | PRI | NULL    | auto_increment |\n| datestamp   | datetime(6) | NO   |     | NULL    |                |\n| app         | varchar(20) | NO   |     | NULL    |                |\n| action      | varchar(10) | NO   |     | NULL    |                |\n| description | longtext    | YES  |     | NULL    |                |\n| author_id   | int         | NO   | MUL | NULL    |                |\n+-------------+-------------+------+-----+---------+----------------+\n```\n\n#### Table: pomodoros_pomodoro\n\n```mysql\n+-------------+----------+------+-----+---------+----------------+\n| Field       | Type     | Null | Key | Default | Extra          |\n+-------------+----------+------+-----+---------+----------------+\n| id          | int      | NO   | PRI | NULL    | auto_increment |\n| author_id   | int      | NO   | MUL | NULL    |                |\n| remarks     | longtext | YES  |     | NULL    |                |\n| long_break  | int      | YES  |     | NULL    |                |\n| pomodoro    | int      | YES  |     | NULL    |                |\n| short_break | int      | YES  |     | NULL    |                |\n| datestamp   | date     | NO   |     | NULL    |                |\n| timestamp   | time(6)  | NO   |     | NULL    |                |\n+-------------+----------+------+-----+---------+----------------+\n```\n\n#### Table: profiles_profile\n\n```mysql\n+-----------+--------------+------+-----+---------+----------------+\n| Field     | Type         | Null | Key | Default | Extra          |\n+-----------+--------------+------+-----+---------+----------------+\n| id        | int          | NO   | PRI | NULL    | auto_increment |\n| dob       | date         | YES  |     | NULL    |                |\n| gender    | varchar(1)   | YES  |     | NULL    |                |\n| height    | double       | YES  |     | NULL    |                |\n| author_id | int          | NO   | MUL | NULL    |                |\n| name      | varchar(200) | YES  |     | NULL    |                |\n+-----------+--------------+------+-----+---------+----------------+\n```\n\n#### Table: steps_steps\n\n```mysql\n+------------+------+------+-----+---------+----------------+\n| Field      | Type | Null | Key | Default | Extra          |\n+------------+------+------+-----+---------+----------------+\n| id         | int  | NO   | PRI | NULL    | auto_increment |\n| datestamp  | date | NO   |     | NULL    |                |\n| step_count | int  | NO   |     | NULL    |                |\n| author_id  | int  | NO   | MUL | NULL    |                |\n+------------+------+------+-----+---------+----------------+\n```\n\n#### Table: water_intake_waterintake\n\n```mysql\n+----------------+--------+------+-----+---------+----------------+\n| Field          | Type   | Null | Key | Default | Extra          |\n+----------------+--------+------+-----+---------+----------------+\n| id             | int    | NO   | PRI | NULL    | auto_increment |\n| datestamp      | date   | NO   |     | NULL    |                |\n| drink_progress | double | NO   |     | NULL    |                |\n| author_id      | int    | NO   | MUL | NULL    |                |\n+----------------+--------+------+-----+---------+----------------+\n```\n\n#### Table: weights_weight\n\n```mysql\n+-----------+--------+------+-----+---------+----------------+\n| Field     | Type   | Null | Key | Default | Extra          |\n+-----------+--------+------+-----+---------+----------------+\n| id        | int    | NO   | PRI | NULL    | auto_increment |\n| datestamp | date   | NO   |     | NULL    |                |\n| weight    | double | NO   |     | NULL    |                |\n| author_id | int    | NO   | MUL | NULL    |                |\n+-----------+--------+------+-----+---------+----------------+\n```\n\n#### Table: xps_xp\n\n```mysql\n+----------------+----------+------+-----+---------+----------------+\n| Field          | Type     | Null | Key | Default | Extra          |\n+----------------+----------+------+-----+---------+----------------+\n| id             | int      | NO   | PRI | NULL    | auto_increment |\n| xp             | int      | YES  |     | NULL    |                |\n| author_id      | int      | NO   | MUL | NULL    |                |\n| datestamp      | date     | NO   |     | NULL    |                |\n| referer_app_id | longtext | YES  |     | NULL    |                |\n+----------------+----------+------+-----+---------+----------------+\n```\n\n### Dummy data setup\n\nDummy database with records are provided to work with the App. In `.env` update:\n\n```shell\n...\nDB_HOST='local'\nDB_DATABASE='gesund_dummy_database'\n...\n```\n\nAnd, import the provided `gesund_dummy_database.sql` to MySQL server.\n\ntodo: image\n\nDjango admin details for [http://localhost:8000/admin](http://localhost:8000/admin):\n\n```shell\nURL: http://localhost:8000/admin\nusername: djangoadmin\nPassword: dj4n604dm1n\n```\n\n## REST API\n\ntodo: what is rest api?\ntodo: where it has been used?\n\nBasic Auth is used as Authorization mechanism.\n\n```\nusername: 'admin'\npassword: '*****'\n```\n\n### Steps\n\n#### Get all steps\n\n**HTTP Method:** `GET`\n\n**Endpoint:** `http://localhost:8000/api/v1/steps/`\n\n**Authorization:** `Basic Auth`\n\n**Description:** The endpoint retrieves all users' steps.\n\n**cURL example request:**\n\n```shell\ncurl --location --request GET 'http://localhost:8000/api/v1/steps/'\n```\n\n### Get steps by id\n\n**HTTP Method:** `GET`\n\n**Endpoint:** `http://localhost:8000/api/v1/steps/:id/`\n\n**Path variables:** `id`\n\n**Authorization:** `Basic Auth`\n\n**Description:** The endpoint retrieves a specific user's steps by steps id.\n\n**cURL example request:**\n\n```shell\ncurl --location --request GET 'http://localhost:8000/api/v1/steps/1/'\n```\n\n#### Add steps\n\n**HTTP Method:** `POST`\n\n**Endpoint:** `http://localhost:8000/api/v1/steps/`\n\n**Path variables:** `id`\n\n**Body** raw:\n\n```json\n{\n  \"datestamp\": \"2012-12-12\",\n  \"step_count\": 123456,\n  \"author\": 1\n}\n```\n\n**Authorization:** `Basic Auth`\n\n**Description:** The endpoint records a specific user's steps.\n\n**cURL example request:**\n\n```shell\ncurl --location --request POST 'http://localhost:8000/api/v1/steps/' \\\n--data-raw '{\n    \"datestamp\": \"2012-12-12\",\n    \"step_count\": 123456,\n    \"author\": 1\n}'\n```\n\n#### Update steps\n\n**HTTP Method:** `PUT`\n\n**Endpoint:** `http://localhost:8000/api/v1/steps/:id/`\n\n**Path variables:** `id`\n\n**Body** raw:\n\n```json\n{\n  \"datestamp\": \"2012-12-12\",\n  \"step_count\": 123,\n  \"author\": 1\n}\n```\n\n**Authorization:** `Basic Auth`\n\n**Description:** The endpoint updates a specific user's steps by steps id.\n\n**cURL example request:**\n\n```shell\ncurl --location --request PUT 'http://localhost:8000/api/v1/steps/2/' \\\n--data-raw '{\n    \"datestamp\": \"2012-12-12\",\n    \"step_count\": 123,\n    \"author\": 1\n}'\n```\n\n#### Delete steps\n\n**HTTP Method:** `DELETE`\n\n**Endpoint:** `http://localhost:8000/api/v1/steps/:id/`\n\n**Path variables:** `id`\n\n**Authorization:** `Basic Auth`\n\n**Description:** The endpoint deletes a specific user's steps by steps id.\n\n**cURL example request:**\n\n```shell\ncurl --location --request DELETE 'http://localhost:8000/api/v1/steps/2/'\n```\n\nFor complete REST API Endpoints, refer to [rest_api_complete.md](./docs/rest_api_complete.md)\n\n### Postman\n\nPostman collection is provided on [resources/gesund_postman_collection.json](./resources/gesund_postman_collection.json)\n. You can download the software from [https://www.postman.com/downloads/](https://www.postman.com/downloads/).\n\nOnce you have installed Postman, you must import this `gesund_postman_collection.json` into Postman.\n\n#### Postman runner\n\nThe collection runner allows developers to run the Gesund App REST API requests in a collection. Moreover, it logs the\nrequest's test result. The detailed article can be found on\nthe [official website](https://learning.postman.com/docs/running-collections/intro-to-collection-runs/).\n\n#### Running Newman[^1]\n\nNewman is a command-line collection runner for Postman, which helps developers to run requests and tests directly from\nCLI.\n\n```shell\n$ npm install -g newman\n```\n\n```shell\n$ newman run resources/gesund_postman_collection.json\n```\n\n## Tests\n\n\"Code without tests is broken by design.\" - Jacob Kaplan-Moss\n\nWhat is automated test?\n\nTo run the all the test cases in the Gesund app:\n\n```shell\n(venv) gesund_project/gesund $ python manage.py test\n```\n\nresult:\n\n```shell\nFound 29 test(s).\nCreating test database for alias 'default'...\nSystem check identified no issues (0 silenced).\n0\n.............................\n----------------------------------------------------------------------\nRan 29 tests in 15.098s\n\nOK\nDestroying test database for alias 'default'...\n```\n\nTo run specific app test, for an example `steps` app:\n\n```shell\n(venv) gesund_project/gesund $ python manage.py test steps\n```\n\nresult:\n\n```shell\nFound 3 test(s).\nCreating test database for alias 'default'...\nSystem check identified no issues (0 silenced).\n...\n----------------------------------------------------------------------\nRan 3 tests in 1.534s\n\nOK\nDestroying test database for alias 'default'...\n```\n\n\n## End-user documentation\n\nThis documentation is intended for end-users. It explains the most straightforward way the user can start using the\nGesund App.\n\n**Login page**\n\n\u003cp style=\"text-align:center;\"\u003e\n\u003cimg src=\"./resources/images/login.png\" alt=\"login page\" height=\"500px\" style=\"border:1px solid #cecece\"\u003e\n\u003c/p\u003e\n\n- When the Gesund App starts, it will redirect to the login page.\n- If the user is new to the app, he/she can sign up by clicking `Sign up now!`.\n- After successful login, the user is redirected to the `Dashboard`.\n\n**Sign up**\n\n- When the user successfully signs up for the Gesund app, they will receive an automatic email from the system.\n\n\u003cp style=\"text-align:center;\"\u003e\n\u003cimg src=\"./resources/images/sign_up_successful_email.png\" alt=\"sign up successful\" height=\"500px\" style=\"border:1px solid #cecece\"\u003e\n\u003c/p\u003e\n\nNow, to get started with the app, the user must follow two steps below:\n\n1. The user must update their goals (i.e., calories, steps, water, and weight).\n\n2. And their profile.\n\n**Quick start guide**\n\nThe [quick start guide (.pdf)](./docs/quick_start_guide.pdf) gives a basic guidelines on how to use the\napp.\n\n\u003cp style=\"text-align:center;\"\u003e\n\u003cimg src=\"./resources/images/quick_start_guide.png\" alt=\"quick start guide\" height=\"500px\" \nstyle=\"border:1px solid #cecece\"\u003e\n\u003c/p\u003e\n\n**Instruction on using a `steps` `feature`**\n\nMost \"features\" on the app are represented in four forms, i.e.,  **Creating**, **Reading**, **Updating**,\nor **Deleting** a resource.\n\n- By clicking number **1**, the user can add their steps.\n- Number **2** shows randomized \"tips/hints\".\n- **3**, where the user records their steps by clicking `Save changes`, and the user is redirected to\n  the [ListView](https://docs.djangoproject.com/en/4.0/ref/class-based-views/generic-display/) page (**4**).\n- **5** - The user gets successful notification and they are [rewarded by the system](#).\n- **6** - To update existing steps record.\n- **7** - To delete existing steps record.\n\n\u003cp style=\"text-align:center;\"\u003e\n\u003cimg src=\"./resources/images/steps_user_flow.svg\" alt=\"quick start guide\" height=\"100%\"\u003e\n\u003c/p\u003e\n\n\n\n## Feedback\n\nIf you have any feedback, please reach out to the author at info@amaharjan.online\n\n## Contributing\n\nContributions are always welcome! please contact the author at info@amaharjan.online\n\n### Disclaimer\n\n\u003cp\u003e\n    The information provided by the author(s) on \u003ca href=\"https://github.com/asis2016/gesund\"\u003ehttps://github.com/asis2016/gesund\u003c/a\u003e the APP\n    is for general informational purposes only. All information on the Web App is provided in good faith. However, we\n    make no representation or warranty of any kind, express or implied, regarding the accuracy,\n    adequacy, validity, reliability, availability, or completeness of any information on the Web App.\n\u003c/p\u003e\n\u003cp\u003e\n    No content on this Web App, regardless of date, regardless of \"features\", should ever be used as a\n    replacement for direct\n    medical\n    advice from your doctor or other qualified clinicians.\n\u003c/p\u003e\n\u003cp\u003e\n    UNDER NO CIRCUMSTANCE SHALL WE HAVE ANY LIABILITY TO YOU FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED\n    AS\n    A RESULT OF THE USE OF THE WEB APP OR RELIANCE ON ANY INFORMATION PROVIDED ON THE WEB APP.\n\u003c/p\u003e\n\u003cp\u003e\n    YOUR USE OF THE WEB APP AND YOUR RELIANCE ON ANY INFORMATION ON THE WEB APP IS SOLELY AT YOUR OWN\n    RISK.\n\u003c/p\u003e\n\n## License\n\nThis project is licensed under the [MIT license](./LICENSE).\n\n## Privacy Policy\n\nGeneral Data Protection Regulation (GDPR) was applied during the APP pilot test period.\n\n\n\n\n\n\n\n\n# References\n\n- [CLI with Postman Newman](https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/)\n- [User flow](https://xd.adobe.com/ideas/process/user-research/user-journey-vs-user-flow/)\n\n## Images, vectors, or icons\n\n- [https://undraw.co/](https://undraw.co/)\n- \u003ca href=\"https://www.flaticon.com/free-icons/fruit\" title=\"fruit icons\"\u003eFruit icons created by Freepik - Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/bottle\" title=\"bottle icons\"\u003eBottle icons created by Vitaly Gorbachev -\n  Flaticon\u003c/a\u003e\n- \u003ca href='https://www.freepik.com/vectors/dairy-free'\u003eDairy free vector created by macrovector - www.freepik.com\u003c/a\u003e\n- \u003ca href='https://www.freepik.com/vectors/vegan'\u003eVegan vector created by studiogstock - www.freepik.com\u003c/a\u003e\n- \u003ca href=\"https://www.vecteezy.com/free-vector/salt\"\u003eSalt Vectors by Vecteezy\u003c/a\u003e\n- \u003ca href='https://www.freepik.com/vectors/tiny'\u003eTiny vector created by pch.vector - www.freepik.com\u003c/a\u003e\n- \u003ca href='https://www.freepik.com/vectors/drink-water'\u003eDrink water vector created by pch.vector - www.freepik.com\u003c/a\u003e\n- \u003ca href='https://www.freepik.com/vectors/people-walking'\u003ePeople walking vector created by\n  storyset, www.freepik.com\u003c/a\u003e\n- \u003ca href=\"https://www.freepik.com/vectors/trekking\"\u003eTrekking vector created by pch.vector - www.freepik.com\u003c/a\u003e\n- Illustration by \u003ca href=\"https://icons8.com/illustrations/author/292791\"\u003eAnna Golde\u003c/a\u003e\n  from \u003ca href=\"https://icons8.com/illustrations\"\u003eOuch!\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/cigarette\" title=\"cigarette icons\"\u003eCigarette icons created by Freepik -\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/beer\" title=\"beer icons\"\u003eBeer icons created by Freepik - Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/sugar-cube\" title=\"sugar cube icons\"\u003eSugar cube icons created by Freepik,\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/burger\" title=\"burger icons\"\u003eBurger icons created by Freepik -\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/chocolate\" title=\"chocolate icons\"\u003eChocolate icons created by Freepik -\n  Flaticon\u003c/a\u003e\n- Illustration by \u003ca href=\"https://icons8.com/illustrations/author/Go8GMpKPAq1W\"\u003ePolina Makeeva\u003c/a\u003e\n  from \u003ca href=\"https://icons8.com/illustrations\"\u003eOuch!\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/de/kostenlose-icons/profil\" title=\"profil Icons\"\u003eProfil Icons erstellt von Freepik -\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/tomato\" title=\"tomato icons\"\u003eTomato icons created by Pixel perfect -\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/calories\" title=\"calories icons\"\u003eCalories icons created by Freepik -\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/walking\" title=\"walking icons\"\u003eWalking icons created by Freepik,\n  Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/timer\" title=\"timer icons\"\u003eTimer icons created by Freepik - Flaticon\u003c/a\u003e\n- \u003ca href=\"https://www.flaticon.com/free-icons/water\" title=\"water icons\"\u003eWater icons created by Freepik - Flaticon\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasis2016%2Fgesund","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasis2016%2Fgesund","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasis2016%2Fgesund/lists"}