{"id":21358411,"url":"https://github.com/danzigerrr/fridge-manager","last_synced_at":"2025-03-16T06:16:58.026Z","repository":{"id":178892028,"uuid":"656576174","full_name":"Danzigerrr/Fridge-Manager","owner":"Danzigerrr","description":"App designed to reduce food waste by managing prodcuts in your fridge","archived":false,"fork":false,"pushed_at":"2023-08-05T14:43:10.000Z","size":258,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T18:35:14.106Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Danzigerrr.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-06-21T08:11:24.000Z","updated_at":"2023-07-17T07:38:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"26be1180-ff6f-4403-ad70-b9f232aede1a","html_url":"https://github.com/Danzigerrr/Fridge-Manager","commit_stats":null,"previous_names":["krzysztofnazar01/fridge-manager","danzigerrr/fridge-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danzigerrr%2FFridge-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danzigerrr%2FFridge-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danzigerrr%2FFridge-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danzigerrr%2FFridge-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Danzigerrr","download_url":"https://codeload.github.com/Danzigerrr/Fridge-Manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830955,"owners_count":20354856,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-22T05:16:15.002Z","updated_at":"2025-03-16T06:16:58.000Z","avatar_url":"https://github.com/Danzigerrr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fridge Manager - web application using Django framework\n## Manage food in your fridge and get inspired by recipes based on your current products - fight food waste today!\n### Author: **Krzysztof Nazar**\n\n## Table of contents\n* [Live demo](#Live-demo)\n* [The goal of the project](#the-goal-of-the-project)\n* [Main functionalities of the application](#main-functionalities-of-the-application)\n* [Watch the user tutorial](#watch-the-user-tutorial)\n* [Run project locally](#run-project-locally)\n  + [Installation of libraries](#installation-of-libraries)\n  + [Running the project](#running-the-project)\n* [Why did I create this project?](#why-did-i-create-this-project-)\n* [What I've learnt during this project?](#what-i-ve-learnt-during-this-project-)\n* [Used libraries](#used-libraries)\n* [Possible future improvements](#possible-future-improvements)\n* [Contributing](#contributing)\n* [License](#license)\n\n\n## Live demo \nUse [**this link**](https://fridgemanagerbykn.pythonanywhere.com/) to check the demo of this application hosted by [Pythonanywhere.com](https://pythonanywhere.com).\n\n\n## The goal of the project\n**The goal of this project is to deploy a Django web application allowing the users to manage their fridges and reduce the food waste.**\nThe key functionality of the app is to search for recipes using the products stored currently in the fridge.\n\n\n## Main functionalities of the application\n\nThe application provides an interface and tools designed for managing products stored in a fridge.\n\nThe key functionalities in the app include:\n- **Register as a new user** - Register to the system.\n- **Add your fridge** - Create your fridge and define its details\n- **Share your fridge with another users** - Use an invitation link, send it to another user, and manage one fridge together\n- **Add products to your fridge** - Add new products by defining their name, expiration date, amount, etc.\n- **Search for recipes** - Check out the meal which can be made using the products in your fridge\n- **User dashboard** - See statistics of your account in one place\n\n\n[//]: # (## Watch the user tutorial)\n[//]: # (Here is the tutorial available on YouTube:)\n[//]: # ()\n[//]: # ([![Watch the user tutorial]\u0026#40;https://img.youtube.com/vi/VIDEO_ID/0.jpg\u0026#41;]\u0026#40;https://youtu.be/VIDEO_ID\u0026#41;)\n\n\n## Run project locally\n\n### Installation of libraries\n\n1. Install virtualenv:\n```bash\npip install virtualenv\n```\n2. Create a virtual environment:\n```bash\nvirtualenv \u003cmy_env_name\u003e\n```\n3. Activate the environment:\n```bash\nsource \u003cmy_env_name\u003e/bin/activate\n```\n4. Install the requirements in the current environment:\n```bash\npip install -r requirements.txt\n```\n5. This step is optional - if you want to deactivate your current environment use hte following command:\n```bash\ndeactivate\n```\n\n### Set up Spoonacular API\n1. Register at Spoonacular [**here**](https://spoonacular.com/food-api/console#Dashboard)\n```bash\ndeactivate\n```\n2. Copy your private api key from the user [dashboard](https://spoonacular.com/food-api/console#Profile).\nRemember to keep your api key private and do not share it publicly!\n\n![getting_api_key.png](getting_api_key.png)\n\n3. Create *.env* file with api key in the directory with *manage.py* file (FridgeManager/fridgemanager).\nUse the template given below and paste your private api key.\n```python\nSPOONACULAR_API_KEY=your_api_key\n```\n### Running the project\nWith active virtual environment, run the following commands to run the Django project.\n1. Go to the project directory:\n```bash\ncd fridgemanager\n```\n2. Run server using manage.py file:\n```bash\npython manage.py runserver\n```\n\n## Why did I create this project?\n\nBy creating this app I would like to have an impact on the global food waste problem.\nAccording to [Greenly Institute](https://greenly.earth/en-us/blog/ecology-news/global-food-waste-in-2022):\n\n\"Over a third of all food produced (~2.5 billion tons) is lost or wasted each year.\nOne third of this occurs in the food production stage.\nBoston Consulting Group (BCG) estimates this wasted food is worth $230 billion.\n\n👉 Researchers estimate the lost food calories from food waste amount to roughly 24% of the total available food calories.\"\n\nUsers of my app can **#ActLocallyAndThinkGlobally** by reducing their own food waste.\n\n\n## Database diagram\nThe database diagram shows the relationships between the models. It was generated using DataGrip from Jetbrains.\n\n![database_diagram.png](database_diagram.png)\n\n## What I've learnt during this project?\n\nDuring this project I learnt how to:\n- setup user authorisation in Django ([docs](https://docs.djangoproject.com/en/4.2/topics/auth/))\n- use Bootstrap for styling ([docs](https://getbootstrap.com/docs/4.0/content/images/))\n- create custom error pages ([tutorial](https://dev.to/riyanagueco/creating-a-custom-error-page-on-django-3nnd))\n- manage relationships between Django models ([docs](https://docs.djangoproject.com/en/4.2/topics/db/models/))\n- improved my skills in creating Django forms ([docs](https://docs.djangoproject.com/en/4.2/topics/forms/))\n- use spoonacular API ([docs](https://spoonacular.com/food-api/docs))\n- create a better README.md \n- write Unit tests in Django ([docs](https://docs.djangoproject.com/en/4.2/topics/testing/))\n\n\n## Used libraries\n - Django\n - requests\n - secrets\n \n\n## Possible future improvements\n\n- **Add an option to define the priority of products used as ingredients** - the user can define what products he/she wants to use today\n\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanzigerrr%2Ffridge-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanzigerrr%2Ffridge-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanzigerrr%2Ffridge-manager/lists"}