Skip to content

Trabajo Integrador de Programación I de la Upateco - Aplicación de escritorio en la que puede crear, editar y eliminar recetas

Notifications You must be signed in to change notification settings

Mettralla/recetario_cocina_app

Repository files navigation

Banner

Recetario de Cocina


Este repositorio contiene la resolucion del Proyecto Integrador Final de la Catedra Programación 1 de la Carrera de Desarrollo de Software de la Universidad Provincial de Administración, Tecnologia y Oficios (UPATECO). Esta consiste en una aplicacion de escritorio donde podia almacenarse recetas de cocina usando archivos csv como base de datos. Sin embargo, durante el cursado de Programación 2 se migro de ficheros csv hacia la implementacion de una base de datos MySQL actual.

Si estás interesado en ver cómo funcionaba la versión antigua de la aplicación utilizando el archivo CSV, puedes acceder a la rama "legacy" haciendo clic en el siguiente enlace: Ver la versión con ficheros CSV


📝 Tabla de Contenidos

🧐 Consigna

Para este proyecto se deberá diseñar una aplicación de escritorio en la que puedan crear, editar y eliminar recetas.

Todos los incisos que tienen el símbolo '✅' son obligatorios, mientras que aquellos que tienen el símbolo '⭐' son opcionales.

Una receta debe estar compuesta de los siguientes datos:

- Nombre. ✅
- Una lista de los ingredientes. ✅
- Preparación, lista ordenada de pasos a seguir. ✅
- Imagen/es del plato preparado. Una receta puede o no tener una imagen. ✅
- Tiempo de preparación (en minutos). ✅
- Tiempo de cocción (en minutos). ✅
- Fecha de creación. La fecha y hora en que se creó la receta en la aplicación. ✅
- Etiquetas: palabras clave. ⭐
- Es favorita (o no). ⭐

Un ingrediente debe contar con la siguiente información:

- Nombre. ✅
- Unidad de medida. ✅
- Cantidad. ✅

Las funcionalidades que debe tener la aplicación son las siguientes:

- Crear una receta. ✅
- Modificar una receta. ✅
- Eliminar una receta. ✅
- Buscar y/o filtrar recetas:
    ¬ Nombre. ⭐
    ¬ Por etiquetas. ⭐
    ¬ Tiempo de preparación. ⭐
    ¬ Ingredientes. ⭐

Debe contar con las siguientes vistas:

- Recetario. Ventana principal por defecto.
- Se muestra un listado de todas las recetas. ✅
- Muestra una receta ya existente. ✅
- Carga/modificación de una receta. ✅
- Búsqueda y filtro. La ventana deberá tener un campo de búsqueda, por nombre y/o etiqueta. Una vez filtrados las recetas, se las mostrará en una lista.⭐

💡 Resolucion

DER:

App Screenshot

Estructura del proyecto:

.
├── images                          # Imagenes usadas en el proyecto
│   ├── empty_star.png                  # Iconos de favorito
│   └── star.png                        # Iconos de favorito
├── src                                 # Modulos/Clases Auxiliares
|   ├── windows                         # Ventanas
│   │   ├── AddIngredient.py                # Ventana que agrega ingrediente
│   │   ├── AddMethod.py                    # Ventana que agrega paso
│   │   ├── EditRecipe.py                   # Ventana editar receta
│   │   ├── NewRecipe.py                    # Ventana crear receta
│   │   ├── ReadRecipe.py                   # Ventana leer receta
│   │   └── IBaseWindow.py                  # Base de las ventanas
│   └── utils                           # Controlador de la BD
│       ├── db_config.py                    # Credenciales 
│       ├── db_migrate.py                   # Migracion 
│       └── db_utils.py                     # Controlador
├── screenshots                         # App screenshots 
├── .gitignore                            
├── main.py                         # Ventana principal
├── constant.py                     # Enrutador
├── requirements.txt                # Dependencias
└── README.md

🏁 Instalación/Ejecución

Crear entorno virtual

python -m venv env

Activar entorno

source env/Scripts/activate

Clonar el repositorio

git clone [email protected]:Mettralla/recetario_cocina_app.git

Ir al directorio del proyecto

cd recetario_cocina_app

Instalar dependencias

pip install -r requirements.txt

Ingresar credenciales de MYSQL

# src/utils/db_config.py
DB_CONFIG = {
    'host': 'localhost',
    'user': 'user',
    'password': 'password',
    'database': 'recipe_manager'
}

Migrar la base de datos

python src/utils/db_migrate.py

Iniciar programa

python main.py

🎞 Demo

Haz clic aquí para ver el video

🎈 Vista Previa

  • Ventana Principal

App Screenshot

  • Ventana Agregar Receta

App Screenshot

  • Ventana Editar Receta

App Screenshot

  • Ventana Ver Receta

App Screenshot

⛏️ Tecnologias

✍️ Autor

About

Trabajo Integrador de Programación I de la Upateco - Aplicación de escritorio en la que puede crear, editar y eliminar recetas

Resources

Stars

Watchers

Forks

Languages