jueves, 2 de diciembre de 2010

Video

Para concluir el proyecto y está materia se nos pidio un video demostrativo en cual vieramos nuestro producto ademas de como fue desarrollandose mediante la metodología de Desarrollo Ágil.

He Aquí el enlace del video.

Computer System Quest: The Developer Oddyssey

miércoles, 1 de diciembre de 2010

Formalidades

El punto de esta entrada es formalizar y recapitular el trabajo realizado durante el semestre.
  • Este blog ha servido como bitácora de trabajo pues aquí se ha plasmado el desarrollo del proyecto (cambios, avances, problemas) y sumado con los procesos de desarrollo ágil se ha convertido en una poderosa herramienta de trabajo.
  • Las instrucciones de uso de software e instalación se encuentran aquí.
Otra manera de ver las instrucciones y el manual es descargando el proyecto y entrar a la carpeta info and instructions. Las instrucciones se encuentran en formato de texto plano e imágenes jpg.
¿Un diagrama de flujo? Correcto. Debido a que este proyecto es un juego y está orientado a estudiantes o personas relacionadas con el área de tecnologías de información, se pensó que poner las instrucciones/manual como un diagrama para conocer el sistema era una opción original y que puede funcionar en este contexto.

  • ¿Cómo descargo el código?
Hay 2 maneras:
  1. Con un sistema de control de versiones svn checkout http://solidaridad.googlecode.com/svn/trunk/ solidaridad-read-only

a. aquí bajar la última versión comprimida
b. aprovechando la tecnología existente
  • Y finalmente el sistema de control de versiones.
Para este proyecto se utilizó subversión con Google Code para poder realizar trabajo concurrente en equipo. Todos los cambios que se han hecho, así como quién los hizo, son visibles para todos. Esta herramienta sirvió de mucho y estoy seguro que será una herramienta que servirá en el futuro.


Instrucciones de Uso



Las siguientes son las instrucciones tal como aparecen en el repositorio y la descarga del juego/proyecto Solidaridad a.k.a CSQ: The Developer Oddyssey.

CSQ: The Developer Oddyssey
Django based online RPG. Join the game, solve quests, win experience, level up, win money, buy items and be the programmer number one.
Copyright (C) 2010 Alejandro Villalobos Mtz( Valedores de Atizapan )

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .

How to get the code?:
Two options
a. Go to http://code.google.com/p/solidaridad/downloads/list and get the latest version
b. CVS needed :
Command-line access
svn checkout http://solidaridad.googlecode.com/svn/trunk/ solidaridad-read-only

How to install?:
Be sure that you meet the requirements listed above and then copy the solidaridad directory to your drive.
Use the command promp to get to the solidaridad directory and sync the database ("manage.py syncdb").
If you need it, set a port and IP. Default is 127.0.0.1:8000/

Getting Started:
You can follow the instructions given in Diagram1.0 and Diagram2.0.




martes, 30 de noviembre de 2010

Game Over


El día de hoy ha sido concluido exitosamente el proyecto Solidaridad a.k.a

CSQ: The Developer Oddyssey.

La programación concluyó con la interfaz de retos/ preguntas para el jugador, validar su respuesta y sumarle/ restarle atributos a su perfil.

Los detalles de estilos(css) han sido corregidos con ayuda del profesor Ariel Ortiz y con esto todas las páginas tienen consistencia y se nota un sistema completo.
La base de datos tiene información para ejemplificar cada función del sistema y pueden ser agregados más retos e items a futuro.

Ahora solo queda preparar la exposición final y el vídeo de trabajo ágil.
Click aquí para obtener/ver el código fuente de CSQ: The Developer Oddyssey




lunes, 29 de noviembre de 2010

Casi


El día de hoy se trabajó en terminar el sistema. Luego de estar trabajando en pulir las fallas y "bugs" que había en el juego, hoy ha sido un día dedicado en dejar listo y totalmente funcional el sistema como se tenía planeado, pero ahhh, de nuevo los cambios.

Al tratar de finalizar el sistema de retos me percaté de que había que modificar el modelo de usuario pues es necesario según lo planeado que cada que el usuario intente un reto y lo conteste de manera errónea, el sistema debe descontar puntos de energía al usuario, tal como es un reto de programación de la vida real. La modificación del modelo incluyó otras modificaciones en las vistas pues hubo que modificar algunos campos.

Por otro lado hoy se dejó lista la organización para el video y la presentación final ya que por experiencia sabemos el tiempo que toma todo esto.

