Reseña del proyecto: indexar.com.ar

Introducción

Indexar es un portal de medios que agrupa noticias de diferentes medios, mostrando la pluralidad de las opiniones y los enfoques de cada medio, permitiendo a los lectores formar su propia opinión sobre los acontecimientos:

Modalidad de trabajo

Comenzamos el proyecto realizando reuniones para conocer a los socios que realizan el emprendimiento y las ideas que estaban interesados en desarrollar.

Luego de realizar el presupuesto de la primer etapa, nos pusimos a implementar las tareas definiendo entregas semanales y objetivos a alcanzar. Tanto para nosotros como para el cliente, es muy importante comunicarnos y visualizar el avance del proyecto semana a semana, de esa forma podemos interiorizarnos en el negocio y construir software mientras se utiliza, con prioridades claras y mucha interacción.

Este es uno de los boards que fuimos elaborando en el trayecto del desarrollo:

Diseño adaptable

El diseño se construyó de modo tal que sea accesible desde cualquier dispositivo moderno, como celulares, tablets o equipos de escritorio.

Materialice cuenta con componentes de maquetado que nos permitieron hacer un diseño adaptable, que permite “acomodar” los elementos dependiendo del tamaño en pantalla del usuario:

¿Cómo funciona?

El sistema completo se desarrolló de modo tal que los usuarios puedan acceder a las noticias de manera inmediata, como si se tratara de una aplicación nativa. Así que optamos por implementar la portada utilizando tecnologías modernas como ember y materialize.

Internamente, la aplicación funciona gracias a varios componentes: el usuario ingresa a un portal desarrollado con emberjs, lo que permite que pueda navegar y acceder a las notas muy rápidamente. El estilo y maquetado del sitio lo construímos usando materialize, que es una solución conocida para estandarizar y lograr diseños adaptables y accesibles desde cualquier dispositivo moderno.

Cada contenido dinámico, como los agrupamientos y secciones, se carga desde un servidor de datos o API que entrega la información en formato json. Este servidor está implementado con laravel y mysql.

A su vez, para los editores existe la posibilidad de ingresar en un segundo portal para modificar el contenido completo del sitio, generar agrupamientos nuevos, seleccionar el formato de la portada y varias tareas más.

Proceso de recolección de datos automático

Para simplificar la carga de notas, la plataforma también cuenta con un proceso de recolección de notas a través de RSS de medios externos. El proceso está construido con el lenguaje de programación python y se ejecuta de forma periódica y automática en el servidor.

Tecnologías utilizadas

Las tecnologías son muy importantes para el éxito del proyecto, no solamente permiten poner en funcionamiento al sistema, también son parte de lograr un desarrollo confiable, rápido, que se pueda mantener y modificar en el tiempo con facilidad.

Git

Los dos proyectos permanecen en repositorios privados, así toda la historia paso a paso del proyecto está resguardado y es fácilmente transportable a otros entornos.

En los repositorios también contamos con los scripts para automatizar backups, publicar actualizaciones de la aplicación y realizar versiones.

Frontend

Las dos tecnologías más visibles para los lectores del sitio son ember y materialize. Ember nos permite lograr un sitio rápido y con respuesta inmediata para los usuarios, ya que implementa la lógica de navegación y datos directamente en el navegador, y haciendo que funcione incluso con cortes de conexión o mucha latencia de red.

Ember también es un framework que incorpora varias soluciones y patrones conocidos para realizar este tipo de aplicaciones. Por ejemplo, ember incorpora un adaptador que se encarga de realizar el intercambio de información con el backend de forma muy sencilla.

En la siguiente captura se puede ver el inspector de google-chrome, mostrando las peticiones que se realizan al backend para mostrar la portada del sitio. Se puede ver cómo varias peticiones se ejecutan en paralelo y el resultado json:

Ember también incorpora serializadores, para que los datos obtenidos desde el backend se puedan administrar usando modelos internos y un store offline.

En la siguiente imagen se muestra el inspector de ember detallando las colecciones de datos, con relaciones y valores:

Backend

En este proyecto en particular recibimos algunos componentes del backend semi-realizados. El modelo de la base de datos, la tecnología web, y el sistema interno de selección de noticias estaban desarrollados con laravel (un framework web) y mysql (un sistema de base de datos).

Aplicación backend para editores y administradores

Para que los redactores puedan elaborar y organizar el contenido del sitio el backend incorpora una interfaz de administración dividida en secciones:

Ver más

Estos son algunos links adicionales: