martes, 30 de diciembre de 2014

Cliente web sobre Aemet - Información del tiempo

Hola de nuevo

El proyecto aemetProject es un sencillo cliente RESTful web para leer la información meteorológica que suministra Aemet, la Agencia Española de Meteorología.

Puede accederse a la aplicación en:


La información obtenida en la página web de aemet es servida en formato xml. Cada localidad tiene un xml con diversos datos e información meteorológica.

Las características técnicas del proyecto son las siguientes:

  • Lenguaje de programación: Java EE 1.7
  • IDE: NetBeans 7.4
  • Front-End: JSP - Servlets
  • Back-End: No procede.
  • Datos: Servicio RESTful en xml.
  • Otros: Html5 - css3 
  • Servidor de aplicaciones: JBoss 7.1
  • Herramienta de administración: Maven

La aplicación aemetProject obtiene la información meteorológica de las más importantes localidades de la Comunidad de Madrid. Al entrar en la aplicación, es posible seleccionar la población de la cual se quiere obtener la información.



La aplicación se conectará a la página web de la Aemet, obtendrá los datos xml del servidor; esa información será procesada, y mostrará los datos más importantes del día.





La información es mostrada en pantalla a través de un formulario, donde se hacen constar los datos principales del día como son temperaturas, humedad, estado del cielo y probabilidad de lluvia.


martes, 25 de noviembre de 2014

SportCalendar, calendario de actividades deportivas

Hola:

SportCalendar es un proyecto JavaEE para la confección de una agenda o calendario de actividades deportivas. En ella se pueden almacenar los datos de nuestro trabajo físico realizado, pudiendo almacenar el tiempo, distancia, desnivel y los comentarios u observaciones pertinentes.


Previamente a guardar una actividad, se deben dar de alta tanto el deporte (natación, senderismo, ciclismo, running, etc) como la actividad (5000 mts, lisos, 4x100 libres, ruta del Cares, etc). Cada actividad tendrá una características concretas. Una vez grabados esos datos, cuando hayamos realizado una actividad solo deberemos ir a la agenda, pulsar en el día que corresponda y dar de alta la actividad, aceptando o modificando los datos previamente grabados.

Las características técnicas del proyecto son las siguientes:

  • Lenguaje de programación: Java EE 1.7
  • IDE: JDeveloper 12c
  • Front-End: JSF 2.1
  • Back-End: JPA 2.0
  • Base de Datos: mySql 5.6
  • Otros: Html5 - css3 - JQuery (control de formularios)
  • Servidor de aplicaciones: WebLogicServer 12.1.3 y JBoss 7.1
  • Herramienta de administración: Maven
  • Control de versiones: GitHub
  • Test: JUnit 4

He aquí la representación gráfica del fichero faces-config.xml, en donde se muestra la navegación entre las distintas páginas xhtml de la aplicación:




La página "central" de la aplicación es la agenda. Desde aquí se pueden realizar operaciones CRUD de los deportes y actividades realizadas, así como hacer consultas estadísticas, moverse por los distintos meses o días, dar de alta actividades realizadas en los días correspondientes, modificar o eliminar, etc.etc.





Las estadísticas no son nada del otro mundo... los típicos selectores desplegables, para elegir por filtros tipo "y/o" las variables deportes, actividades y fechas. La información mostrada corresponde a los totales según los filtros seleccionados, y los promedios correspondientes.






He colgado la aplicación en OpenShift. OpenShift es un proyecto de Red Hat; consiste en un PAAS, es decir, un proveedor de servicios, aplicaciones y mantenimiento de éstas. Los servidores de OpenShift son JBoss 7.1, configurados para trabajar con java, y aunque son un poco complejos de configurar, me han servido de aprendizaje con JBoss remoto.



jueves, 9 de octubre de 2014

ExpoFoto, un sencillo visor de fotografías

Hola:

Mientras desarrollo algunas aplicaciones java, he aprovechado para implementar un visor de fotografías en Html5, con PHP y JQuery. Nada complejo ni pretencioso, una cosa sencilla y que me permita mostrar fotos a mis amigos a través de la web.

