Coder Social home page Coder Social logo

pollfic's Introduction

Pollfic: Aplicación de organización de encuestas hecha en erlang

En Pollfic los usuarios pueden:

  • Servir como host para encuestas.
  • Votar en encuestas (que puden estar hosteadas por el propio usuario o por otros nodos de Pollfic).
  • Funcionar como un Balancer Node de PollFic.
  • Funcionar como un Discover Node de PollFic.

Vista física de la app

Vista fisica

Organización de los archivos de la app

Estructura archivos

Configuración de la aplicación

Existe un fichero de configuración de la aplicación llamado config que se encuentra en la raíz del repositorio. Su contenido es el siguiente:

{discover_dir, {127,0,0,1}}.
{discover_port, 9090}.
{balancer_dir, {127,0,0,1}}.
{balancer_port,8080}.

Configuración necesaria para un nodo cliente:

  • balancer_dir
  • balancer_port

Configuración necesaria para un nodo discover/balancer:

  • balancer_dir
  • balancer_port
  • discover_dir
  • discover_port

Configuración de claves

Antes de poder ejecutar la aplicación sin problemas es necesaria la ejecución del fichero pollfic_keys.sh. Este fichero generará en el directorio raíz un directorio "keys", con dos ficheros de claves pública y privada (public_key.pem y private_key.pem). Este proceso es necesario para el correcto funcionamiento de la aplicación.

Solo es necesario ejecutar el script una vez.

Instrucciones para compilar

En la raíz del repositorio se encuentra el script build.sh:

rm -r `dirname $0`/bin
mkdir `dirname $0`/bin
mkdir `dirname $0`/bin/polls
mkdir `dirname $0`/bin/oldpolls 
erlc -o `dirname $0`/bin/ `dirname $0`/src/server.erl `dirname $0`/src/discover.erl `dirname $0`/src/util.erl `dirname $0`/src/dicc.erl `dirname $0`/src/gui.erl `dirname $0`/src/client.erl `dirname $0`/src/filter.erl `dirname $0`/src/encrypt.erl `dirname $0`/src/balancer.erl `dirname $0`/src/mylist.erl
  • Dar permisos de ejecución al script con chmod +x ~/build.sh .

  • Para compilar, ejecutar el script con bash ~/build.sh.

    El script creará la estructura de directorios /bin necesaria para la ejecución del programa y guardará el código ejecutable dentro de /bin.

  • Antes de ejecutar el programa asegurarse de estar dentro del directorio /bin.

  • Si para una nueva tarea se tuviese que crear un nuevo fichero, sería necesario modificar el script. Añadir el fichero a la línea de compilación (la de "erlc"), de la misma forma que están referenciados el resto de ficheros.

Ejemplo de ejecución

Arrancar el balancer

    balancer:start().

Arrancar el servidor discover

    discover:start().

Utilizar el cliente

  • A través de la interfaz gráfica (Puede dar problemas en linux)
        gui:start().
  • A través de la terminal interactiva de erlang:
        client:find_polls().
        client:poll_details({ServerIP, ServerPort, PollName}).
        client:vote({ServerIP, ServerPort, PollName}, positive).
        client:new_poll(PollName, Description).

pollfic's People

Contributors

bramucas avatar danielgabin avatar palomapiot avatar

Watchers

 avatar

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.