Ahora si estamos a un paso de finalizar al 100% el proyecto y por mi parte puedo decir que me ha dejado una gran enseñanza ( y creo que un dominio en Django) y 500 puntos de experiencia.

Evolución


Ahora que faltan 2 días oficiales para presentar el proyecto se puede decir que falta solo una parte del mismo. Ya está completada la tienda de Items y si hay necesidad de modificar algo solo es el estilo visual (hacerla mas bonita). El funcionamiento es adecuado y simple.

Para lograr lo anterior se tuvieron que hacer más cambios al modelo de datos , creando una tabla intermedia entre Items y Usuarios en la que se guarda el Item que el Usuario compra. Esto trajo cambios al sistema de vistas y al html de algunas páginas (las relacionadas con Items)

Con esto queda solo una cosa por hacer. Terminar el sistema de retos. Además de desplegar el reto hay que validar la respuesta y modificar al Usuario(tal como un Item modifica su experiencia, dinero y nivel).
Esto ha traído cambios en el modelo de Retos y Usuario, pues hay que cambiar ciertos campos para reconocer los retos completados por los jugadores, de modo que si hacen un reto no lo puedan repetir veces indefinidas para ganar dinero y experiencia. Se está trabajando en eso.

Ahora que veo el sistema casi en su totalidad terminado, veo la evolución que ha tenido desde el momento del planteamiento hasta ahora. No puedo asegurar que se quedara igual pues siempre hay algo que mejorar pero espero que no sea un cambio tan profundo sino una evolución.


sábado, 27 de noviembre de 2010

Right on!

El día de hoy hicimos grandes avances:

El juego ya puede calcular los niveles de energía y experiencia en base al tiempo que ha transcurrido entre la última vez que se autenticó y el momento actual, también ya estan bien manejadas las páginas de error cuando alguien pone una dirección erronea y se empezó a trabajar en la compra de items para agregar sus beneficios al perfil del usuario.

En las próximas horas se empezará a trabajar también en la parte de los retos, en donde los usuarios podrán hacer actividades que les añadan puntos, y de esta manera el juego prácticamente estará completo.

Solo tendremos que hacer la documentación y el llenado de las bases de datos para que todo sea funcional.

De la misma manera ya empezamos con la edición del video que contendrá imágenes y escenas de todo el desarrollo del sistema y de esta manera estaremos listos para la entrega el jueves!!!

viernes, 26 de noviembre de 2010

+10 EXP

En el periodo de tiempo que va de la entrada anterior a esta se ha trabajado en implementar las vistas faltantes y mejorar las que ya se tenían hechas. Todavía faltan cosas por terminar y pulir detalles que provocan fallas.

Cosas por terminar

  • Interfaz de retos de modo que el usuario pueda responder el reto.
  • Página de manual de usuario
  • Página de Desarrolladores (tal vez termine siendo una página estática con información sobre Los Valedores de Atizapán)

Cosas por mejorar

  • Consistencia en la interfaz. Aún hay que revisar y corregir el archivo css de estilos
  • Re direccionamiento de errores. Algunas veces tras una serie de procesos al entrar a una página no definida se manda a otra página amigable, sin embargo al regresar a la página anterior se cierra la sesión del usuario
  • Llenar las tablas con más retos e ítems

Y los avances

  • Página de Items

  • Página de inicio


  • Página del top 10 (Usuario con sesión iniciada)

  • Página del top 10 (Usuario sin sesión iniciada)


miércoles, 24 de noviembre de 2010

7 6 5 4 3 2 1 0

En esta última semana hemos decidido dividir el trabajo que queda de tal forma que si todo sale bien y trabajamos en paralelo podremos finalizar exitosamente el proyecto.

Se han hecho algunos cambios tanto en diseño lógico como diseño visual con el fin de hacer más llamativo el sistema. Se han agregado imágenes especialmente diseñadas para el juego, se ha modificado la interfaz, se está trabajando en el sistema de tiempo para el servidor y en llenar la base de datos de actividades/retos y quedan por pulir detalles de consistencia.

El proyecto está cerca de ser completado y nos esforzaremos para solucionar los problemas que se presenten.

Hasta ahora así se ve la interfaz. No se notan muchos cambios visuales pero en verdad ha sido modificada muy a fondo.




jueves, 18 de noviembre de 2010

CSQ: The Developer Oddyssey



