Loading repository data…
Loading repository data…
12r00t89 / repository
🧑🍳Chef Virtual es una aplicación en C++ que sugiere recetas según los ingredientes disponibles. Usa principios SOLID, clean code, pruebas automatizadas con Google Test y una arquitectura modular escalable. Carga recetas desde JSON y funciona por consola.
Chef Virtual es una aplicación de consola desarrollada en C++ que permite a los usuarios descubrir recetas en base a los ingredientes disponibles, mostrando tanto recetas completas como las que podrían elaborarse parcialmente con los ingredientes que se tienen. La aplicación está estructurada aplicando principios SOLID, diseño modular y pruebas unitarias automatizadas con GoogleTest.
.txtdata/recetas.json)ChefVirtual/
├── build/
├── data/
│ └── recetas.json
├── include/
├── src/
├── test/
├── CMakeLists.txt
└── README.md
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg install gtest
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=.\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
cd build/Release -> .\ChefVirtual.exe
.\ChefVirtualTests.exe
Para poder visaluzar todos los aspectos de la consola, por motivos de compatibilidad, es recomendable pero no obligatorio, utilizar:
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new()
sudo apt update
sudo apt install build-essential cmake libgtest-dev
cd /usr/src/gtest
sudo cmake .
sudo make
sudo cp lib/*.a /usr/lib
cd ~/ChefVirtual
mkdir build
cd build
cmake ..
make
ChefVirtual → Ejecuta la aplicación
ChefVirtualTests → Ejecuta las pruebas unitarias
./ChefVirtual
./ChefVirtualTests
ctest --output-on-failure
[
{
"nombre": "Tortilla Española",
"ingredientes": [
{
"nombre": "patatas",
"cantidad": "500g"
},
{
"nombre": "huevos",
"cantidad": "4"
},
{
"nombre": "cebolla",
"cantidad": "1"
},
{
"nombre": "aceite de oliva",
"cantidad": "100ml"
},
{
"nombre": "sal",
"cantidad": "al gusto"
}
],
"tiempo_preparacion": "45 minutos",
"pasos": [
"Pelar y cortar las patatas en rodajas finas.",
"Freír las patatas con la cebolla en aceite de oliva hasta que estén tiernas.",
"Batir los huevos con sal y mezclar con las patatas escurridas.",
"Verter la mezcla en una sartén y cuajar por ambos lados hasta dorar."
],
"sugerencias": "Puedes acompañarla con pan o servirla fría como tapa."
},
]