Consiste en una aplicación en Html5 que contiene un visor de fotografías escrito en JQuery. El visor de diapositivas pasa las fotografías una a una, siendo posible clickar en las fotos y poder observarlas ampliadas a tamaño real. En PHP hay una simple rutina que lee el directorio completo y vuelca cada una de las fotos al html de forma dinámica. Como dije, algo relativamente sencillo y fácil de programar.

Lenguaje de programación: Html5 - PHP5.5 - JQuery
Herramienta de administración: Maven
Control de versiones: Subversion

Servidor de php: wampserver 2.5
MySql 5.6

Aquí una imagen de como queda el proyecto.






miércoles, 3 de septiembre de 2014

fmsFacturación, una aplicación práctica y sencilla para facturar.


Una nueva aplicación java para el ámbito de la administración: fmsFacturación es una aplicación para emitir facturas de forma rápida, sin tener que depender de una costosa "suite informática" con cientos de opciones que normalmente no vamos a utilizar.

La aplicación está pensada y diseñada con dos objetivos:
     a) Que sea fácil de utilizar, sin una elevada curva de aprendizaje
     b) Que la información (las facturas) sea transportable vía excel.

Los listados que genera la aplicación pueden ser en formato .pdf o en formato .csv (exportable a excel), lo cual permite exportar la información a otras aplicaciones si viene al caso.

Características de la aplicación:
  • Lenguaje de programación: Java SE 1.7
  • Spring Framework
  • Persistencia: ficheros de texto no codificados
  • Herramienta de administración: Maven
  • Control de versiones: Subversion
  • Test: JUnit 4
Esta aplicación está desarrollada con Spring Framework. En una aplicación SE de estas características no existen grandes diferencias ni ventajas en la utilización de Spring.


La aplicación tiene las opciones administrativas de datos de empresa, creación de cuentas de IVA, IRPF y formas de pago.

Además tiene las opciones de clientes, creación de albaranes y finalmente de facturación.


Los menús son los clásicos y sencillos menús de creación, modificación, borrado y listados. Existe una breve ayuda en cada pantalla (en info). Los campos no permiten la introducción de datos erróneos. Además, la existencia de selectores en muchos campos simplifica la introducción de datos.

La aplicación 1.1 no permite multiempresa. Tampoco facturación en régimen de equivalencia. Los albaranes, facturas y resumenes pueden ser impresos en formato .pdf y generar ficheros exportables .csv. Los albaranes no permiten la introducción de más de 3 artículos. Las facturas pueden contener hasta un máximo de 25 artículos. El programa es apto para profesionales, porque permite facturación con retención.

Esta versión 1.1 tiene muchas funcionalidades limitadas ¡al fin y al cabo es software gratuito! El que quiera control de stocks y otras lindezas, puede contactarme para estudiar el tema. :)

lunes, 9 de junio de 2014

Personal Diet Project en versión SE

No siendo ajeno al hecho de que Personal Diet Project en versión EE no era accesible al gran público ;-) , a sugerencia de mis amigos y por aclamación popular, he desarrollado la versión de escritorio en Java SE.

El cambio de implementación lo he hecho en 2 fases. Primeramente he desarrollado una versión SE pero manteniendo la persistencia de los datos en JPA. Y luego, la capa de persistencia ha sido transformada, para que los datos queden grabados en ficheros de texto no codificados.

El cambio de implementación ha sido relativamente sencillo gracias a la aplicación del modelo M-V-C en la construcción del projecto en EE. Siendo así, los ficheros java del paquete models no sufrieron cambio alguno, el paquete controls sufrió algunos cambios con plena compatibilidad (y algún fichero añadido), y solamente fue necesario cambiar, obviamente, las clases encargadas de la vista.

La aplicación ha sido empaquetada en un .jar autoejecutable, evitando así la necesidad de instalación. El único requisito para el buen funcionamiento es que los ficheros de datos .dat que genera y la aplicación estén en el mismo directorio.

