[BuscoPeople.com] es una aplicación web orientada encontrar gente para compartir aficiones y practicar idiomas. Este es un proyecto personal en el que he querido unir todas las tecnologias que he ido aprendiendo a lo largo de mi carrera profesional. Con él espero poder ayudar a otra gente que como yo, busca encontrar a otras personas para realizar intercambios de idiomas.

Web application. BuscoPeople.com

Se pueden realizar busquedas dentro de las ciudades de los diferentes paises. O si lo desea, puedes realizar búsquedas mundiales. Para seleccionar tu ciudad debes hacer click, en la parte superior de la web, en la ciudad que previamente esté marcada, por defecto "World".

Web application. BuscoPeople.com

Puedes realizar la busqueda seleccionando más de un idiomas o habilidades, y ofreciendo más de un idioma o habilidad. La busqueda se realizará correctamente y te mostrará la lista de personas ideales para ti.

Web application. BuscoPeople.com

Los usuarios pueden escribir lo que buscan en una caja de texto e instantaneamente verán como las habilidades van desapareciendo y únicamente aparecen las de su busqueda. Esta búsqueda se realiza en todos los idiomas de la aplicación para facilitar la busqueda a los usuarios.

Web application. BuscoPeople.com

Los resultados de las busquedas se muestran en un listado paginado. En este listado podemos encontrar personas que complen con nuestros multiples criterios de busqueda.

Web application. BuscoPeople.com

Puedes realizar el envío de mensajes a otros miembros desde el listado de busqueda, desde el perfil del usuario, o desde el listado de mensajes recibidos. El historial de mensajes enviados/recibidos se puede revisar desde la pestaña de mensajes.

Web application. BuscoPeople.com

Tienes la posibilidad de añadir a tus favoritos a otros usuarios. Con esto, tu puedes comunicarte con el mucho más fácil y acceder directamente a su perfil .

Web application. BuscoPeople.com

Usted tiene la oportunidad de recibir un correo electrónico cuando otro usuario se comunica con usted y cuando un usuario te añade a sus favoritos. Para recibir estos correos electrónicos, debes de haber marcado la opción en datos de usuario.

Web application. BuscoPeople.com

El registro en la web se hace unicamente con un email válido y una contraseña. Después se puede añadir los otros datos si tu se deseas. Recibirá un email de registro que deberá validar para confirmar su cuenta y tener acceso a toda la funcionalidad de la web.

Web application. BuscoPeople.com

Desde la página de detalle de usuario se puede añadir y modificar sus datos. Para añadir una nueva habilidad, simplemente realice la búsqueda principal. Para eliminar una habilidad, pulse sobre la x. Para guardar sus cambios es necesario pulsar el botón Guardar Cambios.

Web application. BuscoPeople.com

Desde la página de detalle de usuario puede añadir una foto, o elegir un avatar entre los disponibles.

Web application. BuscoPeople.com

El usuario verá notificado si tiene nuevos mensajes por leer.

Web application. BuscoPeople.com

Funcionalidad Login/Logout.

Web application. BuscoPeople.com

Email recordatorio con tu password, que será recibido en el lenguaje del usuario.

Web application. BuscoPeople.com

La primera vez que un usuario visita a nuestra web, se detecta automáticamente el idioma del usuario y es transparentemente redireccionado a su idioma. También disponemos de una Base de datos de IP's por paises que nos ayuda a detectar automáticamente el pais del usuario que se conecta a nuestra web.

Web application. BuscoPeople.com

En la imagen mostramos la arquitectura completa de la aplicación. Se puede observar claramente su división en 3 capas: la capa de presentación, la capa de lógica de negocio, y la capa de acceso de datos. Las capas son resumidas a continuación.

Web application. BuscoPeople.com

