Backend¶
lgs-backend es un nuevo proyecto que vamos a comenzar para disponer de
herramientas alrededor de LGS para poder administrarlo y realizar tareas
automáticamente como exportar e importar información. Además queremos
que sea la herramienta para introducir datos de una manera amigable.
lgs-backend no pertener a lgs-server. lgs-backend es un proyecto a
parte, que estará desarrollado en GWT, y desde 1 misma instancia de este
proyecto se podrán controlar N lgs-server (uno a uno).
1 - Ideas para las funcionalidades del backend:¶
- Acceso anónimo/login.
- Selección de servidor con el que trabajar.
- Añadir/Eliminar/Editar Capas, Contenidos y Usuarios.
- Añadir contenido temporalmente.
- Interfaz amigable con mapas para subir contenido o visualizar los existentes.
- Procedimientos para importar/exportar desde/hacia un servidor LGS (en un formato especificado).
- Utilidad para generar capas de información sin necesidad de conectarse a un servidor.
- Mandar contenidos a correos electrónicos u otras fuentes.
- Realizar las mismas peticiones que el cliente: busqueda de nodos segun distancias, tipos, etc...
- Especificación de la localización ya sea para añadir contenidos desde nuestra posición, como para buscarlos.
- Acceso a todas las release?? (descargar los apk para instalarlos en un terminal o emulador).
- Cuando accedes con login, se carga una lista de los nodos actualizados, añadidos o borrados desde la última conexión (pudiendo especificar un radio).
2 - Estudio del diseño del sitio y busqueda de themes¶
Arbol del sitio:¶
Funcionalidades del sitio:
- En la pantalla de selección de servidor, se puede especificar "ninguno" y trabajar sobre el backend sin conexión a ninguna base de datos, para hacer pruebas, o simplemente para preparar algunos contenidos y pedir que sean exportados.
- El acceso al servidor requiere el nombre de este, el usuario, y el password. Por supueto habra una opcion para darse de alta en el servidor.
- Una vez dentro del servidor, si eres administrador, podrás acceder a todo sin tener en cuenta la privacidad. Si por el contrario eres usuario estandar, solo podrás acceder a las opciones teniendo en cuenta la privacidad del servidor.
| Usuarios > | Añadir
| | Lista > | Modificar
| | Borrar
| | Ver Perfil
|
| Perfil
|
|
| Layers > | Añadir
| | Lista | Modificar
| | Borrar
| | Exportar layer
| | Nodos > | Modificar
| | Borrar
| | Añadir/importar
| | Exportar nodos
|
| Search -> | By Location
| | By Pattern
|
| LastChanges |
|
| Settings -> | Set Url Server
| | Set Username & Password
|
|- LGS-client |
|
|- Soporte > | Demo del backend
| Quienes somos
Sin entrar en busquedas de themes, encontre una web de la que posiblemente saquemos lo que buscamos, la dejo aquí anotada para mas adelante:
Temas candidatos:¶
http://www.free-css.com/free-css-templates/page7/bright-side-of-life-1.0.php#bookmarks
http://www.free-css.com/free-css-templates/page7/greenpiece.php#bookmarks
http://www.free-css.com/free-css-templates/page9/genious-web.php#bookmarks
http://www.free-css.com/free-css-templates/page10/internet-broadcast.php#bookmarks
http://www.free-css.com/free-css-templates/page13/integral.php#bookmarks
http://www.free-css.com/free-css-templates/page19/internet-jobs.php#bookmarks
La idea es dos lineas de pestañas o menus y submenus, una para saber el menu en el que estamos, y luego dentro de el mas opciones en la segunda linea.
3 - Comienzo del desarrollo.¶
Histórico:
- Tras unas primeras pruebas de toma de contacto, nos damos cuenta que la parte más problematica va a ser las llamadas al servidor. Como el backend tiene código Ajax, al acceder a un servidor fuera de nuestro dominio, se dan problemas de SOAP. Esto será solucionado con JSONP y deberá ser posible pedir tal formato al servidor, con lo cual la fase de llamadas va a quedar en espera de los cambios en el servidor. Ahora nos pondremos a hacer un primer diseño del arbol html y a subir ese código.
(23-11-2010)
- Ya se ha creado un repositorio git para el desarrollo, el código se puede descargar aquí: http://git.libresoft.es/lgs-backend/ y actualmente esta en desarrollo, con lo cual no tiene ninguna funcionalidad.
- Localizados los cambios a realizar en el servidor para la devolución del JSONP, en breve se publicaran los cambios en el trunk del proyecto.
(30-11-2010)
- Primera fase de GWT, actualmente podemos controlar toda la web desde el código gwt, gracias a la clase uibinder, que nos permite diseñar un html desde una plantilla xml que hace de puente entre el código html y el de gwt. También podemos controlar los accesos a hipervínculos con las clases referentes al historial, con lo cual podemos tener un único html, para controlar toda la aplicación.
- Maqueta montada y que se actualiza cada día en: http://backend.libregeosocial.org/
(1-12-2010)
- Inserción de código gwt directo a los UI creados con UIBinder mediante la implementación de widgets, lo que nos permitirá añadir mapas directamente escritos con código gwt ( con los api ya existentes ) o simplemente añadir formularios creados con código gwt.
- Revisar que opción nos es más favorable, si hacer formularios desde gwt, o bien hacerlos con html ( uibinder ) y luego pasarle los parametros. A la larga es lo mismo, ya que gwt combierte su código.
- Estos cambios se subirán en brebe, junto con los menus laterales del ui.
(10-12-2010)
- La UI está preparada y subida. Se puede comprobar en la máqueta montada.
- Ahora vamos a pasar a comunicarnos con el servidor de lgs que modificamos, tenemos preparadas las llamadas GET, pero lo primero que nececitamos es logearnos y guardar las coockies. Con lo cual el primer paso es hacer un POST y comprobar si se guardan correctamente las coockies. A partir de ahi, es ir creando los formularios.
(25-01-2011)
- Comunicaciones con el sevirdor conseguidas. Actualmente tenemos que hacer algunas pruebas con los navegadores para ver que funciona con todos. En principio y según las terminologías, funciona en firefox, chrome y safary, pero según nuestras pruebas los dos últimos no van, tenemos que realizar pruebas de cabeceras como se muestra en los comentarios de la siguiente web: http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/
- Comenzado el parséo de los datos en json recividos de el servidor, siguiendo como guía los parseos realizados por el cliente de lgs en android.
(10-02-2011)
- Los parseos finalizaron con exito, y en la maqueta se reflejan algunos datos sacados del servidor.
- Ahora se plantean algunas mejoras:
- El sistema de listado del que disponemos, no es lo suficientemente robusto, tendriamos que crear las listas mediante un widget, el problema es como crear un widget dinamico, y como acceder a sus variables para rellenar las tablas.
- Actualmente, cuando llegan los datos, la propia funcion en JSNI manda una llamada a una funcion en GWT para parsear y rellenar las tablas. Nos planteamos el caso de que el JSNI devuelva la informacion, y sea GWT quien espere por ellos, y luego mande su parseo. Hay que buscar una forma de hacer esperas de funciones asincronas.