Nuevamente presentamos un avance del recién nombrado juego The developer Oddyssey. Ahora Durante esta semana se ha trabajado arduamente en implementar un sistema de control de tiempo, de modo que cada determinado tiempo el usuario/jugador que inicie sesión reciba una recompensa de puntos de experiencia o dinero virtual para comprar ítems. Esto has sido un reto debido a que hubo que investigar la manera correcta del funcionamiento del registro de la fecha de último inicio de sesión del usuario (que se modifica dinámicamente) y el tiempo actual del sistema.

Además de lo anterior se ha rediseñado la interfaz del juego de modo que parezca mas un juego y sea sencillo de utilizar, por ejemplo, registrar a un usuario nuevo en solo 1 paso que consta de escribir nombre de usuario y password. El rediseño ha quedado casi totalmente completado y solo faltan pulir algunos detalles con el manejo de la información y la manera de mostrarla, pero estamos trabajando y seguiremos trabajando en eso.

Por último se ha trabajado en poblar la base de datos con retos e ítems. Esperamos seguir avanzando de buena manera y sin tantos contratiempos.


sábado, 13 de noviembre de 2010

En el camino correcto...

El día de hoy aplicando programación en parejas finalmente el registro de usuarios y la autenticación esta completamente funcional!!! Este es un gran avance ya que pronto será terminada la base de datos, se crearán las vistas y podremos empezar a programar otro gran módulo, los retos entre usuarios.

Esta parte nos preocupa un poco debido a todos los problemas que tuvimos para hacer correctamente la autenticación y el registro con la base de datos, pero esperamos que la experiencia que ésto nos ha dejado nos permita avanzar rápidamente.

Para esta semana pensamos tener lista todas las vistas con excepción de la de los retos, así como empezar con la creación del video con las fotos y cortos que tenemos hasta el momento. De esta manera pensamos tener todo listo para el día de la presentación y tener el juego completamente funcional.

viernes, 12 de noviembre de 2010

202+202

Después de la semana de exámenes hemos vuelto a la vida el proyecto. Hasta ahora el principal problema había sido la administración de los usuarios del sistema pues hicimos varios cambios a la base de datos para aprovechar los beneficios del sistema como explicamos en la entrada pasada, sin embargo esto nos trajo más problemas de los que esperábamos.

Para resolver este problema prácticamente hubo que hacer un proyecto de prueba con una base de datos únicamente formada por la tabla Usuario, registrar unos usuarios mediante el superuser del sistema y luego revisando la base de datos. El problema es que el sistema de autenticación revisa el modelo del usuario del sistema autenticador de Django, no el nuestro. Por lo tanto si creábamos usuarios en nuestra tabla Usuario no eran reconocidos como usuarios válidos (únicamente los creados en el usuario del sistema Auth).

Después de leer y probar pudimos corregir esto mediante la creación de perfiles de usuario. Con esto se crea un usuario en sistema de Django y este usuario se usa como relación de perfil en nuestra base de datos. Efectivamente nos tomó mucho tiempo pero ya quedó listo.

Por otro lado se han corregido los problemas que teníamos al tratar de acceder a direcciones no válidas dentro de nuestro sistema. Pueden ocurrir errores 404 pero hemos tratado de que sean los menos posibles y si llegan a ocurrir los mandamos a una página “amigable”.

martes, 26 de octubre de 2010

Cambios

Después de haber leído e investigado más a fondo sobre formas de trabajar sesiones con Django hemos decidido hacer ligeros cambios en el diseño y la implementación de la base de datos que ya teníamos hecha. Agregamos una tabla a la base de datos con el fin de mantener un registro de las actividades completadas por los jugadores, se agregaron algunos campos a las otras tablas pero principalmente se cambió la tabla Usuario.

Las ventajas de usar este nuevo modelo son:

  • Métodos pre hechos de gran utilidad tanto para administrar como para implementar en las funciones de nuestra lógica.
  • Seguridad en el manejo de datos mediante password cifrados y no visibles de manera sencilla
  • Validación en los datos para evitar caracteres que puedan comprometer la seguridad del sistema
  • Capacidad de autenticar de manera automática y otorgar permisos a los usuarios

Las desventajas:

  • La manera de trabajar con los fixtures cambia debido a la seguridad que se menciona antes, esto trae también la desventaja de no poder registrar usuarios mediante los fixtures, dependiendo totalmente de la base de datos
  • Modificar las pruebas de unidad

