El cubicator3000 es una aplicación para optimizar los cortes de las construcciones de proyecta y desplegar el resultado a través de una visualización amigable que puede ir directo al manual. Actualmente esta disponible en versión web (Flask) y versión de escritorio (tkinter).
Gracias a @JoseAlamos por la idea y versión original y a @shgoldfarb (2016-1) por la versión 2.0 con cplex.
La aplicación web consiste en una simple aplicación flask y una sóla vista HTML/CSS practicamente estática. Cada vez que se llama al cubicador se generan archivos temporales que se eliminan una vez creado el zip final.
El manejo de errores no esta implementado.
La instalación y desarrollo de la aplicación es mediante un contenedor de docker y docker-compose (basado en esto). Por lo que basta tener instaladas ambas herramientas para hacer funcionar todo. Para comenzar clonar el repositorio y dentro de la carpeta:
sudo docker-compose build
Con eso se descargan todas las dependencias (incluyendo python). Luego para montar la aplicación:
sudo docker-compose up
Y podrás ver la aplicación en localhost.
Las dependencias se manejan mediante docker y pip, por lo que para agregar una debes ponerla en el archivo
requirements.txt
dentro de la carpeta app
.
Dentro de la carpeta app
se encuentra todo, cubicator
corresponde al módulo de optimización, main.py
es la
aplicación flask y en temp
se guardan los archivos temporales. El resto de las carpetas sigue las convenciones tradicionales
de flask.
Para deployar la aplicación basta montar el servidor con docker como se explica arriba ya que el contenedor ya incluye la
instalación y configuración de Nginx. (con el flag -d
queda corriendo como daemon.)
- Hielo @ironcadiz
- Sam @shgoldfarb