Lenguaje de programación: Java SE 1.7
Persistencia: ficheros de texto no codificados

Herramienta de administración: Maven
Control de versiones: Subversion

Test: JUnit 4

Este es el aspecto de la aplicación de escritorio:





Es posible descargarse la aplicación desde el siguiente enlace:


Recomiendo bajarse también el fichero foodsdata.dat, que contiene grabados una serie de alimentos de uso común en nuestra dieta. La grabación del resto de alimentos que usualmente consumáis corre de vuestra cuenta. XD


viernes, 25 de abril de 2014

The Personal Diet Project


The Personal Diet  Project es una aplicación diseñada para el control de la dieta alimentaria del usuario. En ella el usuario puede crear sus propios platos o usar la base de datos de alimentos, y tener controlada su ingesta de calorías, proteínas, calcio y hierro (entre otros), y por tanto, saber si tiene cubiertas sus necesidades nutricionales, en base a sus propios parámetros personales.


Concebida inicialmente para Java SE, nace con vocación para dispositivos móviles, pero que ha sido primeramente desarrollada en Java EE.

¿Porqué primero en EE? Por la sencilla razón de que quería emplear PrimeFaces 3.5 en su capa "vista", para mejorar mi dominio de esa biblioteca. Normalmente cuando desarrollo una aplicación multientorno empiezo desarrollando primero el proyecto en Java SE, defino las tres capas y cuando la aplicación está perfectamente implementada y construida sobre firmes bases, entonces la duplico en Java EE. En este caso el proceso está siendo de EE --> SE.


Lenguaje de programación: Java EE 1.7
Front-End: JSF 2.1.17 Mojarra y PrimeFaces 3.5
Persistencia: JPA 2.0

Control de formularios: JQuery
Herramienta de administración: Maven
Control de versiones: GitHub

Servidor de aplicaciones: GlassFish 4.0
MySql 5.1.23
Test: JUnit 4


Esta es una imagen de la aplicación, al 99% de desarrollo.



Un detalle técnico en relación a la pantalla principal (la de la imagen), es que esa página es un template compuesto: la página cliente implementa un template que a su vez implementa otros cinco templates que componen la cabecera, el pie de página, el lateral izquierdo, el derecho, y el centro. El motivo de implementar cinco templates es que permite la modificación y actualización de componentes de forma independiente, sin que afecte al diseño y funcionamiento del resto de componentes de la página.

jueves, 24 de abril de 2014

Keeper of the code keys, una utilidad "muy util" ;-)

Keeper of the code keys 2.5 es una utilidad diseñada para almacenar, de una manera segura, todas las contraseñas y claves de acceso a programas, emails, cuentas bancarias, etc.

Esta sencilla aplicación de escritorio está desarrollada en java 7, y su desarrollo ha sido realizado mediante la implementación del modelo MVC, lo cual facilita no solo su mantenimiento y/o ampliación, sino su posible migración a otros entornos/plataformas, como pudiera ser Android.

Lenguaje de programación: Java SE 1.7
Persistencia: fichero de datos codificado.
Herramienta de administración: Maven
Control de versiones: Subversion, GitHub
Test: JUnit 4






Lo más importante de Keeper of the code keys es que incorpora un sistema de cifrado del fichero de datos con triple codificación dinámica de seguridad. Este sistema no garantiza (¿quién puede?) una inexpugnabilidad total de desencriptado, pero casi... desde luego, es mucho más seguro que tener las claves apuntadas en una libreta, o guardadas en un fichero excel ;-)

El siguiente enlace te permite descargar el fichero .jar desde la web. El fichero no requiere instalación, ya que es autoejecutable :-) . El fichero de datos lo instala en el mismo directorio donde coloques el fichero.



miércoles, 23 de abril de 2014

InversionApp, una aplicación con versiones Java SE y EE

InversionApp es una aplicación pensada para llevar el control de las inversiones realizadas en bolsa y otros mercados como renta fija, etc.

La aplicación permitía grabar cuentas de inversiones, comisiones, el cálculo de costes de las operaciones, y listado de las operaciones de compraventa registradas.

La implementación del modelo MVC era fundamental, ya que, aunque la aplicación estaba originalmente pensada para desarrollarse en Java SE, posteriormente se desarrollaría en J2EE.

Lenguaje: Java SE 1.7
Persistencia: serialización en ficheros de datos codificados.
Administración del proyecto: Maven.
Control de versiones: Subversion.





Esta misma aplicación ha sido posteriormente desarrollada en Java EE, y el objetivo ha sido realizar una implementación doble tanto en la capa de persistencia (versión Hibernate y versión JPA) como en la capa de cliente (versión JSF y versión JSP-Servlet):


He aquí el aspecto que tenía en la versión JSF - Hibernate:

Lenguaje: Java SE 1.7
Persistencia: Hibernate 4.0 
Front-End:  JSF 2.1 Mojarra
Servidor: JBoss 7.1
Administración del proyecto: Maven
Control de versiones: GitHub




La capa de negocio es básicamente la misma, con algunas adaptaciones sobre todo en el caso de la implementación JSP-Servlet.

Después de esta aplicación, se alcanzaron los objetivos propuestos de conseguir modificar la arquitectura de la aplicación, migrándo el proyecto desde SE hasta J2EE, así como cambiar la implementación de las capas de cliente y/o persistencia con un mínimo coste de horas. Para ello, fue fundamental la adecuada construcción del proyecto según el modelo MVC.

sábado, 19 de abril de 2014

Página web de Ecovitalia

Ecovitalia era una empresa dedicada a la comercialización de productos alimentarios, cosméticos, infusiones, etc., todos ellos ecológicos y/o naturales.

Los clientes de la tienda online debían registrarse obligatoriamente para realizar sus compras. Los clientes tenían descuentos, información sobre productos, promociones especiales, etc.

He aquí una vista de las páginas de la tienda online, que aún está colgada en la web, aunque la tienda no está operativa ya que la empresa cerró en 2012. Puede visitarse la página en www.ecovitalia.es



En cuanto a su realización, esta web estaba desarrollada en HTML 4.01 Transitional, CSS 2, utilizaba JavaScript para el control de formularios y el carrito en la zona privada, y como lenguaje de programación PHP 5, siendo las bases de datos MySql. La parte colores, diseño, etc. se realizó según las instrucciones del cliente.

Como página web estaba estructurada en un diseño por grupos de productos, seleccionables mediante un botón superior, y luego a su vez por secciones. También ofrecía la posibilidad de buscar por marcas o por productos, dentro del grupo seleccionado.

En la zona privada el cliente podía tener acceso al historial de productos, a sus facturas, a la relación de pagos efectuados, etc. También ofrecía la posibilidad de pagar mediante paypal.

Página web de tevitalia

Tevitalia era una empresa dedicada al mundo del té, a través de la cual se vendían tés ecológicos de diversas partes del mundo, además de tés gourmet, infusiones de hierbas, productos de aromatización, complementos, etc.

La página web estaba estructurada en dos bloques diferentes pero interrelacionados: la tienda online y las páginas de información.

He aquí una vista de las páginas de info, perteneciente a la sección que permanece actualmente colgada en la web, ( dirección www.tevitalia.es) ya que la empresa cerró en 2012.


















Técnicamente hablando, la web estaba desarrollada en HTML 4.01 Transitional, CSS 2, algo de JavaScript para el control de formularios, y como lenguaje de programación PHP 5. El diseño, los colores y el formato visual en general se realizó según las instrucciones del cliente.

Como página web estaba estructurada en un diseño clásico, con una página de entrada que mostraba los productos a promocionar y las últimas novedades, así como el acceso a las páginas de información y a la tienda online.

Dentro de la tienda online se ofrecían los productos con un diseño clásico de fichas, carrito de la compra, enlace paypal, etc.