Por otro lado, ya tenemos la interfaz de inicio casi total (falta modificar unas cosas de diseño), y así es como se ve

lunes, 25 de octubre de 2010

Por descuido no habíamos subido en la semana anterior todo lo que habíamos avanzado en las sesiones de trabajo que habíamos tenido, pero el ritmo de trabajo ha sido continuo aunque hasta cierto punto un poco accidentado por errores que no nos habían dejado cumplir a cabalidad con los tiempos requeridos.
toda la semana anterior nos habíamos concentrado, como habíamos espeificado en las tarjetas, en la creacion de las bases de datos de nuestro sistema. cuyas tablas ya quedaron implementadas.
También comenzamos la parte de los registros de usuario y validacion de ellos mismos. Al principio quisimos hacer uso del modelo user definido por django, pero no pudimos concluir el proceso usando este modelo ya que nos producía algunos errores a la hora de probar las tablas. sentiamos que el manejo que hacia de las tablas y la informacion que le dabamos era un poco rara y no nos permitiría hacer los fixtures de la manera que queríamos. Hemos intendado resolver el problema y empezamos a ver si sería mejor para nosotros adecuarnos a este modelo o buscar otra opcion para desarrollar lo que queremos.
También comenzamos a hacer los templates del sistema. Usando varias herramientas comenzamos a diseñar las hojas de estilo y las demás interfases del sistema. pero también tuvimos algunos problemas por no haber tomado en cuenta los cambios que tenemos que hacer para que django nos deje manejar el contenido estático, como las imagenes que usaríamos como fondo y nuestras barras.
Seguimos trabajando en finalizar nuestra segunda historia, y acoplarnos con los tiempos que habíamos propuesto. Al mismo tiempo seguimos trabajando en nuestra tercera y cuarta historia para terminarlas segun los tiempos que habiamos propuesto.

lunes, 18 de octubre de 2010

Diseño Detallado de la Base de Datos

Como en la entrada anterior lo desciribimos, se hizo un diseño general de la base de datos siendo suceptible a cambios. El cambio más drástico fue el modelo que se usó, ya que el anterior trato de hacer todo 1 a 1, pero al estudiar más a fondo la implementación en Django se hizo un diseño que adoptara los modelos de Django, haciéndolo que fuese de muchos a muchos.

Por otra parte hemos decidido que usaremos MySQL que es una base de datos más robusta que SQLite y se puede utilizar sin problemas en un ambiente distribuido. Además con esta base de datos se puede sacar ventaja también de los modelos de Django para la creación de las tablas de la base de datos.

A continuación se muestra el diseño detallado de la base de datos, tal y como ha sido implementada en Django:


Esta parte la definimos durante el fin de semana, pero hasta hoy hicimos un commit sobre la base de datos que implementamos, ya que también, duarante el fin de semana estuvimos estudiando nuestras opciones y al elegir MySQL, estudiamos su forma de implementación, así como la actualización y adaptación de nuestras StoryCards y TaskCards

jueves, 14 de octubre de 2010

Diseño Conceptual del Juego

El día de hoy se hizo un burdo diagrama de flujo en el cual se puede ver la transición en general que el usuario recorrería para entrar e interactuar en el juego. Todo esto con el fin de definir completamente la estructrura de la base de datos, más específicamente, las tablas que se necesitarán para el funcionamiento del juego y sus atributos.

Para explicar mejor el diagrama de flujo, cabe mencionar que el usuario al entrar a las interfaces de la zona roja puede moverse a cualquier otra dentro de la zona roja, y de igual manera, en cualquiera de ellas, el usuario puede finalizar la sesión y automáticamente será direccionado a la página de login. Por otra parte, para entrar a la interface denominada "RETO CON BOSS/USUARIO" desde las interfaces de "ACTIVIDADES" y "USUARIOS PARA RETAR", que dependiendo de si es un usuario o un bot automatizado, interactuará con la tabla que le corresponda para cargar los atributos para el reto.

El diseño de la base de datos se basa en un análisis del diagrama de flujo anterior, resultando en el diseño que se muestra a continuación. Cabe mencionar que este diseño podría cambiar durante el desarrollo del juego, debido a requerimientos que no fueron detectados al momento del análisis o por una mala relación entre las tablas, por lo que lo consideraremos como la versión 1.0 del diseño.


viernes, 24 de septiembre de 2010

Descripción General del Proyecto

