Proyecto tipo: Bot para publicar artículos automáticamente

PROBLEMA

El cliente quiere publicar artículos automáticamente sin la necesidad de intervención humana en su web que está gestionada por un CMS (WordPress).

Proporciona una serie de temáticas y quiere que los artículos tengan cierta actualidad.

Se publicará un artículo cada semana.

PROPUESTA

Se hará una investigación de fuentes de información de donde sacar información de actualidad sobre las temáticas indicadas. Se elegirán 3.

También se buscarán fuentes de información relacionada aunque no sea de actualidad. Se elegirán 2.

Se hará un análisis para determinar cual es la mejor lógica para componer todo lo que se pueda obtener de las distintas fuentes de información en un único artículo con sentido.

Se planteará una plantilla para el formato de los artículos.

Las fuentes que no sean de actualidad se preprocesarán para dejar los datos preparados para los siguientes 2 años tras la puesta en marcha. Adicionalmente, se creará un manual para que cualquiera con conocimientos mínimos pueda repetir dicha tarea cuando se precise.

Se programará el código del bot, teniendo dos componentes principales:

  • Una araña que examine las distintas fuentes de actualidad y recopile la información.
  • Un bot que sea el que efectivamente se encargue de publicar artículos automáticamente en el WordPress del cliente.
Tecnologías

Se usará Python o PHP en función de comprobaciones pendientes de los servidores del cliente, para el código fuente de los dos programas planteados.

Como almacenamiento, dado que no se requiere una gran persistencia y hay mucha tolerancia a errores, se usará SQLite.

El cliente deberá proporcionar acceso de administrador a su instalación de WordPress o realizar las siguientes acciones para el testing y la puesta en marcha:

  • Proporcionar un usuario que tenga permisos de creación de artículos pero no de publicación para el testing.
  • Proporcionar un usuario que tenga permisos para publicar articulos en el WordPress.
  • Realizar las modificaciones necesarias en su instalación de WordPress para asegurar la disponibilidad de la API Rest y alguno de sus plugins de autenticación.

PRECIO

3.700€

TIEMPO

Estará disponible en 2 semanas para verificación por parte del cliente y la puesta en producción, que llevará otra semana. Dado que los artículos se publican cada semana, el primero saldría publicado un mes tras la aporbación del presupuesto.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta podría ser diferente en estos momentos.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto tipo: Chatbot buscador

PROBLEMA

El cliente quiere proporcionarle a una tienda online un chatbot buscador de elementos que ayude a los usuarios.

La web dispone de un buscador que no se puede reutilizar.

La base de datos de los elementos no se encuentra accesible.

El chatbot deberá de funcionar igual para los clientes de cualquier parte del mundo.

PROPUESTA

Dado que hay muchas incertidumbres en cuanto al uso, el flujo de conversación y otros puntos del proyecto, que pretende ser de una embergadura muy amplia, se propone hacer un prototipo de chatbot buscador que cumpla con los siguientes puntos que se han acordado con el cliente:

  • El prototipo trabajará con los datos proporcionados por el CLIENTE al PRESTADOR, sobre los elementos ofertados por su cliente.
  • El idioma que entenderá y con el que contestará el prototipo será el castellano, o español de España.
  • Salvo que durante el SEGUIMIENTO DE LA EJECUCIÓN DEL CONTRATO se
    determinase lo contrario entre ambas partes, para la implementación del prototipo se emplearán los servicios de Azure proporcionados por Microsoft.
  • La entrega del prototipo incluye el asesoramiento y respaldo a la hora de la creación de cuentas y de todo lo que sea necesario para realizar su despliegue.
  • La entrega del prototipo incluye la entrega de una estimación de costes de ejecución en base al número de usos que se dé al servicio.
  • El prototipo a desarrollar, será similar al presentado en el ejemplo RealEstateBot proporcionado por Microsoft.
En concreto se implementarán:
  • Una ETL que convierta los datos originales al formato más adecuado.
  • Una base de datos distribuida sobre Azure Cosmos DB.
  • Un motor de búsqueda que será reutilizable en la web y otros servicios, empleando Azure Search.
  • Un motor para el chatbot basado en Azure Bot Service.
  • Se montarán entornos de preproducción y producción.
  • El código se almacenará en un repositorio Git.
  • Se montará un sistema de integración continua con Azure DevOps.

PRecio

6.400€

Tiempo

