Giter VIP home page Giter VIP logo

geventator's Introduction

GEventator

"AWS" "Ansible" "Vagrant" "Docker" "mLab" "Papertrail"

Introducción

Descripción del problema

Gestionar un evento no es una tarea fácil, se mueve una gran cantidad de dinero, que no es tuyo y por tanto recae sobre ti una enorme responsabilidad. Hacerlo entre un grupo de personas puede ayudar a la hora de repartirse tareas, pero pueden surgir problemas a la hora de coordinarse. Si cada organizador lleva su propio control de la contabilidad se replica información y a menudo surgen incongruencias.

Solución propuesta

La idea es desarrollar un software para facilitar toda esta gestión y que sea accesible en todo momento para cualquier organizador. La funcionalidad principal de éste es poder llevar a cabo la gestión económica de un evento (compras, ventas, inversiones, donaciones, patrocinios...). Por otra parte también se podrá gestionar la tabla de actividades que se realizarán durante el evento.

Tecnología utilizada

Arquitectura

Se utilizará una arquitectura basada en microservicios, la cual se caracteriza por usar servicios desplegados independiente y que funcionan también independientemente unos de otros.

El núcleo de esta arquitecutra es una API REST programada en Flask.

Microservicios

Se podrían tener tres microservicios actuando de forma independiente los unos con los otros (correspondientes a cada uno de los módulos de la aplicación):

  • Gestión de usuarios
  • Gestión de eventos
  • Gestión de transacciones

Cada uno de estos con su correspondiente base de datos.

"arquitectura de microservicios"

Back-end

Se utilizará Flask como framework para desarrollar el back-end (tanto la API REST como los distintos microservicios) junto con varias bases de datos MongoDB.

Front-end

Si se llega a desarrollar el front-end, se usará HTML, CSS y JavaScript usando Materialize como framework.

Provisionamiento

Ansible

Para provisionar una máquina virtual AWS con una imagen de Ubuntu Server 14.04 usando Ansible hay que seguir las instrucciones detalladas aquí. Con esto se instalará: Git, MongoDB, pip y usando pip: Flask y Flask-PyMongo.

Chef

Para provisionar una máquina virtual AWS con una imagen de Ubuntu Server 14.04 usando Chef hay que seguir las instrucciones detalladas aquí. Con esto se instalará: Git, MongoDB, pip y usando pip: Flask y Flask-PyMongo.

Orquestación

Para orquestar máquinas virtuales se ha utilizado Vagrant. Estas máquinas virtuales son las mismas que se usaron en el apartado de provisionamiento (la AMI de Ubuntu Server 14.04 de AWS) y como sistem de provisionamiento Ansible. Las instrucciones detalladas se encuentran aquí.

Contenedores

Se usa Docker para el uso de contenedores. Las instrucciones para instalarlo están aquí. Asímismo se ha creado un repositorio en Docker Hub que se actualiza cada vez que se actualiza este repositorio en GitHub.

Despliegue

Para el despliegue final de la aplicación se ha puesto en práctica todo lo visto en la asignatura. Se utiliza:

  • AWS (máquinas virtuales Ubuntu 16.04)
  • Ansible (provisionamiento)
  • Vagrant (orquestación)
  • Docker (contenedores)
  • mLab (DaaS)
  • Papertrail (LaaS)

Los detalles de la elección de esta tecnología así como más información se encuentran aquí.

Licencia

El software está sujeto a la licencia GNU GPL v3.

geventator's People

Contributors

fblupi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

erseco

geventator's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.