SlideShare una empresa de Scribd logo
1 de 27
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 Engine
1. ¿Qué es?
2. ¿Por qué lo hemos usado?
3. ¿Qué ventajas e inconvenientes que presenta?
3. Método de trabajo del equipo
1. 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 desarrollo
1. 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 Engine
2.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 Engine
2.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 Engine
2.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 Engine
2.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 EQUIPO
3.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 EQUIPO
3.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 app
4.1 MVC(Modelo Vista Controlador)
11
4. Diseño de la app
4.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 app
4.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 app
4.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 app
4.3 Frameworks
15
5. Construyendo unas bases sólidas de desarrollo
5.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 desarrollo
5.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 desarrollo
5.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 desarrollo
5.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 desarrollo
5.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

Más contenido relacionado

La actualidad más candente

Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverDavid Gómez García
 
NetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitasNetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitasFelipe Cerda
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTestingUy
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
 
Guia instalación NetBeans como entorno de desarrollo para Android:
Guia instalación NetBeans como entorno de desarrollo para Android: Guia instalación NetBeans como entorno de desarrollo para Android:
Guia instalación NetBeans como entorno de desarrollo para Android: Academia Android
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Desplegando código con Phing, PHPunit, Coder y Jenkins
Desplegando código con Phing, PHPunit, Coder y JenkinsDesplegando código con Phing, PHPunit, Coder y Jenkins
Desplegando código con Phing, PHPunit, Coder y JenkinsLa Drupalera
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Fco Javier Lucena
 
392287381 lenguajes-para-programar-en-android
392287381 lenguajes-para-programar-en-android392287381 lenguajes-para-programar-en-android
392287381 lenguajes-para-programar-en-androidxavazque2
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareJose Manuel Ortega Candel
 

La actualidad más candente (20)

Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
NetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitasNetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitas
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation Gourmet
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Guia instalación NetBeans como entorno de desarrollo para Android:
Guia instalación NetBeans como entorno de desarrollo para Android: Guia instalación NetBeans como entorno de desarrollo para Android:
Guia instalación NetBeans como entorno de desarrollo para Android:
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Desplegando código con Phing, PHPunit, Coder y Jenkins
Desplegando código con Phing, PHPunit, Coder y JenkinsDesplegando código con Phing, PHPunit, Coder y Jenkins
Desplegando código con Phing, PHPunit, Coder y Jenkins
 
Android
AndroidAndroid
Android
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)
 
Jbuilder
JbuilderJbuilder
Jbuilder
 
392287381 lenguajes-para-programar-en-android
392287381 lenguajes-para-programar-en-android392287381 lenguajes-para-programar-en-android
392287381 lenguajes-para-programar-en-android
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 

Destacado (8)

Aplicaciones educativas de Google.
Aplicaciones educativas de Google.Aplicaciones educativas de Google.
Aplicaciones educativas de Google.
 
Gestión del conocimiento para profesionales en entornos digitales
Gestión del conocimiento para profesionales en entornos digitalesGestión del conocimiento para profesionales en entornos digitales
Gestión del conocimiento para profesionales en entornos digitales
 
Informe final (reparado)
Informe final (reparado)Informe final (reparado)
Informe final (reparado)
 
Informe de Practica de Ferroa
Informe de Practica de FerroaInforme de Practica de Ferroa
Informe de Practica de Ferroa
 
Informe practicas envio
Informe practicas envioInforme practicas envio
Informe practicas envio
 
Informe de Prácticas PRE-Profesionales
Informe de Prácticas PRE-ProfesionalesInforme de Prácticas PRE-Profesionales
Informe de Prácticas PRE-Profesionales
 
Proyecto laboratorio de computación
Proyecto laboratorio de computaciónProyecto laboratorio de computación
Proyecto laboratorio de computación
 
Aplicaciones educativas en google
Aplicaciones educativas en googleAplicaciones educativas en google
Aplicaciones educativas en google
 

Similar a Proyect Evenge. Event manager

Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6Maga Lasic
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Presentacion final oop taller
Presentacion final oop tallerPresentacion final oop taller
Presentacion final oop tallerAdán Silva
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y BackEric Zeidan
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denissedenisse_98
 
Herramientas Tecnologicas Virtuales
Herramientas Tecnologicas VirtualesHerramientas Tecnologicas Virtuales
Herramientas Tecnologicas VirtualesJose Andres
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterandrewzg
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Universidadnacionaldechimborazo 140716123849-phpapp02
Universidadnacionaldechimborazo 140716123849-phpapp02Universidadnacionaldechimborazo 140716123849-phpapp02
Universidadnacionaldechimborazo 140716123849-phpapp02Geovanny Yungán
 

Similar a Proyect Evenge. Event manager (20)

Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Atix20
Atix20Atix20
Atix20
 
Atix13
Atix13Atix13
Atix13
 
Testlink
TestlinkTestlink
Testlink
 
Netbeans ide 7.2
Netbeans ide 7.2Netbeans ide 7.2
Netbeans ide 7.2
 
Presentacion final oop taller
Presentacion final oop tallerPresentacion final oop taller
Presentacion final oop taller
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y Back
 
