Comenzando el cliente web

GECO's picture

Teniendo ya implementado un servidor funcional con un frontend xmlrpc y un cliente funcional de terminal es hora de empezar la parte más importante del proyecto que es el cliente web.

Buscando entre el gran número de frameworks para desarrollo web en python me encontré casi sin querer con web.py que es un framework ultrasencillo que concuerda con mi filosofía de desarrollo, las cosas lo más simple posibles.

¿Cómo implementar el cliente web?

Basandonos en el cliente de terminal es casi tan simple como
eso. No tenemos ni que tratar con bases de datos, ni con modelos complejos, puesto que gecolib ofrece una serie de métodos que hacen todas las operaciones que tendrá que hacer este cliente. Por lo tanto tan solo tenemos que hacer la interfaz, pedir datos y mostrar datos.

De momento tengo desarrollado el login y el registro en la aplicación, quizás en el registro falte un captcha para evitar que se registren bots.


gecoweb1.png

El estilo ya lo tenía decidido de hace algún tiempo, algo simple, pero con alto contenido en colores fuertes, llamativo y a la vez elegante.

He utilizado imágenes para los botones, con un suave degradado, un alto contraste entre la fuente y el fondo y una ligera sombra difuminada. El svg se puede conseguir del repo, posiblemente la fuente te salga diferente porque no la tendrás, se llama "Orange".


gecoweb2.png

Web.py tiene un módulo simple que genera formularios con validación, y un sistema de templates con una sintaxis muy parecida a python, por lo que facilita en gran medida el desarrollo. Por otra parte este "framework" no requiere de gran tiempo de aprendizaje y no por ello se pueden hacer menos cosas, si dominas python, este es tu framework de desarrollo web.

El mayor problema al que me he tenido que enfrentar en esta etapa del desarrollo ha sido a la hora de almacenar el objecto gecolib.GecoClient en una sessión de webpy. Al ser un objeto que contiene una conexión xmlrpc no es posible almacenarlo, por lo que he optado por almacenar la "cookie" de geco y modificar el constructor para que acepte un parametro cookie y no sea necesario pasar por el método auth.

Mañana espero tener al menos la vista de las contraseñas de un usuario autenticado.