Todo proyecto tiene un inicio, con estos pasos inicia el Website para el grupo Developers Dominicanos. He decidido crearlo como un proyecto Open Source para cumplir con una de las principales metas del grupo, compartir el conocimiento. Tenemos muchos usuarios avanzados que no necesitan de esto, pero hay muchos newbies registrados que si les va a encantar.
Espero con esto no solo mostrarle tecnología, si no todo el proceso desde planteamiento del problema, selección de las herramientas adecuadas y el proceso final de obtener un resultado.
Siendo un grupo de desarrolladores quedaría muy mal si obviamos totalmente la programación y usamos un CMS: DotNetNuke, Joomla, etc. Quedaría peor aun si hacemos algo supercomplejo que tenga un montón de código para resolver un problema simple (KISS).
Primero analicemos la necesitad actual, tenemos un CodeJam para el mes de Abril:
- Tenemos menos de una semana antes de que inicien las inscripciones.
- Necesitamos publicar las reglas & especificaciones.
- Necesitamos poder recibir las inscripciones de los participantes.
- Necesitamos poder mostrar el listado de grupos que están inscritos.
- Debemos poder mostrar los logos de los patrocinadores, sin ellos no tuviéramos nada.
- No tenemos fondos y los recursos con los que contamos son voluntarios.
Casi nada!...
Ya tenemos el problema & necesidades planteadas, tenemos una meta que debemos cumplir y entendemos cual es el problema de negocio. Lo que sigue es seleccionar las herramientas adecuadas para poder cumplir con este reto en el tiempo y con los recursos que tenemos.
Repositorio
Ya que vamos a hacer un proyecto OpenSource debemos elegir donde colocar el código fuente y como compartirlo. Tenemos varias alternativas CodePlex (TFS), Assembla (SVN), GitHub (Git), etc. Particularmente yo tengo mas experiencia con TFS y me gusta mas SVN, pero es un error seleccionar una tecnología solamente porque es la que mas sabes user, debes usar la mejor herramienta para el trabajo. En este caso debemos seleccionar Git, es un manejador de control de versiones muy bueno, existen plugins & tools para todas las plataformas y GitHub.com es lo mejor para "Social Coding".
Tecnología/Plataformas
Lo primero que le viene a la mente a un developer en este caso es hacer:
- Una app web,
- Tener una base de datos
- Crear formularios para hacer el registro, aprobar los equipos, abrir & cerrar el proceso de inscripción.
- Un reporte con los equipos registrados
Aquí hay varios problemas, primero no tenemos recursos para un hosting con base de datos, segundo me parece mucho código para tan poca cosa, fácilmente duramos mas de una semana. Hay otro problema aquí, cultural, en el grupo hay de todos tipos de desarrolladores: COBOL, java, PHP, .Net, y al hacerlo de esa forma nos estaríamos casando con una sola tecnología en una etapa donde el grupo apenas esta comenzando.
Que hacer?, fácil, vamos a usar lo mas neutral y hacerlo lo mas sencillo posible. Primero para la pagina vamos a usar solo HTML, CSS, JavaScript y jQuery, por lo pronto no necesitamos PHP, JSP ni ASP.Net
De ahí nació la primera versión de la pagina, tiene un estilo muy simple donde simplemente se fue colocando la información general del Code Jam.

Pero como grabamos el registro? Fácil, usemos Google Docs, tienen una plataforma donde se puede crear un Formulario, publicarlo y almacenar las respuestas. Podemos colocar un link desde la pagina hacia el formulario. Me permite también decidir cuando hacer el formulario publico y cuando cerrarlo.
Y como mostramos los equipos registrados? Inicialmente pensé que iba a tener que actualizar la pagina manualmente cada día, pero es un trabajo tedioso e innecesario. Luego pense en utilizar el API de Google Docs para acceder a la info del spreadsheet y mostrarlo en la pagina, pero como?...
La respuesta natural era utilizar jQuery y/o JavaScript. Realmente fue mucho mas fácil decirlo que hacerlo, primero el API de Google Docs te permite interactuar de diferentes maneras con los diferentes tipos de documentos, pero es un pobre en soporte para JavaScript, expone el documento en formato TXT, CSV, HTML, RSS y un par mas, pero no en JSON que es lo que se pudiera leer mas fácil desde jQuery.
Luego de tratar de diferentes formas y pasar mas trabajo que un chele colorao encontre un ejemplo que se asemejaba un poco a lo que yo necesitaba. Lo tome como base y lo pude integrar a la pagina, el resultado fue algo simple, mostraba un listado de todos los equipos que hayan llenado el formulario.
Finalmente para que sea un verdadero proyecto OpenSource debo publicar todo el código fuente. El codigo fuente esta publicado en https://github.com/hminaya/DevDomWeb, pueden analizarlo, criticarlo, mejorarlo y aprender de el.
Espero les sirva para algo!...


0 comments:
Post a Comment