Aplicaciones e-commerce

Aplicacion e-commerce

Especificación:

Si necesidad de estar logeado, el visitante puede:

1-Buscar artículos por tipo o eventos: la aplicación le muestra una lista con el nombre, el precio y una foto de cada artículo listado.
2-Ver el detalle de un artículo: cuando el visitante selecciona un articulo la aplicación le muestra el detalle con todos los datos de artículo, todos los talles que hay de ese artículo, todos los colores que hay. Aparece seleccionado el primer color y se muestran todas las fotos de ese color que hay del artículo. Al seleccionar otro color de ese artículo, la aplicación carga todas las fotos que se tienen de color y de ese artículo.
3-Agregar el articulo a la compra: luego de seleccionar el talle, el color y la cantidad, el visitante puede agregarlo a la compra, si ya estaba agregado, se suma la cantidad que estoy agregando a las que había previamente en el carrito de compras.

* Si el visitante agrego artículos a la compra y cierra la página sin haberse logeado, mas tarde cuando vuelva a abrir la aplicación en la misma máquina, el visitante puede continuar con la compra, agregando artículos al mismo carrito de compras que tenía antes de cerrar la pagina, o realizar el pago de esa compra.
* Si el visitante agrego artículos a la compra y cierra la pagina habiéndose logeado, mas tarde cuando vuelva a abrir la aplicación en cualquier maquina y se logee, el visitante puede continuar con la compra, agregando artículos al mismo carrito de compras que tenía antes de cerrar la pagina, o realizar el pago de esa compra.
Sigue leyendo

Aplicaciones financieras

Aplicacion financiera, desarrollo de modulo para conectar con Veraz y Codeme

Definimos una clase, cliente veraz, con un método, obtener informe veraz, que devuelve un objeto, informe veraz.

Un cliente de veraz tienen muchas cosas en común con un cliente de codeme, ambos son clientes de bureau financieros, por lo tanto, definimos que ambas clases, cliente veraz y cliente codeme, hereden de cliente bureau financieros.

Un informe veraz tiene muchas cosas en común con un informe de codeme, ambos son informes financieros, por lo tanto definimos que ambas clases,  informe veraz e informe codeme, hereden de informe financiero.

Definimos una clase, políticas crediticias, con un método, conceder crédito, que recibe un objeto de tipo informe financiero, puede ser un informe de veraz o un informe de codeme y devuelve verdadero si el informe financiero que recibe pasa todas las políticas que tiene la empresa para otorgarle un crédito a alguien, devuelve falso en caso contrario, esto es si el informe financiero que recibe el método conceder crédito, de la clase políticas crediticias, no pasa todas las políticas que tiene la empresa para otorgarle un crédito a alguien.

Sigue leyendo

Email marketing

Email marketing: desarrollo de un administrador de listas de distribucion

Distribuye tu boletín o newsletter con las más completas y eficaces herramientas de administración de listas, intercambia mensajes, crea encuestas, comparte datos, archivos y fotos, crea tu propio servicio de alertas, tu foro de debate.
Te permite distribuir puntualmente varios millones de mensajes en apenas unas pocas horas, convirtiendose en la plataforma ideal para que usted realice sus campañas de marketing o comunicación electrónica de una forma rápida y efectiva.
En su forma más amplia, sus listas de distribución incluirán, salvo que se especifique lo contrario, las siguientes características:

• Mensajes y miembros ilimitados
• Acceso web. Los mensajes enviados son archivados
• Formularios y métodos automatizados de altas y bajas
• Formato de los mensajes (texo, HTML, etc)

Sigue leyendo

Portal de contactos

Portal de contactos

Caracteristicas funcionales:

El usuario se inscribe creando un perfil con un nick, contraseña, presentación, descripción, preferencias sexuales, lugar de residencia y puede subir fotos, todo esto lo puede modificar cuando entra a su cuenta. Cuando finaliza la inscripción se le envía un email con sus datos de ingreso. El usuario ingresa a su cuenta con su nick y contraseña. Puede modificar sus datos, subir y borrar fotos, buscar perfiles y enviar mensajes o email escribiendo el nick del destinatario o si la conoce su dirección de correo. También podes votar a los otros perfiles dándole un puntaje entre 0 y 10. Cada cuenta tiene un buzón de mensaje. Los mensajes se pueden leer, reenviar, responder o borrar.  En la portada de la pagina se muestran los nick de los 50 últimos inscriptos, el perfil con la presentación y descripción de los 4 perfiles mas votados y una cita aleatoria. También podes buscar desde la portada y sin estar inscritos perfiles por lugar de residencia y preferencias sexuales. Además en la portada tiene un link para el foro y la revista. Si  no estas inscrito y entras a algunos de los submenú (buscar, foro, revista o ver el perfil), cuando  queres enviar un mensaje o ir a otro menú te lleva a la pagina de inscripción. La aplicación registra cuantos email y mensajes a enviado y recibido cada usuario.

Sigue leyendo

Red social tematica

Red social de recetas de cocina.

Funcionalidades:

-Registracion de usuario
-Crear una receta, con fotos, tags
-Modificar una receta, modificar las descripción, eliminar, y subir otras fotos, etc
-Mostrar una receta y sus fotos
-Eliminar una receta
-Valorar una receta creada por otro usuario.
-Escribir un comentario a una receta creada por otro usuario
-Buscador de recetas por ingredientes, por tag, por opiniones o valoraciones

Sigue leyendo

Implementacion de FTP

Implementacion de FTP (File Transfer Protocol)

Defino la clase servidor Ftp con dos métodos que tienen las siguientes propiedades

Signatura:
_servidorFtp.EnviarDato(string)
_servidorFtp.RecibirDato(integer)-> (string, bool)

Primera propiedad:
_servidorFtp.EnviarDato(xy);
(s,r)   = _servidorFtp.RecibirDato(k)

Tiene que ser equivalente a

_servidorFtp.EnviarDato(x);
_servidorFtp.EnviarDato(y);
(s,r)  =  _servidorFtp.RecibirDato(k)

Esto es, tiene que dar el mismo resultado enviar el texto de instrucciones completo o enviar el texto de instrucciones fragmentados en partes. Un ejemplo, enviando 2 instrucciones:

_servidorFtp. EnviarDato (‘get_file_listing\r\nget_metadata archivo1.txt\r\n’);
(desconectar, resultado) =_ServidorHftp.RecibirDato(k);

Tiene que ser equivalente a

_servidorFtp. EnviarDato (‘get_file_lis’);
_servidorFtp. EnviarDato (‘ting\r\ng’);
_servidorFtp. EnviarDato (‘et_metadata ar’);
_servidorFtp. EnviarDato (‘chivo1.txt\r\n’);
(desconectar, resultado) =_ServidorHftp.RecibirDato(k);

Sigue leyendo

Modelos con logica

Modelado de un torneo de futbol

Desarrollo de un modelo logico de torneo de futbol y prueba en alloy
http://alloy.mit.edu/alloy/

En el modelo se consideraron los siguientes tipo abstractos:
Equipo, Canchas, Partido, Fecha

Los equipos que van a participar en el torneo, por ejemplo River, Boca,
extienden el tipo abstracto Equipo.
Solamente puede haber un equipo del tipo que extiende, por ejemplo River hay uno solo.

De manera similar con Canchas, Partido y Fecha.

Cada Equipo tiene su propia Cancha.
Un partido se juega entre dos Equipos y en una Cancha.
Un equipo juega un partido de local si el Partido se juega en su Cancha.
En cada Fecha se pueden jugar varios Partidos y todos los Partidos se tienen que jugar en alguna Fecha.
La próxima fecha de una fecha es la mayor fecha menor o igual que todas las fechas mayores.
Todos los Equipos tienen que jugar por lo menos un Partido.

