EVENGE

Final certamen de Proyectos Libres UGR 2014-2015

EVENGE

Quienes somos

1

EVENGE, lo constituye un grupo de 4 personas:

 

Carlos Campos                              Iván Ortega

           @ccamposf                                                      @ivanortegaalba

              http://www.ccamposfuentes.es                        http://www.ivanprograma.com

              http://github.com/ccamposfuentes                   http://github.com/ivanortegaalba

 

 Francisco Javier Expósito             

          @franexp                                                          

              http://www.franexposito.es                               

              http://github.com/franexposito

EVENGE

Indice

2

  1. ¿Qué es EVENGE?                     6.  Método de trabajo
  2. Licencias usadas.                        7.  Pantallazos
  3. Google App Engine.                     8.  Demo 
  4. Diseño de la aplicación:                
    1. MVC.
    2. Clases.
    3. Frameworks.​
  5. Buenas técnicas de desarrollo:
    1. Aprovisionamiento.
    2. Integración continua.
    3. Despliegue.
    4. Herramientas de Test.

EVENGE

¿Qué es EVENGE?

3

Evenge es una aplicación para la gestión de eventos.

 

Integrado en la nube mediante Google App Engine.

 

Principios:

  1. Creación y gestión.
  2. Difusión en redes sociales, e-mail y blog.
  3. Generación de informes y asistencia.

EVENGE

¿Qué es EVENGE?

4

Características:

  • Gestión de eventos, usuarios, ponentes y organizaciones.
  • Inscripción de asistentes.
  • Calendarios de eventos.
  • Generación de informes de los eventos.

EVENGE

¿Qué es EVENGE?

5

Para qué usarlo:

Su principal uso será para promocionar y gestionar:

  • Ponencias.
  • Hackathones.
  • Talleres.

Destinado principalmente a eventos relacionados con las Universidades.

EVENGE

Licencias usadas

6

Para el desarrollo de Software, hemos usado la licencia GNU General Public License.

Evenge - gestor de eventos (events management)
Copyright (C) 2014 - desarrollo.evenge@gmail.com
Carlos Campos Fuentes | Francisco Javier Exposito Cruz | Ivan Ortega Alba | Victor Coronas Lara
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.

EVENGE

Licencias usadas

7

Para el contenido multimedia creado tal como esta presentación está licenciado bajo Creative Commons.

EVENGE

Google App Engine

8

Google App Engine nos aporta una solución de Plataforma como Servicio bajo la infraestructura de Google.

EVENGE

Google App Engine

9

¿Por qué hemos usado GAE?

  • Por poder usar la infraestructura de Google
  • Por el soporte a distintos lenguajes de programación.

 

     En nuestro caso, sobre Python.

EVENGE

Google App Engine

10

Ventajas de su uso

  • Datastore.
  • Panel de administración.
  • Facilidad de entorno local.
  • Escalabilidad.
  • Gratuito hasta 500 MB de espacio y 5 millones de visitas mensuales.

EVENGE

Google App Engine

11

Alguna desventaja

  • Soporte para SSL únicamente está disponible para los dominios *.appspot.com.
  • Desarrollo exclusivo para GAE.

EVENGE

Diseño de la aplicación

12

Modelo Vista Controlador (MVC)

Trabaja con los datos.

 

Presentación al usuario final.

 

Según las ordenes del usuario, actúa sobre los datos.

EVENGE

Diseño de la aplicación

9

Diseño de clases

El modelo está dividido en:

  • Usuarios.
  • Organizaciones.
  • Eventos.
  • Asistentes.
  • Ponentes.

13

EVENGE

Diseño de la aplicación

9

Frameworks

Jinja2 es un lenguaje de plantillas que nos permite renderizar script en Python a HTML de una forma "python style".

 

Es rápido, ampliamente utilizado y seguro con el entorno de ejecución.

14

EVENGE

Diseño de la aplicación

9

Frameworks

Se basa en request handle or simply handler.

 

Lo usamos por:

  • Facilidad.
  • Simplicidad.
  • Contiene el mismo sistema de plantillas que Django.

15

EVENGE

Diseño de la aplicación

9

Frameworks

Framework desarrollado en twitter que nos permite crear interfaces web con CSS y Javascript Responsive Design. 

 

Establece estilos rápidamente asignando clases en HTML.

16

EVENGE

Aprovisionamiento

9

Docker

Usamos docker para el aprovisionamiento de un entorno de desarrollo para Evenge.

17

También tenemos un script para automatizar el proceso de instalación de Docker, todas las dependencias que requiere para su correcto funcionamiento e instalamos la imagen producida con el Dockerfile.

EVENGE

Integración continua

9

Shippable

Este sistema de integración continua permite crear, provisionar, testear y desplegar nuestra app en una máquina virtual o en el servidor que deseemos.

18

EVENGE

Despliegue

9

El despliegue se puede realizar mediante la integración continua desarrollada en local.

 

Windows y Mac

Basta tan solo con abrir la app que nos facilita Google, seleccionar nuestro proyecto y pulsar sobre deploy.

19

EVENGE

Despliegue

9

Linux

En linux, al no existir ninguna aplicación creada por Google, debemos de realizar el deploy con el comando:

20

appcfg.py --email=accountname@gmail.com update /ubicacion/app

EVENGE

Herramienta de test

9

NoseGae y Shippable

21

Test Unitarios

def testInsertarEvento(self):
   evenge = Evenge()
   evento = Evento(
          evt.nombre = "Evento de prueba"
          evt.tipo = 1
          ... )
   response = evenge.testInsertarEvento(evento)
   self.assertEqual(response, True)

EVENGE

Herramienta de test

9

NoseGae y Shippable

22

Si el resultado es satisfactorio, nos aparecerá:

EVENGE

Método de trabajo

9

Comunicación

Para la comunicación hemos usado slack.

Nos permite crear diferentes canales e integrarlos entre otros muchos con:

  • GitHub.
  • Twitter.
  • Google docs.

23

EVENGE

Método de trabajo

9

GitHub

Proyecto y blog (bajo Jekyll) almacenado en el repositorio de la organización Evenge.

 

Método de aceptación y revisión de código:

  • Cada integrante tiene su propia rama.
  • Se pasa a master a través de pull request.
  • Solo un integrante es el encargado de realizar el merge.

24

EVENGE

Pantallazos

25

EVENGE

Pantallazos

26

EVENGE

Pantallazos

27

EVENGE

Pantallazos

28

EVENGE

Pantallazos

29

EVENGE

Pantallazos

30

EVENGE

Pantallazos

31

EVENGE

Pantallazos

32

EVENGE

Pantallazos

33

EVENGE

Otros datos de interes

9

Evenge, actualmente cuenta con:

  • 564 commits.
  • 6 contribuidores.
  • Más de 6.000 líneas de código.
  • Actualmente con  146 issues cerrados y 10 abiertos.

34

EVENGE

Demo

9

Es el momento de ver como funciona EVENGE

35

EVENGE

¿Alguna pregunta?

9

GRACIAS POR SU ATENCIÓN

36

Si tienes alguna duda sobre  EVENGE, este es el momento.

@grupoEvenge

http://evenge.github.io

desarrollo.evenge@gmail.com

http://github.com/evenge/EVENGE