Top Banner
Desarrolladores: Carlos Campos Fuentes Francisco Javier Expósito Cruz Iván Ortega Alba Victor Coronas Lara Evenge Gestor de eventos 1
27

Proyect Evenge. Event manager

Jul 19, 2015

Download

Software

Ivan Ortega
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Proyect Evenge. Event manager

Desarrolladores:

● Carlos Campos Fuentes

● Francisco Javier Expósito Cruz

● Iván Ortega Alba

● Victor Coronas Lara

Evenge Gestor de eventos

1

Page 2: Proyect Evenge. Event manager

Í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

Page 3: Proyect Evenge. Event manager

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

Page 4: Proyect Evenge. Event manager

● 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

Page 5: Proyect Evenge. Event manager

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

Page 6: Proyect Evenge. Event manager

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

Page 7: Proyect Evenge. Event manager

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

Page 8: Proyect Evenge. Event manager

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

Page 9: Proyect Evenge. Event manager

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

Page 10: Proyect Evenge. Event manager

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

Page 11: Proyect Evenge. Event manager

4. Diseño de la app4.1 MVC(Modelo Vista Controlador)

11

Page 12: Proyect Evenge. Event manager

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

Page 13: Proyect Evenge. Event manager

● 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

Page 14: Proyect Evenge. Event manager

● 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

Page 15: Proyect Evenge. Event manager

● 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

Page 16: Proyect Evenge. Event manager

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

Page 17: Proyect Evenge. Event manager

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

Page 18: Proyect Evenge. Event manager

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

Page 19: Proyect Evenge. Event manager

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

Page 20: Proyect Evenge. Event manager

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

Page 21: Proyect Evenge. Event manager

6. Pantallazos de interfaces

21

Desde esta pantalla podemos crear un nuevo usuario.

Page 22: Proyect Evenge. Event manager

22

Pantalla para el login.

6. Pantallazos de interfaces

Page 23: Proyect Evenge. Event manager

23

Desde la sección Mi cuenta, podemos ver los datos del usuario registrado y organizaciones creadas.

6. Pantallazos de interfaces

Page 24: Proyect Evenge. Event manager

24

Ésta será la vista por defecto de evenge, donde podremos ver los eventos creados

6. Pantallazos de interfaces

Page 25: Proyect Evenge. Event manager

25

Desde ésta página podemos crear un nuevo evento.

6. Pantallazos de interfaces

Page 26: Proyect Evenge. Event manager

26

6. Pantallazos de interfaces

Page 27: Proyect Evenge. Event manager

27

6. Pantallazos de interfaces