Netbeans ide 7.2(2)
Netbeans ide 7.2(2)Netbeans ide 7.2(2)
Netbeans ide 7.2(2)
 
Netbeans ide 7.2(2)
Netbeans ide 7.2(2)Netbeans ide 7.2(2)
Netbeans ide 7.2(2)
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denisse
 
Herramientas Tecnologicas Virtuales
Herramientas Tecnologicas VirtualesHerramientas Tecnologicas Virtuales
Herramientas Tecnologicas Virtuales
 
Net Beans
Net BeansNet Beans
Net Beans
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Universidadnacionaldechimborazo 140716123849-phpapp02
Universidadnacionaldechimborazo 140716123849-phpapp02Universidadnacionaldechimborazo 140716123849-phpapp02
Universidadnacionaldechimborazo 140716123849-phpapp02
 

Más de Ivan Ortega

Great Firewall & Great cannon
Great Firewall & Great cannonGreat Firewall & Great cannon
Great Firewall & Great cannonIvan Ortega
 
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSSWeb Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSSIvan Ortega
 
Plan de empresa: Cómetec
Plan de empresa: CómetecPlan de empresa: Cómetec
Plan de empresa: CómetecIvan Ortega
 
Presentación #hackathonugr ultimo día (1)
Presentación #hackathonugr ultimo día (1)Presentación #hackathonugr ultimo día (1)
Presentación #hackathonugr ultimo día (1)Ivan Ortega
 
Apache, getting the best version
Apache, getting the best versionApache, getting the best version
Apache, getting the best versionIvan Ortega
 
Learning j query
Learning j queryLearning j query
Learning j queryIvan Ortega
 
Implementing Telematic Services
Implementing Telematic ServicesImplementing Telematic Services
Implementing Telematic ServicesIvan Ortega
 

Más de Ivan Ortega (7)

Great Firewall & Great cannon
Great Firewall & Great cannonGreat Firewall & Great cannon
Great Firewall & Great cannon
 
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSSWeb Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
 
Plan de empresa: Cómetec
Plan de empresa: CómetecPlan de empresa: Cómetec
Plan de empresa: Cómetec
 
Presentación #hackathonugr ultimo día (1)
Presentación #hackathonugr ultimo día (1)Presentación #hackathonugr ultimo día (1)
Presentación #hackathonugr ultimo día (1)
 
Apache, getting the best version
Apache, getting the best versionApache, getting the best version
Apache, getting the best version
 
Learning j query
Learning j queryLearning j query
Learning j query
 
Implementing Telematic Services
Implementing Telematic ServicesImplementing Telematic Services
Implementing Telematic Services
 

Proyect Evenge. Event manager

  • 1. Desarrolladores: ● Carlos Campos Fuentes ● Francisco Javier Expósito Cruz ● Iván Ortega Alba ● Victor Coronas Lara Evenge Gestor de eventos 1
  • 2. ÍNDICE 1. ¿Qué es Evenge? 2. Google App Engine 1. ¿Qué es? 2. ¿Por qué lo hemos usado? 3. ¿Qué ventajas e inconvenientes que presenta? 3. Método de trabajo del equipo 1. 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 desarrollo 1. Herramientas de Provisionamiento 2. Herramientas de IC y despliegue. 3. Herramientas de Tests. 6. Pantallazos de intefaces 2
  • 3. 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
  • 4. ● 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
  • 5. 2. Google App Engine 2.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
  • 6. 2. Google App Engine 2.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
  • 7. 2. Google App Engine 2.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
  • 8. 2. Google App Engine 2.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
  • 9. 3. MÉTODO DE TRABAJO DEL EQUIPO 3.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
  • 10. 3. MÉTODO DE TRABAJO DEL EQUIPO 3.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
  • 11. 4. Diseño de la app 4.1 MVC(Modelo Vista Controlador) 11
  • 12. 4. Diseño de la app 4.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
  • 13. ● 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 app 4.3 Frameworks 13
  • 14. ● 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 app 4.2 Frameworks 14
  • 15. ● 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 app 4.3 Frameworks 15
  • 16. 5. Construyendo unas bases sólidas de desarrollo 5.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
  • 17. 5. Construyendo unas bases sólidas de desarrollo 5.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
  • 18. 5. Construyendo unas bases sólidas de desarrollo 5.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
  • 19. 5. Construyendo unas bases sólidas de desarrollo 5.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
  • 20. 5. Construyendo unas bases sólidas de desarrollo 5.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
  • 21. 6. Pantallazos de interfaces 21 Desde esta pantalla podemos crear un nuevo usuario.
  • 22. 22 Pantalla para el login. 6. Pantallazos de interfaces
  • 23. 23 Desde la sección Mi cuenta, podemos ver los datos del usuario registrado y organizaciones creadas. 6. Pantallazos de interfaces
  • 24. 24 Ésta será la vista por defecto de evenge, donde podremos ver los eventos creados 6. Pantallazos de interfaces
  • 25. 25 Desde ésta página podemos crear un nuevo evento. 6. Pantallazos de interfaces
  • 26. 26 6. Pantallazos de interfaces
  • 27. 27 6. Pantallazos de interfaces