Sigue leyendo →

Desarrollo de un IDE

Desarrollo de un editor de aplicaciones web

Presiona el botón editar para ver el código fuente.
Con el menú del costado izquierdo selecciona el ejemplo: Paginación (desarrollado con COMET) u Ordenación (desarrollado usandométodos formales).
El código fuente lo podes ver presionado el botón editar, que esta en el menú superior.
Luego también en el menú superior podes seleccionar: .cs te muestra el código c#, si seleccionas .js te muestra el código JavaScripty si seleccionas .aspx te muestra los tag html.
En el ejemplo Paginación, el código interesante esta en la ventana .cs (c#)
En el ejemplo Ordenación, el código desarrollado esta en la ventana .js (JavaScript)
Para ejecutar el ejemplo presiona el botón probar.

Sigue leyendo →

Modelo relacional

Todo sistema almacena y usa información. Mostraremos que información mantenemos en el portal de contactos para buscar pareja. Primero definiremos todos los atributos y las dependencias funcionales, usando reglas de inferencia obtendremos un cubrimiento reducido y mínimo. De esta manera evitamos mantener información redúndate y potenciales insconsistencias que podrían surgir al modificar o actualizar los datos. Implementaremos los esquemas y las consultas en sqlserver y mysql.

Sigue leyendo

Métodos formales

Mostrare esta metodología con un ejemplo: en muchas aplicaciones el usuario ingrese datos y tenemos que mostrarlos ordenados. Aunque la mayoría de los lenguajes tienen funciones para ordenarlos, generalmente no conocemos que procedimiento de ordenación implementa el lenguaje, ni mucho menos su complejidad temporal. Por esto es interesante implementar nuestro propio algoritmo de ordenación y demostrar que propiedades tiene.
Escribo una especificación formal de un vector ordenado,  usando expresiones cuantificadas y Ternas de Hoare. A partir de esta especificación derivo usando axiomas y reglas de calculo de programas dos algoritmos de distinta complejidad temporal y espacial.
Como uno de los algoritmos usa una pila, defino el tipo de dato pila usando especificación algebraica y escribiendo una función de abstracción  implemento una pila con un vector. La corrección formal de los dos algoritmos obtenidos con respecto a la especificación formal puede asegurarse  por la forma en que fueron construidos.
Por ultimo implemento ambos algoritmos en una pagina DHTML usando JavaScript.

Sigue leyendo →

Desarrollo con UML

Desarrollo de aplicaciones web usando UML

Los lenguajes y herramientas orientadas a objeto no son una panacea para construir sistemas orientados a objetos.Por ejemplo un problema es el incremento en la complejidad del sistema debido a la fuerte interacción de los objetos. Un proceso de desarrollo de software correcto ayuda a producir un buen producto. La metodología nos brinda una preselección de las  técnicas a usar en cada etapa del desarrollo de software (especificación, diseño arquitectónico, detallado e implementación).
Usaremos esta metodología en un ejemplo interesante y practico: en todas las aplicaciones donde tenemos que buscar un conjunto de registros de una base de datos y mostrarlos en el browser, tenemos que paginarlos para mostrarlos en varias paginas. Por ejemplo el buzón de correo de hotmail o el buscador google, no muestra todos los resultado encontrados en una pagina, muestra n registros por paginas, y botones siguientes y anterior.
Especificare usando casos de uso este ejemplo y del análisis de los casos de uso encontramos los objetos que necesitaremos. Luego se desarrollara el diagrama de colaboración consolidado, a partir de este se hará el diagrama de clases y mostraremos la lógica de eventos de las tareas.
Mediré el nivel de acoplamiento y cohesión que tiene el sistema, pues esta medida influye en las siguientes cualidades: manteniblidad, entendibilidad y modificabilidad
Por ultimo se implementara en ASP.NET(c#) y sql-server(transact-sql)

Sigue leyendo