Al pensar en la temática de nuestro proyecto, y en la manera en la que se desarrollará el mismo, tuvimos una lluvia con varias de las ideas que propusimos tentativamente para desarrollar.

Algunas de ellas nos parecieron más llamativas que otras, lo que hizo que redujéramos las opciones a dos, un sitio de apuestas en línea y una página de un juego de rol. Al principio nos gustó un poco más la idea de las apuestas, ya que es algo atractivo para los clientes y sentíamos como un buen reto desarrollar dicho proyecto, pero no teníamos un experto que pudiera estar con nosotros y con el que pudiéramos tener el contacto necesario.

Esto nos dejó con la idea de que sería mejor para nosotros desarrollar la página con el juego de rol (RPG), ya que el experto sería alguien con quien tendremos mucho más contacto y estará mucho más comprometido con el proyecto. Tenemos pensado hacer un juego bastante atractivo e innovador, un tema en el que al menos nosotros, no hemos visto. Crearemos un juego con una temática escolar, los niveles que tendría que pasar le darían más puntos en experiencia y lo llevarían a tener mejores herramientas para poder pasar a los niveles más fuertes, posiblemente con ejemplos reales.

Nuestro experto será Gerardo Samuel Cabello Montes de Oca. Él tiene 24 años de edad; Gerardo se encuentra estudiando la carrera de Ingeniería en Tecnologías Computacionales en el Tecnológico de Monterrey, Campus Estado de México. Impulsado por un enorme gusto sobre los videojuegos decide seleccionar su concentración en el área de Sistemas Inteligentes y Computo Visual. Uno de sus géneros favorito de videojuegos es el llamado Juego de Rol o Rol Play Gaming por sus siglas en inglés (RPG), ésta será la temática que tendrá nuestro proyecto lo cual nos da la razón para tomarlo como experto.

lunes, 23 de agosto de 2010

Google Code Proyect: Solidaridad


The Valedores de Atizapan Team is glad to introduce you to the “Solidaridad” project hosted in Google Code. This way you can follow us on the development of our project. The link to our project is:


The license chosen for our project was the GNU General Public License v3 (GPL v3). We chose this license for several reasons. The first one is that this is the oldest Open Source license, written by Richard Stallman. We liked this particularly because it doesn't allow anyone to make his code private, and not allowing others to get benefited from it.

It also gives us the certainty that if we need to defend ourselves against a third party that has misused our software or has violated the terms agreement, we will have the ball in our side, as history has taught us.

Regarding the version, we decided to use the third one since its the most adapted to today's situations. It has several improvements regarding the software patents, free software license compatibility, a new definition for source code, and hardware restrictions on software modification; as well as internationalization improvements on how violations are handled, and how other permissions can by added by the copyright holder.

If you have any comments let us know and have a nice day!

lunes, 16 de agosto de 2010

Eh aquí a los Valedores de Atizapán

Como lo prometido es deuda, aquí está la foto para que nos conozcan en persona.

Saludos!!!

De derecha a Izquierda: Alejandro, Gerardo, Guillermo y Víctor

sábado, 14 de agosto de 2010

Propuestas de Proyecto

Primero que nada bienvenido a nuestro blog!!!

Nosotros somos los Valedores de Atizapán y somos un equipo creado para diseñar e implementar un proyecto de desarrollo de software. El equipo está conformado por Julio Alejandro Villalobos Martínez, Gerardo Samuel Cabello Montes de Oca, Victor Javier Lee Clorio y su servidor Guillermo Alonso Trejo Romero.

Nuestras propuestas de proyecto son las siguientes:

Sitio de apuestas: Un lugar donde cada usuario pueda hacer apuestas en diferentes eventos como peleas de box,  partidos de futbol, carreras de autos, etc.; y al momento en que finalizen dichos eventos les muestre una pantalla de cuanto ganaron.
Juego RPG: Un juego en línea en donde los usuarios puedan enfrentarse entre sí, subiendo en su puntaje. El tema aún está por definirse.
Blog de ayuda para programadores: crear un sitio donde los programadores puedan subir sus dudas y puedan ser contestadas por toda una comunidad de usuarios.

Las propuestas anteriores aún no están detalladas, pero al momento de elegir una propuesta detallaremos las funciones que cada uno tendrá.

Por último queremos decir que pronto subiremos una foto de los integrantes, ya que no hemos tenido el tiempo para hacerlo, pero queremos que nos conozcan!

Esperamos que nos sigan en el transcurso de los próximos meses y vivan esta aventura con nosotros!!!