Dadas las incertidumbres del proyecto, el tiempo de desarrollo será de entre 3 semanas y 3 meses.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta podría ser diferente en estos momentos.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto tipo: ICO personalizada

PROBLEMA

Se trata de facilitar a un tercero la creación de una moneda virtual (ICO personalizada).
Así mismo habrá que implementar los medios necesarios para facilitar a sus usuarios la compra-venta de dicha moneda.

Por el momento no está claro para qué se usará dicha moneda, por lo que sólo se considerará un activo digital para acumulación de valor/especulación sin la posibilidad de intercambiarlo directamente por bienes o servicios. Si posteriormente se optase por esta opción, se plantearía una extensión a este desarrollo inicial.

Para la creación de la moneda virtual se pueden seguir diferentes estrategias, por ejemplo:

  • Implementar un token sobre Ethereum
  • Crear una criptomoneda completamente independiente
  • Crear una moneda digital centralizada

Cada uno de estos tiene unos pros y unos contras pero para consideración de este presupuesto, por lo tratado con el cliente, se valorará sólo la primera opción.

Como herramientas para que los usuarios puedan interaccionar con la moneda las opciones también son variadas, considerándose en este presupuesto la planteada por el cliente: web site adaptado para móviles al estilo de Coinbase pero para esta única moneda.

El cliente proporcionará los diseños y estos podrían hacer que variase el presupuesto, por lo que estos deberán proporcionarse antes de comenzar el proyecto para su evaluación, y en su caso modificación de este presupuesto.

Los componentes que contendrá son:
  • Portada
  • Login
  • Dashboard
  • Compra
  • Venta
  • Balances
  • Histórico de transacciones
  • Configuración/Perfil
  • Pasarela de pago (1)
  • Pasarela de cobro (1)
  • Notificaciones por correo electrónico

Toto el sistema se implementaría sobre Azure, el cloud de Microsoft, por ser un proyecto pensado para una corporación y ser Microsoft el principal proveedor de software y servicios corporativos.

Los gastos variables de sistemas y de transacciones entre contratos de Ethereum correrán a cargo del desarrollador durante el desarrollo y la ejecución de pruebas. Dichos gastos, durante la fase de despliegue y ejecución en producción correrán a cargo del cliente, no estando incluidos en este presupuesto.

PRECIO

En la tabla de precio se incluyen algunos componentes opcionales cuyos importes no están sumados al importe final.

Tarea Opcional Precio
1 Auditoría de contratos a extender no 3000
2 Implementación de nuevos contratos no 1500
3 Preparación de infraestructura no 1200
4 Portada no 600
5 Login no 1200
6 Dashboard no 2400
7 Compra no 1200
8 Venta no 1200
9 Balances no 600
10 Histórico de transacciones no 600
11 Configuración/Perfil no 600
12 Pasarela de pago (1) no 1200
13 Pasarela de cobro (1) no 1200
14 Notificaciones por correo electrónico no 600
15 Pasarela de pago adicional si 800
16 Pasarela de cobro adicional si 800
17 Diseño si 1200
Total no opcionales 17.100,00€

Tiempos

El proyecto tiene una estimación de tiempo de entrega de 4 (cuatro) meses, desde la fecha de inicio de los trabajos.

El tiempo podría reducirse a la mitad incrementando el presupuesto en un 50%.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta podría ser diferente en estos momentos.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto tipo: Integración PayPal-Telegram

Problema

El cliente requiere una aplicación que integre las APIS de PayPal y Telegram y que sirva como centro de control para un negocio que tiene en marcha.

Integracion-PayPal-Telegram

El cliente tiene un canal “premium” de Telegram en el que los usuarios pagan por estar.

El pago se realiza por PayPal mes a mes y tiene que puntear los pagos con los usuarios para banear a mano a quienes no han pagado.

Actualmente no se avisa al usuario de que no ha pagado.

Requiere una aplicación de Windows que integre Paypal-Telegram de tal modo que se pueda gestionar esto del modo más sencillo posible y que la aplicación sea lo más barata posible.

Concepto

Elaboración de una aplicación para Windows que permita conectar una cuenta de Paypal y un canal de Telegram (integración PayPal-Telegram). Esta, permitirá al operador vincular las cuentas de correo de los pagos recibidos en Paypal, con los usuarios del canal de Telegram, permaneciendo esa asociación guardada para el futuro. Permitirá expulsar a los usuarios del canal que no hayan pagado la cantidad indicada por el operador en el último mes.

Precio

Tarea Opcional Precio
1 Vincular cuenta Paypal No 840,00€
2 Obtener cobros último mes Paypal No 420,00€
3 Vincular cuenta Telegram No 840,00€
4 Obtener miembros canal telegram No 420,00€
5 Ventana para asociar miembros canal con mails paypal No 420,00€
6 BBDD para guardar asociaciones No 210,00€
7 Permitir banear a todos los que no hayan pagado en el último mes No 210,00€
8 Permitir readmitir a un usuario concreto 210,00€
9 Permitir mandar un correo de aviso de baneo a todos los que no hayan pagado en el último mes 420,00€
10 Tests de integración No 420,00€
11 Hacer un instalador 105,00€
12 Ventana de ayuda 52,50€
13 Mandar un mensaje con foto al canal de Telegram 420,00€
14 Recibir cobros por Telegram 840,00€
Total no opcionales 3.780,00€

Tiempos

El proyecto tiene una estimación de tiempo de entrega de 2 (dos) meses, desde la fecha de inicio de los trabajos.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta habría sido distinta.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto tipo: Recomendador para app de relatos 2 (usando k-means)

PROBLEMA

El cliente solicita la elaboración de dos apartados:

  • Sistema de recomendación basado en Machine Learning
  • Sistema de detección de tendencias

En la entrevista con el cliente se llega a la conclusión de que lo que en el fondo quiere es aumentar el tiempo de uso de la app y la recurrencia de uso: la retención.

Además, necesita comenzar a almacenar datos para posteriormente explotarlos.

PROPUESTA

Para el primer problema empezaría por implementar algunas estrategias que no requieren servicios externos, para así comenzar a tener datos y ver cuales de ellas son las que mejor funcionan. Por ejemplo:

  • Al acabar una historia proponer de 1 a 3 recomendaciones: una random, otra random de la misma categoría, otra random del mismo autor.
  • Si se incluyesen tags para afinar la categorización de las historias, incluiría una cuarta recomendación en el punto anterior.
  • Cuando se abandona una historia preguntaría si se quiere guardar el progreso (y así saber si hay interés en ella).
  • Gestionar el progreso que se lleva en cada historia.
  • A las 6h, 12h, 24h, 48h del último uso lanzaría una notificación con texto del último párrafo leído de la última historia si se dejó a medias, o el primero de una recomendación del tipo que mejor esté funcionando para ese usuario (por categoría, autor, random, o tags si se implementan).
  • Incluir fotos de los personajes y una vista de su perfil.

Todo esto se puede gestionar con facilidad desde la propia aplicación, y entendiendo que la empresa dispone de desarrolladores para esa parte, por el momento no se presupuestará.

Por petición del cliente se presupuesta la elaboración de un sistema de recomendación sin esperar a tener información previa de si las recomendaciones incrementarán sustancialmente el tiempo de uso y la recurrencia de la aplicación.

El sistema de recomendación estará basado en el algoritmo de machine learning k-means que busca los vecinos que se parecen al usuario actual para determinar cuáles son las historias que le podrían gustar, y es uno de los principales algoritmos empleados en los sistemas de recomendación.

patos k-means

Tal como hablamos en la visita realizada, es un sistema más similar al de Amazon que al de Netflix, ya que se tiene en cuenta el histórico del usuario individual. Este sistema tendrá en cuenta:

  • Relatos que un usuario ya ha visto, para no volver a mostrarlos.
  • Relatos que un usuario ha acabado, entendiendo que le han gustado.
  • Relatos que un usuario ha abandonado, entendiendo que le han disgustado.

En base a esa información, buscará a los usuarios a los que les haya gustado y disgustado los mismos relatos que al usuario en cuestión, y en base a ellos obtendrá otros relatos que les hayan gustado y que el usuario actual no haya leído.

El algoritmo k-means es un algoritmo colaborativo similar al que usa Amazon, pero dado el bajo número de elementos del catálogo (cientos de millones frente a cientos) no se precisa una optimización de este para poder aplicarlo.

Para mitigar la falta de información con usuarios nuevos, se valorarán también otras variables que se pueden obtener desde el momento de instalación de la aplicación como son el modelo del terminal, la compañía proveedora de conexión, etc.

El sistema quedará preparado para que cuando se introduzcan valoraciones realizadas de manera consciente por los usuarios (like/dislike o puntuación), los cambios a realizar sean los menos posibles. En concreto, sólo habría que cambiar el servicio de ETL que convierta los eventos capturados en la matriz de votos.

Las tareas y componentes necesarios para este apartado, son los que constan en la tabla de precios como Comp. 2, puesto que al alimentarse del otro, debería de implementarse en segundo lugar. Los componentes principales de este sistema serán:
Servicio ETL que transforme la información de los eventos recibidos y la obtenida del catálogo de relatos en una matriz de valoraciones.

  • Servicio de perfiles de usuario en base a variables del sistema.
  • Servicio de preprocesado de matriz de valoraciones.
  • Servicio de recomendación.

Para la captación de datos para su explotación, los principales actores son 3:

  1. Google Analytics. El problema que tiene es que en el momento que se quieren exportar datos se necesita la versión premium que tiene un coste de $150.000 USD al año.
  2. Mixpanel. Una solución de análisis que dispone de APIs para integrarla con cualquier sistema y poder exportar los datos. Su precio es de $999 USD al año. Es una buena solución siempre que no se vuelva poco flexible, ya que a la larga te tienes que amoldar a sus posibilidades.
  3. Una solución a medida que permita guardar cuantos datos se desee en el formato que se prefiera, para que posteriormente se les puedan dar distintos tratamientos para obtener distintas informaciones ya sean en modo de servicio para proveer de nuevas funcionalidades a la aplicación, informes, datos tratados para su venta. Es una buena solución en cuanto a relación flexibilidad y coste.

Dado que las dos primeras opciones sólo requieren realizar modificaciones en la aplicación, se presupuestará sólo la tercera.

A partir de tener los datos almacenados mediante cualquiera de los sistemas, posteriormente se podrán tratar para cubrir cualesquiera necesidades surjan:

  • Obtener perfil de uso y progreso de un usuario.
  • Obtener recomendaciones a medida de un usuario.
  • Creación de informes.
  • Búsqueda de patrones de comportamiento.
  • Envío de notificaciones personalizadas.
  • Etc.

CONCEPTO

Elaboración de un servicio que reciba datos para identificación del dispositivo/usuario y una colección de eventos (1..N) para almacenar todas las acciones que haya realizado el usuario. El paso de datos se hará en formato JSON de tal modo que la definición de la estructura pueda ir variando con el tiempo sin necesidad de modificar el servicio.

El hecho de permitir mandar varios eventos, permitirá que no se pierda información cuando la aplicación se use offline. Además permitirá no estar realizando comunicaciones constantes si por ejemplo se decide registrar cada uno de los “scroll” que se hacen en las historias para seguir leyendo, pudiendo guardarse cada 10 scrolls por ejemplo.

A petición del cliente se usaría Azure.

Se propone para la computación usar Azure Functions, ya que permite que el sistema escale de manera automática y no pagar nada cuando no hay uso del servicio.

Para el almacenamiento se sugiere el uso de Azure Cosmos DB, una base de datos orientada a documentos, que permite almacenar cualquier tipo de estructura de datos, pudiendo cambiarse esta sobre la marcha, permitiendo así introducir nuevos datos que se haya visto con el uso que pueden ser útiles.

PRECIO
Tarea Comp. Precio
1 Preparación de sistemas 1 400,00€
2 Creación servicio 1 1.400,00€
3 Pruebas de carga 1 300,00€
4 Documentación 1 300,00€
5 Migración a sistemas cliente 1 400,00€
Subtotal 1 2.800,00€
6 Preparar BBDD 2 400,00€
7 Servicio ETL 2 1.200,00
8 Servicio perfiles 2 900,00
9 Servicio de preprocesado 2 1.800,00
10 Servicio de recomendación 2 1.500,00
Subtotal 2 5.800,00€
TOTAL 8.600,00€
TIEMPOS

El componente tiene una estimación de 1 (un) mes. El segundo componente tiene una estimación de 2 (dos) meses, si bien se podría acortar el tiempo de desarrollo a la mitad incrementando el presupuesto de dicho componente en un 30%. El tiempo total de desarrollo del proyecto, por tanto, sería de 3 (tres) meses.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades existentes, la propuesta habría sido distinta.

Se han omitido nombres de empresas y productos.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto Tipo: Mostrar mapas gratis, instalación de Nominatim

PROBLEMA

El cliente tiene la necesidad de mostrar mapas gratis de centro américa.

En la empresa han valorado las distintas opciones y creen que la mejor es montar un servidor con Nominatim (el motor de OSM *) para servir mapas de Open Street Map.