La arquitectura de aplicación consta de tres capas lógicas. La capa de presentación contiene los componentes que implementan y muestran la interfaz de usuario y gestionar la interacción del usuario. Esta capa incluye controles para la entrada del usuario y la pantalla, además de los componentes que organizan la interacción del usuario (ASP.NET). La capa de lógica de negocio, por su parte, representa las reglas de negocio que se aplican a través de la lógica de programación (instrucciones de computadora) con respecto a cómo se aplican esas reglas (C#.NET). La capa de acceso de datos consta de las definiciones de tablas y columnas de base de datos y la lógica del ordenador que se necesita para navegar por la base de datos. La capa de acceso a datos de hace cumplir las normas en cuanto al almacenamiento y acceso de la información (ENTITY FRAMEWORK).

Web application. BuscoPeople.com

La capa de presentación se ha desarrollado utilizando el framework .NET para aplicaciones web desarrollado y comercializado por Microsoft (ASP.NET). En nuestra arquitectura: todas las páginas utilizan una PÁGINA MAESTRA común, heredan de una clase base que contiene las funcionalidades comunes, y todas las páginas están compuestas por CONTROLES DE USUARIO configurables. Todas éstas las páginas utilizan HELPERS con funcionalidades comunes. Con esto no tenemos que repetir la funcionalidad en ninguna parte de la aplicación. Todos mis proyectos se apoya en una libreria (KERNEL_UI.dll) que contiene la funcionalidad común para todos los proyectos web que yo realizo (angellapuente.com with ASP.NET, BombaDeHumo in android,...).

Web application. BuscoPeople.com

La capa de lógica de negocio representa las reglas de negocio que se aplican a través de la lógica de programación con respecto a cómo se aplican esas reglas. Nuestra capa de lógica de negocio se ha desarrollado utilizando el lenguaje de programación C#.NET del framework .NET de Microsoft. En nuestra arquitectura está dividida en dos subcapas: Fulfillment Business Logic Layer (FBLL) y Business Logic Layer (BLL). En ellas se encargan también de la CACHE, la autentificación, la autorización, Acoplamiento y cohesión, GESTIÓN DE EXCEPCIONES, el inicio de sesión y la validación.

Web application. BuscoPeople.com

Una de las partes más importantes de la aplicación es la capa de persistencia. Es importante que sea consistente, flexible y transparente para el nivel de aplicación sin mezclar las consultas sql o crear manualmente las clases y repetir funcionalidad. He trabajado con varias herramientas, desde las más rudimentarias clases estáticas con métodos que ejecutaban sql "a pelo" o clases generadas a mano que usaban una instancia de DataRow. Hasta que fué incluido Entity Framework (EF) y LINQ to Entities en el framework 4.0 de .NET. Este proyecto ha sido desarrollado utilizando Entity Framewok. Entity Framewok está preparado para modelar la capa de datos de una forma más generica y flexible. Nos hemos apoyando en una base de datos Microsoft SQL SERVER.

Web application. BuscoPeople.com

LINQ to Entities proporciona la capacidad de realizar consultas integradas en lenguajes (LINQ) que permite a los desarrolladores de software escribir consultas contra el modelo conceptual de Entity Framework mediante Visual Basic o Visual C#. Las consultas con Entity Framework se representan mediante consultas de árboles de comandos, que se ejecutan en el contexto del objeto. LINQ to Entities convierte las consultas de Language-Integrated Queries (LINQ) en consultas de árboles de comandos, ejecuta las consultas en Entity Framework y devuelve objetos que se pueden usar tanto en Entity Framework como en LINQ.

Web application. BuscoPeople.com

Este es el Esquema de base de datos sobre Entity Framework todavia en desarrollo.

Web application. BuscoPeople.com

Está programado un mantenimiento períodico y revisión de la Base de Datos. Que incluye: Comprobación de coherencia de la base de datos, administración de archivos de datos y archivos de registro, fragmentación de índices, estadísticas, detección de daños, reducción de tamaño y copias de seguridad.

Web application. BuscoPeople.com

Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional.

Web application. BuscoPeople.com

Un servicio web es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Es una máquina que atiende las peticiones de los clientes web y les envía los recursos solicitados. Nosotros hemos utilizado un pequeño Web Service para poder comunicarnos desde una aplicación ANDROID (Desarrollada con Mono for Android) con nuestra aplicación Web. Esta comunicación se realiza a través de un Web Service ASMX.

Web application. BuscoPeople.com

Los test unitarios le ayuda a garantizar la exactitud de su programa mediante la verificación de que el código de la aplicación hace lo que se espera que haga. En las pruebas unitarias, se analiza la funcionalidad de su programa para descubrir comportamientos discretos comprobables que puede probar como unidades individuales. Se utiliza un marco de pruebas de unidad para crear pruebas de esas conductas y reportar los resultados de esas pruebas. Test Explorer proporciona una manera flexible y eficiente para ejecutar las pruebas unitarias y ver sus resultados en Visual Studio.

Web application. BuscoPeople.com

El envío de mensajes a otros miembros se realiza mediante técnicas en javascript, AJAX. Tu puedes enviar multiples mensajes a multiples usuarios, sin recargar la página web, ya que todo se realiza de manera invisible al usuario.

Web application. BuscoPeople.com

Los filtros instantaneos de búsqueda han sido realizados en Javascript. De este modo, se realiza toda la funcionalidad de cribado en el propio cliente web. Existe la posibilidad de filtrar por tipos las habilidades, y de buscar una determinada habilidad mediante la escritura en una caja de texto. Instantaneamente verán como las habilidades van desapareciendo y únicamente aparecen las de su busqueda. Esta búsqueda se realiza en todos los idiomas de cada habilidad para facilitar la busqueda a los usuarios.

Web application. BuscoPeople.com

La primera vez que un usuario visita a nuestra web, se detecta automáticamente el idioma del usuario y es transparentemente redireccionado a su idioma.

Web application. BuscoPeople.com

Para mostrar los diferentes listados de la aplicación se han utilizado los elementos de .NET ListView Web Server Control y DataPager. El numero de elementos que contiene cada página es establecido en los parámetros de configuración en el fichero web.config.

Web application. BuscoPeople.com

Web.config es el archivo principal de opciones de configuración para una aplicación web en ASP.NET. El archivo es un documento XML que define información de configuración concerniente a la aplicación web. El archivo web.config contiene información que controla la carga de módulos, configuraciones de seguridad, configuraciones del estado de la sesión, opciones de compilación y el lenguaje de la aplicación. Los archivos web.config pueden contener también objetos específicos tales como cadenas de conexión a la base de datos. En nuestro caso cabe destacar la utilización de variables globales de la aplicación, redefinición del tamaño máximo de las peticiones, configuración de las sesiones y cookies, permisos de seguridad, ensamblados de la app, redirecciones en caso de error y modulos. Cabe destacar la utilización del módulo RewriteModule que se explica en otro apartado.

Web application. BuscoPeople.com

Autocompletado de emails con Javascript usando jQuery.

Web application. BuscoPeople.com

Existe un módulo en la aplicación encargado de la generación de todas la rutas de la aplicación. Con esto tenemos centralizadas todas las URLs que genera la aplicación. Es mucho más sencillo realizar cambios. El módulo se ha creado genérico para ser reutilizable en cualquier otra aplicación Web.

Web application. BuscoPeople.com

El estándar de exclusión de robots, también conocido como el protocolo de la exclusión de robots o protocolo de robots.txt es un método para evitar que ciertos bots que analizan los sitios Web u otros robots que investigan todo o una parte del acceso de un sitio Web, público o privado, agreguen información innecesaria a los resultados de búsqueda. Los robots son de uso frecuente por los motores de búsqueda para categorizar archivos de los sitios Webs, o por los webmasters para corregir o filtrar el código fuente.

Web application. BuscoPeople.com

Para cada una de las fotos que un usuario sube a la web se realiza un tratamiento previo. Es realizado un cambio de tamaño, reducción de peso e inclusión de una marca de agua personal. Todas las fotos pasan una supervisión para eliminar posibles imagenes falsas, indeseadas, o imagenes con copyright. Para esto hemos creado un módulo (Helper_Foto) encargado de procesar todas las imagenes que cada usuario sube a la web.

Web application. BuscoPeople.com

Google AdSense es, junto con Google AdWords, uno de los productos de la red de publicidad en línea de Google. Básicamente, permite a los editores obtener ingresos mediante la colocación de anuncios en sus sitios web, ya sean de texto, gráficos o publicidad interactiva avanzada. Estos anuncios son administrados y ordenados por Google en asociación con los anunciantes de AdWords a través de un sistema complejo de subasta instantánea. Google usa una serie de tecnologías para mostrar anuncios relevantes a los visitantes, ya sea indexando el contenido de los sitios web, la ubicación geográfica y otros factores (incluyendo promociones especiales de grandes marcas). Esto garantiza a los anunciantes llegar al público que buscan, al tiempo de entregar anuncios útiles a los usuarios. Todos los recursos de AdSense provienen de la inversión de los anunciantes de Google AdWords, el cual es un complejo modelo de subasta instantánea donde compiten los anuncios con más rendimiento para el editor.

Web application. BuscoPeople.com

Registro de dos pasos es una característica simple que pide una confirmación por correo electrónico. Esto ayuda a confirmar que el usuario ha iniciado la sesión correctamente con una dirección de correo electrónico válida. Si el usuario no valida su dirección de correo electrónico, no puede utilizar todas las funcionalidades de la página web.

Web application. BuscoPeople.com

Registramos las direcciones IPs desde las que acceden nuestros usuarios para añadir una mayor seguridad en caso de problemas legales, y para poder utilizarlas para nuestras propias estádisticas de uso de nuestros usuarios. También disponemos de una Base de datos de IP's por paises que nos ayuda a detectar automáticamente el Pais del usuario que se conecta a nuestra web.

Web application. BuscoPeople.com

Disponemos de un sistema de BackOffice para poder gestionar los datos de todos nuestros usuarios, corregir posibles errores en la introducción de datos por parte de los usuarios, eliminar mensajes considerados inadecuados, eliminar usuarios, e incluso suplantar la identidad de los usuarios en la web con una manera transparente para corregir posibles incidencias.

Web application. BuscoPeople.com

Se guardan en una tabla de base de datos los eventos más importantes. Guardamos la fecha, datos de usuario(IP, Identificador de usuario, Pais de acceso) y la acción que el usuario ha realizado. Acciones que dejan traza en el Log son login, logout, mensajes entre los usuarios y envío de Email.

Web application. BuscoPeople.com

También disponemos de una Base de datos de IP's por paises que nos ayuda a detectar automáticamente el Pais del usuario que se conecta a nuestra web.

Web application. BuscoPeople.com

Un sprite de imagenes es una colección de imágenes puestas en una sola imagen. Una página web con muchas imágenes puede tardar mucho tiempo en cargarse y genera múltiples peticiones al servidor. El uso de Sprites reducirá el número de solicitudes al servidor y ahorrará ancho de banda. En nuestro caso, tenemos más de 150 imágenes en la página inicial, lo que causa que el tiempo de carga sea muy alto pese a que el tamaño total no es muy alto. Considero que la solución a este problema es utilizar CSS Image Sprites. Una vez aplicado los tiempos de conexion ahora son menores. Desde Google Chrome podemos ver el "Waiting (TTFB)" (El tiempo dedicado a la espera de la respuesta inicial, también conocido como el tiempo al primer byte. Esta vez capta la latencia de ida y vuelta al servidor, además del tiempo de espera para el servidor para entregar la respuesta) y darnos cuenta que esta optimización es necesaria. Una vez aplicada esta técnica el tiempo de carga se ha reducido a menos mitad, bajando de 4 segundos a 1.8.

Web application. BuscoPeople.com

En el caso de nuestra aplicación podemos reducir considerablemente el numero de acceso a base de datos. Detectamos que elementos de la base de datos permanecen constantes durante toda la ejecución de la aplicación. Entre estos elementos destacamos las habilidades (Idiomas, profesiones...), estos elementos serán cacheados en la capa de negocio junto con sus traducciones en cada uno de los idiomas de la aplicación. Esta caché será renovada periodicamente para detectar si se ha introducido desde el BackOffice una nueva habilidad. El tiempo de renovación de cache será establecido en los parámetros de configuración en el fichero web.config.

Web application. BuscoPeople.com

Un motor de reescritura es un software ubicado en un marco de aplicación Web que se ejecuta en un servidor Web que modifica la apariencia web de las URL's. Muchos usuarios han llegado a referirse a esta función como un "router". Esta modificación se llama la reescritura de URL. Las URLs reescritas (a veces denominados cortas, bonitas o URLs de lujo, amigas de los motores de búsqueda - SEF URLs, o babosas) se utilizan para proporcionar url más cortas y más relevantes buscando enlaces a páginas web. La técnica añade una capa de abstracción entre los archivos que se utilizan para generar una página web y la URL que se presenta al mundo exterior. Las reglas de aplicación de este módulo se encuentra en el fichero de configuración web.config. Estas reglas son definidas como expresiones regulares. El modulo encargado de esta funcionalidad se encuentra en el proyecto RewriterModule. Esta técnica es muy util para técnicas de SEO y posicionamiento en buscadores. Gracias a ella creamos URL amigables para los buscadores que nos ayudan a conseguir un posicionamiento mejor.

Web application. BuscoPeople.com

La aplicación está preparada para crear metadatos nuevos multilenguaje cuando se crean nuevas páginas. Esto nos garantiza que cada nueva busqueda en la aplicación, tiene unos metadatos autogenerado distintos que se corresponden con el contenido de la página. Entre los metadatos generados se encuentran el título, la descripción, keywords y lenguaje. Para esto hemos creado un módulo encargado de generar automáticamente estos metadatos a través de la información procesada para la creación de la página. Gracias a esto podemos generar miles de páginas automáticamente con información combinada de todas las posibles busquedas de la aplicación e ir posicionandonos en los buscadores.

Web application. BuscoPeople.com

Creación dinámica del listado de páginas que se van apareciendo en la aplicación web. Generamos automáticamente un listado de páginas con la combinatoria de las posibles busquedas que pueden realizarse en la aplicación. Con esto hacemos accesibles por parte de los buscadores y los usuarios las nuevas páginas con información de los nuevos usuarios que se dan de alta en la web. Generamos también una nueva página con el detalle público de cada usuario. Este Sitemap es revisado por los buscadores de forma períodica como hemos establecido en la configuración.

Web application. BuscoPeople.com

Redirección HTTP desde www.BuscoPeople.com to BuscoPeople.com para no tener url duplicadas con la misma información.

Web application. BuscoPeople.com

Google Analytics es herramienta de Analítica Web de la empresa Google. Ofrece información agrupada del tráfico que llega a los sitios web según la audiencia, la adquisición, el comportamiento y las conversiones que se llevan a cabo en el sitio web. Se pueden obtener informes como el seguimiento de usuarios exclusivos, el rendimiento del segmento de usuarios, los resultados de las diferentes campañas de marketing online, las sesiones por fuentes de tráfico, tasas de rebote, duración de las sesiones, contenidos visitados, conversiones (para ecommerce), etc.

Web application. BuscoPeople.com
[Visit BuscoPeople.com]
Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.