Upload
agustin-cuenca
View
2.761
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Project description and some details on the development.
23 Noviembre, 2007
MiRubi Internet S.L. 2
Introducción
Lanzamos en España a finales de julio y en el Reino Unido a principios de octubre
Esperamos lanzar en USA, Alemania y Francia antes de finales de año
Principales socios en el proyecto:
Agustín Cuenca de ASPgems
Miguel Acosta y Samuel Arenas de ASK.com
Socios en cada uno de los países donde vamos a lanzar: Reino Unido, Francia, Alemania y Estados Unidos
MiRubi Internet S.L. 3
Remunera al usuario por su
navegar
Remunera al usuario por invitar a sus
amigos
Portal o página de inicio
¿Qué es BeRuby.com?
MiRubi Internet S.L. 4
BeRuby paga al usuario por navegar
MiRubi Internet S.L. 5
BeRuby paga al usuario por recomendar
El usuario ganará dinero no sólo por la actividad que él realiza sino también por la actividad que realicen aquellas personas a las que invite a formar parte de su red
MiRubi Internet S.L. 6
BeRuby como portal o página de inicio
MiRubi Internet S.L. 7
¿Cómo se eligió Rails?
Precio
Tiempo
Concebido para lanzar casi en simultáneo en varios países
Agustín como socio (no option!)
MiRubi Internet S.L.
Desde un punto de vista de negocio, como cliente:
Flexibilidad: cambio de marca, cambio en el orden de categorías, base de datos, etc.
Poder que se da a no programadores (capacidad para realizar pequeñas modificaciones en la plataforma)
Plataforma multi-idioma (de forma rápida)
Pocos errores de bucle… de hecho ninguno
MiRubi Internet S.L.
La aplicación: funcionalmente
Personalización página
Gestión de tu red: envío invitaciones
Gestión de servicios
Gestión reparto ingresos
Conexión proveedores
Conexión con Paypal
Backoffice de administración
Carga de informes
Gestión usuarios, servicios y proveedores
MiRubi Internet S.L. 10
El desarrollo
Dos desarrolladores + 1 diseñador
Desarrollo iterativo
Cambio continuo de especificaciones
Algunas decisiones críticas
Una aplicación por pais
MiRubi Internet S.L.
Algunas característcas
Aplicación multi-idioma
Aplicación multi-pais
Cada País una BBDD
Cada País una instancia en ejecución
Escalabilidad por la arquitectura
Redundancia con simplicidad
MiRubi Internet S.L.
Arquitectura de producción
2 servidores front
Varias aplicaciones:
Una por cada pais.
Todo con capistrano
2 servidores bases de datos con fail over
Memcache
Balanceador de carga
La relevancía del share-nothing.
Web 1Web 1
BBDD 1BBDD 1 BBDD 2BBDD 2
Web 2Web 2
Firewall y balanceadorFirewall y balanceador
MiRubi Internet S.L.
pluginsAction Mailer Layouts. Presentación de los mails
Active Merchant. Integración con PayPal
Acts As Authenticated. Login
Acts As Paranoid. Borrado Lógico de Registros
Calendar Date Select. Helper para selección de fechas
Content. Plugin interno para gestión de páginas y fragmentos de HTML
FckEditor. Editor gráfico de HTML
Foreign Key Migrations. Creación automática de Foreign Keys
Gems. Permite empaquetar las gemas como plugins (facilita el deployment)
Google Analytics
ParseExcel. Tratamiento de ficheros Excel
PseudoCursors. Permite simulación de cursores sobre ActiveRecord
responds_to_parent. Facilita la subida de ficheros desde AJAX.
El multilenguaje se consigue mediante una librería interna similar al plugin Gibberish (estábamos en pleno desarrollo cuando se publicó Gibberish). Soportamos modificaciones en caliente de los ficheros de literales.
MiRubi Internet S.L.
Gemas
Mechanize. Permite el crawling de páginas web
FasterCSV. Parseo de ficheros en formato CSV
MemCached. Conexión con memcached. Extendida con una librería propia
Contacts. Importación de contactos de yahoo, msn y gmail
HtmlEntities. Traducción de entidades html por su código (á == á)
MiRubi Internet S.L.
Ejemplos de bondad
No ha petado
Los bugs han sido fáciles de corregir
Horas
Cambios en requerimientos
Servicios co-branded
Cambio estrategias de reparto
Flexibilidad de negocio sin cambios de software.
MiRubi Internet S.L.
+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Controllers | 2943 | 2152 | 20 | 210 | 10 | 8 || Helpers | 669 | 533 | 0 | 110 | 0 | 2 || Models | 2555 | 1775 | 28 | 165 | 5 | 8 || Libraries | 1808 | 1394 | 25 | 141 | 5 | 7 || Components | 0 | 0 | 0 | 0 | 0 | 0 || Integration tests | 0 | 0 | 0 | 0 | 0 | 0 || Functional tests | 1025 | 819 | 30 | 108 | 3 | 5 || Unit tests | 531 | 403 | 14 | 50 | 3 | 6 |+----------------------+-------+-------+---------+---------+-----+-------+| Total | 9531 | 7076 | 117 | 784 | 6 | 7 |+----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 5854 Test LOC: 1222 Code to Test Ratio: 1:0.2
Rake Stats
MiRubi Internet S.L. 17
Los críticos de Ruby on Rails siempre
cuestionan la escalabilidad, os
agradecería que nos ayudáseis a
demostrar que esto no es una
preocupación....
Registraos en BeRuby.comGRACIAS!!