Proyect Evenge. Event manager

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

Transcript of 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

Í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.1 MVC(Modelo Vista Controlador)

11

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

6. Pantallazos de interfaces

21

Desde esta pantalla podemos crear un nuevo usuario.

22

Pantalla para el login.

6. Pantallazos de interfaces

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

25

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

6. Pantallazos de interfaces

26

6. Pantallazos de interfaces

27

6. Pantallazos de interfaces