webpy

Esta mañana se me ha ocurrido la idea de hacer una aplicación para gestionar qué tengo que comprar y qué no. La idea era tener una lista de cosas con la fecha de la última compra y otra lista de cosas por comprar, y poder cambiar de una lista a otra fácilmente.
Me he puesto a ello con web.py y ya la estoy usando.
La aplicación es simple, muestra dos listas de articulos, una de artículos para comprar y otra con artículos que tenemos en casa.
Pasar de una lista a otra es tan fácil como marcar la casilla correspondiente y pulsar actualizar. Se pueden añadir nuevos artículos fácilmente desde la misma página.
Para realizar esta aplicación en un par de horas he utilizado webpysample, que es un ejemplo que hice hace un par de semanas de aplicación web básica con web.py. Este ejemplo ofrece una aplicación básica usando como orm sqlalchemy, con autenticación, uso de sesiones, etc.
¿Futuras mejoras?
Esta aplicación es realmente básica, pero se le podrían añadir una serie de mejoras para adaptarla a las necesidades de los pisos de estudiantes para gestionar todo lo necesario.
Una posible mejora sería la posibilidad de introducir el coste de la compra y que la propia aplicación divida el importe entre los usuarios y envíe un correo informando de lo que le debe y a quién se lo debe.
Otra posible mejora sería que la aplicación mostrara más información a cerca de qué se compra, frecuencia de compras, estadísticas, que sugiera por correo cuando determine un patrón de compra.
Bueno, a cada cual se le puede ocurrir una nueva mejora que estaría bien. Si usas esta aplicación para gestionar las compras de tu piso de estudiantes y te implementas alguna mejora hazmelas llegar para que las añada.
Esta aplicación se puede encontrar en mi repo, cualquier colaboración será bienvenida.

Desde hace ya algún tiempo estoy haciendo cosillas con el mini-framework webpy y hace poco se me ocurrió que estaría muy bien tener un gestor de contenidos (CMS) modular al estilo de drupal pero usando webpy para que hacer un módulo sea tan simple como definir una función.
Así está la cosa que desde hace un par de días estoy diseñando/implementado un CMS bueno, bonito y barato con python.
De momento tengo implementado el sistema básico de módulos, todavía sin acceso a base de datos, pero cada vez tengo más clara la forma de hacer que quede bien, usable y ampliable.
Para este proyecto me he montado un trac en el que voy a ir añadiendo documentación y tareas y desde donde voy a gestionar todo el proyecto, basta ya de usar forjas de terceros.
Edito: He movido el proyecto a la forja de sugus
Qué tengo ya y qué tengo pensado por el momento
Hoy he terminado la resolución de rutas hacia módulos. Un módulo define una serie de rutas con expresiones regulares 'ruta/(.*)' y cuando tú accedes a '/nombremodulo/ruta/parametro' se llama a la función del módulo determinada pasandole como argumentos los parametros que se definan en la ruta entre parentesis, al estilo de las urls con webpy.
Lo siguiente que tengo planeado es hacer la disposición y plantillas principales, pudiendo así definir zonas como cabecera, panel lateral, zona principal, etc dónde poder definir diferentes módulos a mostrar.
Un poquito más alejado en el tiempo queda la página de administración de módulos, el acceso a la base de datos, el módulo de autenticación, el módulo página/wiki, temas, etc. etc.