Han intentado instalarlo varias veces sin éxito, probando sobre distintas versiones de Linux (CentOS, Ubuntu 16 y Ubuntu 18).

CONCEPTO

Se trata de montar un servidor con el servicio Nominatim y mapas de América Central. Para lo cual el cliente proporcionará un servidor con las siguientes características mínimas:

  • Intel core i3 4170, 1 TeraByte de disco duro y 8 GigaByte de RAM
  • Ubuntu 18.04
  • Conexión a Internet estable
  • Configurado para estar siempre encendido
  • Con conexión remota habilitada
  • Credenciales de usuario con capacidad para hacer operaciones de root

Mientras el cliente no indique lo contrario, los mapas que se instalarán son los de América Central de Geofabrik.

Se montará el servicio en un entorno virtualizado con redirección NAT, con actualización de mapas automática y con instrucciones básicas sobre como arrancarlo y manejarlo.

Opcionalmente, se guiará al cliente en la preparación del servidor y se elaborará un tutorial con todos los pasos necesarios para que el cliente pueda replicar la instalación de manera independiente, que no se ofrece de manera exclusiva al cliente quedando los derechos de uso y explotación reservados al proveedor.

PRECIO

Tarea Opcional Importe
1 Preparación del servidor 400€
2 Instalación de Nominatim No 1.000€
3 Instalación de mapas de américa central 400€
4 Tutorial 200€
Total 1.000€/2.000€

TIEMPO

Dado que la obtención de resultados favorables de este trabajo depende de muchos factores externos como la conexión a Internet o las capacidades de la máquina que se use de servidor, si no se lograse un resultado favorable en el tiempo máximo de una (1) semana, se devolvería todo el dinero anticipado.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

* Como bien indica @LuisE2 por Twitter, Nominatim es un geocoder (hace la conversión entre direcciones y coordenadas y viceversa). En este caso se mezclan los dos términos ya que el cliente así lo hacía, con ánimo de facilitar el entendimiento. Lo que querían era mostrar mapas y buscar por dirección. Tiene razón Luis en que es uso incorrecto del lenguaje.

Por favor, si tuviese necesidad de algo similar, no dude en ponerse en contacto.

Proyecto tipo: AddOn para Gmail

PROBLEMA

El cliente ha visto un post mío sobre la creación de un AddOn para Gmail para personalizarlo y quiere una propuesta de que se podría hacer para ayudar a su empresa similar al software X que ahora tienen.

PROPUESTA

Alguno de los puntos a tener en cuenta.

  • No se puede meter cualquier cosa dentro de un AddOn para Gmail
  • El AddOn para Gmail sólo existe en el contexto de un hilo de correo específico

Por esto, mi propuesta sería hacer algo lo que os ofrece X, pero sólo para las personas que estén en el hilo de correo.

Para las gráficas, habría que meterlas como imágenes, y que sean completamente anónimas, pues las imágenes tienen que ser públicas para poder incoporarlas a un add-on. Además, como en cada correo serían distintas, habría que generarlas al vuelo (para esto se podría usar Google Graph o hacer un servicio a medida).

Para darle más valor, intentaría introducir información que ahora no os proporcione X porque no tenga sentido de manera agrupada, pero que sí tenga sentido en correos individuales. No sé que feedback tenéis de los usuarios de X, pero por ejemplo se me ocurre que se podrían mostrar semáforos o algo así para saber si se está respondiendo pronto (antes de la media) o tarde, o la hora a la que se calcula que se recibirá respuesta.

Para poder tener algo de referall, yo permitiría incluir en el texto que se esté escribiendo información estadísitica, y así quienes recepcionen el mensaje verán la información dada por este AddOn para Gmail fomentando que tal vez se conviertan en usuarios.

Yo creo que funcionaría mejor tener todo en una única pantalla, pero eso se puede probar y hacer lo que se vea en las estadísticas de uso.

Esto es lo que creo que tiene sentido a la hora de hacer un AddOn para Gmail, y no replicar lo que ya está en X. Si queréis replicar eso, como hablamos, creo que sería mejor que optaseis por una app como la que ya tenéis.

Nota aclaratoria:

Este proyecto tipo, es un ejemplo de proyecto que se ha realizado o se podría realizar. En ningún caso tiene validez como presupuesto real y sólo pretende documentar las distintas posibilidades que existen.

Actualmente, con los cambios que ha habido en cuanto a las posibilidades que dan los add-on, la propuesta habría sido distinta.

Se han omitido nombres de empresas y productos.