Desarrolladores:
● Carlos Campos Fuentes
● Francisco Javier Expósito Cruz
● Iván Ortega Alba
● Victor Coronas Lara
Evenge Gestor de eventos
1
ÍNDICE
1. ¿Qué es Evenge?
2. Google App Engine1. ¿Qué es?
2. ¿Por qué lo hemos usado?
3. ¿Qué ventajas e inconvenientes que presenta?
3. Método de trabajo del equipo1. Slack
2. GitHub
4. Diseño de la app
1. MVC(Modelo Vista Controlador)
2. Frameworks:
1. Jinja
2. Webapp2
3. Bootstrap
3. Diseños de clases
5. Construyendo unas bases sólidas de desarrollo1. Herramientas de Provisionamiento
2. Herramientas de IC y despliegue.
3. Herramientas de Tests.
6. Pantallazos de intefaces
2
1. ¿QUÉ ES EVENGE?
● Evenge es una aplicación de gestión de eventos, la cual nos
permitirá crear, notificar y crear informes en base a los
asistentes.
● Todo esto por supuesto en un entorno Cloud, es decir, en
una aplicación íntegramente en la nube, con todas las
ventajas que esto conlleva.
● Difusión por Redes Sociales, E-mail y Blogs.
3
● Gestión de usuarios de la plataforma.
● Gestión de información acerca del evento (ponentes, lugar, temática, asistentes, etc).
● Inscripción por parte del asistente al evento y publicación automática en las redes
sociales.
● Publicación del material relacionado con el evento (Fotos, documentos, asistencia, etc).
● Gestión de calendario con los eventos próximos.
● Generación a partir de evento de diplomas para los asistentes e informes para los
organizadores incluyendo información acerca del evento (asistentes, ponentes, resumen
del evento, etc).
1. ¿QUÉ ES EVENGE?1. Características
4
2. Google App Engine2.1 ¿QUÉ ES?
● Google App Engine (GAE), es una plataforma de servicio que te permite
ejecutar tus aplicaciones web en la infraestructura de Google.
5
2. Google App Engine2.2 ¿Por qué lo hemos usado?
● Usando las infraestructuras de Google de una
forma sencilla y rápida.
● Da soporte para diferentes tipos de lenguajes:
o Python
o Java
o Go
o PHP(incorporado recientemente)
6
2. Google App Engine2.3 ¿Qué ventajas e inconvenientes que presenta?
Ventajas:
● Almacenamiento de datos distribuido muy potente.
● Nos facilita la forma de administrar nuestra aplicación con un portal web.
● Generar un entorno de desarrollo local exactamente igual que GAE en la nube.
● Programar en Python. Además incluye varias API y herramientas de desarrollo
muy fácil de usar.
● En gratis te ofrece: 500MB de espacio para tu aplicación y admite 5 millones de
visitas mensuales.
● Es altamente escalable, así como la estabilidad y la seguridad.
● Tareas programadas configurables (CRON).
7
2. Google App Engine2.3 ¿Qué ventajas e inconvenientes que presenta?
Alguno de los inconvenientes que nos encontramos son:
● Para almacenar datos y archivos en modo lectura y escritura es
necesario utilizar un sistema de archivos virtual sobre el
DataStore.
● Solo se puede ejecutar código a través de consultas HTTP.
● Los usuarios de Python pueden subir módulos para su uso en la
plataforma, pero no aquellos que están completamente
desarrollados en C o Pyrex
● El soporte para SSL solo está disponible par dominios
*.appspot.com
8
3. MÉTODO DE TRABAJO DEL EQUIPO3.1 SLACK
● Unificar las comunicaciones del grupo de trabajo.
● Crear diferentes canales tanto públicos como privados.
● Nos permite integración máxima:
o GitHub
o Google docs
o Twitter
o ZenDesk
o Heroku
o Etc...9
3. MÉTODO DE TRABAJO DEL EQUIPO3.2 GitHub
● Github es un servicio de alojamiento de repositorios de software libre
(aunque es posible la creación de repositorios privados)
● Proyecto y blog (bajo Jekyll) almacenado en el repositorio Evenge
● Nuestro método de trabajo:
o En la rama master, tenemos la versión estable.
o Cada desarrollador tiene su propia rama de trabajo.
o La mezcla con master, se realizan a través de pull request.
o Solo uno es el encargado de revisar los pull request y realizar la
mezcla con master.10
4. Diseño de la app4.2 Diseños de clases
El modelo está dividido:
● Usuarios
● Organizaciones
● Eventos
● Asistentes
● Ponentes
Y éstas otras para poder gestionar las relaciones:
● Organizacion-usuario
● Evento-ponente
12
● Es una librería que nos permite renderizar script en
Python a HTML de una forma "Python style".
● Es un motor de plantillas con todas las funciones de
Python.
● Tiene soporte completo de Unicode, un entorno de
ejecución, seguridad incorporada, utilizada por grandes
proyectos y se encuentra bajo los términos de la
licencia BSD.
4. Diseño de la app4.3 Frameworks
13
● Integrado en el SDK de App Engine.
● Se basa en request handler or simply handler: a
exigencia que contiene la lógica de la aplicación para
manejar la petición.
● La decisión de usar Webapp2 es por :
o es ligero,
o simple y
o contiene el mismo sistema de las plantillas de
Django
o además de que es totalmente compatible con GAE
4. Diseño de la app4.2 Frameworks
14
● Es el framework desarrollado por Twitter que
permite crear interfaces web con CSS y
Javascript Responsive Desing.
● Establece estilos rápidamente asignando
clases en el HTML.
4. Diseño de la app4.3 Frameworks
15
5. Construyendo unas bases sólidas de desarrollo5.1 Herramientas de aprovisionamiento
● Docker crear imágenes preconfiguradas con SO y herramientas, en
nuestro caso, para el aprovisionamiento de un entorno de desarrollo para
Evenge
● En Evenge automatizamos la creación del Docker mediante un script
denominado Dockerfile que tenemos en nuestro repositorio.
● Así como otro script para automatizar el proceso de instalación de
Docker, todas las dependencias que requiere para su correcto
funcionamiento y instalamos la imagen producida con el Dockerfile.
16
5. Construyendo unas bases sólidas de desarrollo5.2 Herramientas de IC y despliegue
● Integración Continua:
o Este sistema de integración continua permite crear, provisionar,
testear y desplegar nuestra app en una máquina virtual, en el
servidor que queramos.
o Además trabaja con IaaS y PaaS como:
Heroku,
Amazon Elastic Beanstalk
OpsWorks AWS
o cualquier proveedor de infraestructura después de una compilación
exitosa.
17
5. Construyendo unas bases sólidas de desarrollo5.2 Herramientas de IC y despliegue
● Despliegue:
o Podemos desplegarla en local para realizar toda la
batería de pruebas que necesitemos.
o Para el despliegue final es tan sencillo como darle al
botón “Deploy”.
18
5. Construyendo unas bases sólidas de desarrollo5.3 Herramientas de Tests. NoseGae y Shippable
● Cuando Shippable llega al apartado de ejecución de test a la hora del despliegue, en nuestro
caso del archivo test.py, procede a realizar los test unitarios de este módulo. En nuestro
archivo podemos encontrar funciones como esta:
def testInsertarEvento(self):
evenge = Evenge()
evento = Evento (
evt.nombre = “Evento de prueba”
evt.tipo = 1
… )
response = evenge.testInsertarEvento(evento)
self.assertEqual(response, True)
19
5. Construyendo unas bases sólidas de desarrollo5.3 Herramientas de Tests. NoseGae y Shippable
● NoseGAE establece el entorno de desarrollo GAE antes de
su prueba, puede escribir fácilmente test funcionales sin
tener que arrancar realmente el servidor dev. El plugin
también configura e inicia una instancia TestBed
● Simplemente es la comprobación de si la respuesta a una
función dá el valor esperado. Si es así, el test es
satisfactorio, de lo contrario, el test será fallido y Shippable
no procederá al despliegue
20
23
Desde la sección Mi cuenta, podemos ver los datos del usuario registrado y organizaciones creadas.
6. Pantallazos de interfaces
24
Ésta será la vista por defecto de evenge, donde podremos ver los eventos creados
6. Pantallazos de interfaces