Programa para elegir ganador en sorteo gambas-es.org


Ir a la página 1, 2  Siguiente

Objetivo: Programa para elegir ganador en sorteo gambas-es.org
Hola a todos/as

Como ya anuncié anteriormente y se recoge en las bases, vamos a hacer entre todos los que queráis colaborar un programa para elegir ganador de el sorteo actual de manera que sea lo más justo y transparente posible basándonos en el fichero que genera el sistema Kapipal donde se recogen las donaciones y en la generación de un número aleatorio en tiempo real desde Internet.

Paso a explicar los puntos que deben tenerse en cuenta:

  1. El diseño ha de ser lo más simple posible, sin colores chillones, imágenes ni nada. Limpio y usando contenedores Hbox, Vbox, etc. Más abajo hay un mockup de ejemplo.
  2. El fichero csv con la lista de participantes lo descargaré llegado el momento de la página de las donaciones y será el que use el programa.
  3. El programa abrirá un diálogo para elegir el fichero .csv y comprobará si éste es el correcto (por ejemplo por el número de campos y alguna cabecera)
  4. Si es correcto, se cargará en un gridview para mostrar los registros y se eliminarán los campos vacíos, comillas, etc.
  5. Internamente el programa cargará esos datos en objetos array de estructuras mediante split y calculará el número de participaciones según la cantidad en "Reward".
    • Hay que tener en cuenta que donaciones por debajo de 10 euros no tienen recompensa, por lo tanto no participan.
    • Si hay participantes que han colaborado más de una vez, hay que tener en cuenta que la cantidad "Reward" se suma a su total.
    • Cuando sepamos la cantidad final de participaciones por cada participante (mirar las bases aquí) hay que crear un objeto que mapee un participante repetido tantas veces como participaciones tenga con un número consecutivo asignado por cada participación. Por ejemplo:

      2014-03-09 19:29:03;20;EUR;"Curro";"Jiménez";"pacoloco@email.no";"";"";"";"";"";"20";"False";"Completed"

      Curro Jiménez ha donado 20 euros por lo que tiene 2 participaciones. Pero si nos fijamos, ha donado dos veces, por lo que hay que sumar la otra:

      2014-06-15 19:29:03;20;EUR;"Curro";"Jiménez";"pacoloco@email.no" ;"";"";"";"";"";"20";"False";"Completed"

      Entonces este señor tiene 4 participaciones que debemos mapear en un objeto posiblemente así:

      Numero sorteo, participante

      2, Curro Jimenez
      3, Curro Jimenez
      4, Curro Jimenez
      5, Curro Jimenez

      y seguimos con el siguiente:

      6, Franco Tirador
      7, Loco Lacolina
      8, Loco Lacolina
      9, Loco Lacolina
      10, Loco Lacolina
      11, Loco Lacolina

      El resultado será un objeto (¿colección?) conteniendo como key el número asignado para el sorteo y como value, el nombre del participante.

    • Llega el momento de escoger un número comprendido en el rango de números resultantes desde el 1 al n. Para ello recurrimos a una fuente de números aleatorios fiable y aleatorios de verdad, no pseudoaleatorios.
    • Usando un servicio web http://www.random.org podemos mediante la clase httpclient obtener dicho número mediante una API que proporciona dicho servicio:

      http://www.random.org/integers/?num=1&min=1&max=N&col=1&base=10&format=plain&rnd=new

      Nota: No abusar con las peticiones a esta web, si excedéis el límite, vuesta IP puede ser baneada!!

      El único parámetro que hay que cambiar es max=N, siendo N el número máximo resultante de la colección anterior.

      El número resultante se buscará en la colección y ya tenemos ganador.

  6. Una vez conocido el ganador, se marcará el registro correspondiente en el gridview con otro color y usando la dirección de correo electrónico, se le enviará un mensaje informativo usando sólo las clases de gambas smtp.
  7. El programa debería de estar finalizado, probado y libre de bugs antes del día 5 de septiembre.
  8. El día 7 de septiembre se procederá a su utilización para elegir al ganador y el proceso será grabado en vídeo y probablemente emitido en directo a través de hangouts, para el que quiera seguirlo. Se anunciará la hora exacta llegado el momento.


Creo que eso es todo. Por supuesto, el algoritmo es uno de tantos que se pueden usar, pero no el único, por lo que podemos discutirlo en este mismo hilo, que usaremos para intercambiar ideas y código.

Ánimo, ya tenemos tarea para no aburrirnos durante las vacaciones


Listado de ejemplo csv. Más abajo podéis descargar el fichero de ejemplo para realizar las pruebas.

Código: [Descargar] [Ocultar]
  1. "Date";"Amount";"Currency";"First Name";"Last Name";"Email";"Address";"Zip/Postal Code";"City";"State/Province";"Country";"Reward";"Offline";"PayPal Status"
  2. 2014-03-09 23:40:06;40;EUR;"Pepito";"Palotes";"pepalo@email.que";"";"";"";"";"";"40";"False";"Completed"
  3. 2014-03-09 19:29:03;20;EUR;"Curro";"Jiménez";"pacoloco@email.no";"";"";"";"";"";"20";"False";"Completed"
  4. 2014-03-10 19:03:01;10;EUR;"Franco";"Tirador";"frtirano@mbox.li";"";"";"";"";"";"10";"False";"Completed"
  5. 2014-04-10 19:03:01;50;EUR;"Loco";"Lacolina";"locolc@liame.moc";"";"";"";"";"";"50";"False";"Completed"
  6. 2014-05-09 19:29:03;5;EUR;"Leandro ";"Gado";"yonki@punto.pelota";"";"";"";"";"";"";"False";"Completed"
  7. 2014-06-15 19:29:03;20;EUR;"Curro";"Jiménez";"pacoloco@email.no" ;"";"";"";"";"";"20";"False";"Completed"
  8. 2014-08-01 16:22:01;20;EUR;"Aitor";"Tilla";"depatatas@concebolla.com";"";"";"";"";"";"20";"False";"Completed"
  9. 2014-08-01 16:22:01;10;EUR;"Rosa";"Melpito";"con@cuidado.ar";"";"";"";"";"";"10";"False";"Completed"
  10.  


Maqueta del posible aspecto del programa:
sorteo_app


Programa usado para generar la maqueta (GPL):
http://pencil.evolus.vn/

Saludos


kapipal.csv
Descripción: Fichero de ejemplo 
Descargar
Nombre del archivo: kapipal.csv
Tamaño: 999 Bytes
Descargado: 273 veces
kapipal.csv
Descripción: Fichero de ejemplo 
Descargar
Nombre del archivo: kapipal.csv
Tamaño: 999 Bytes
Descargado: 273 veces
kapipal.csv
Descripción: Fichero de ejemplo 
Descargar
Nombre del archivo: kapipal.csv
Tamaño: 999 Bytes
Descargado: 273 veces

Perfil MP  
Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
Sorry, no time. Good luck

Perfil MP  
Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
Me too..

Saludos

Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
Yo no tengo conocimientos para eso auque si pudiera lo haria, me parece una buena idea. A ver si alguién con experiencia se suma.

Perfil MP  
Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
Os dejo mi versión Beta 0.0.1

- Falta testearlo más (lo he probado con varios casos, y va bien, pero puede contener errores)

- Falta:
Citar:
se marcará el registro correspondiente en el gridview con otro color y usando la dirección de correo electrónico, se le enviará un mensaje informativo usando sólo las clases de gambas smtp.

Lo he sustituido por un mensaje en pantalla...

El resto de las opciones estan implementadas. Ademas en la terminal salen algunos mensajes y el código esta algo comentado (un poco siguiendos los pasos que comentaba jguardon)

sorteokapital

Saludos


SorteoKapital-0.0.1.tar.gz
Descripción: Version 0.0.1 Beta!!!! 
Descargar
Nombre del archivo: SorteoKapital-0.0.1.tar.gz
Tamaño: 8.53 KB
Descargado: 261 veces
SorteoKapital-0.0.1.tar.gz
Descripción: Version 0.0.1 Beta!!!! 
Descargar
Nombre del archivo: SorteoKapital-0.0.1.tar.gz
Tamaño: 8.53 KB
Descargado: 261 veces
SorteoKapital-0.0.1.tar.gz
Descripción: Version 0.0.1 Beta!!!! 
Descargar
Nombre del archivo: SorteoKapital-0.0.1.tar.gz
Tamaño: 8.53 KB
Descargado: 261 veces

Objetivo: Re: Programa para elegir ganador en sorteo gambas-es.org
Casi casi lo hemos calcado... cuando llegue a casa lo subo

Saludos

Perfil MP  
Objetivo: Re: Programa para elegir ganador en sorteo gambas-es.org
Hola
Bueno, ahí va mi versión, pero ojo, porque el fichero de ejemplo csv que puse, no es del todo correcto: en la primera fila de cabecera, los títulos no llevan comillas... Lamento la equivocación, ya que edité a mano el fichero para no publicar datos reales.

Realmente Julio, los dos pensamos en usar una estructura para almacenar un registro, pero el resto no tiene nada que ver, aunque incluso hayamos casi coincidido con algunos nombres de variables.
Sin embargo al final me he ahorrado un objeto Collection, usando un truquillo en el gridview

En la parte de envío de correo, hay que colocar un servidor smtp válido, y según está el código no va a funcionar con google o hotmail.

En mis pruebas, ya es completamente funcional, aunque todavía se le puede adornar un poco en cuanto a mensajes e interacción. Pero cumple con su cometido.


Test.tar.gz
Descripción: Programa sorteo gambas-es 
Descargar
Nombre del archivo: Test.tar.gz
Tamaño: 5.95 KB
Descargado: 259 veces
Test.tar.gz
Descripción: Programa sorteo gambas-es 
Descargar
Nombre del archivo: Test.tar.gz
Tamaño: 5.95 KB
Descargado: 259 veces
Test.tar.gz
Descripción: Programa sorteo gambas-es 
Descargar
Nombre del archivo: Test.tar.gz
Tamaño: 5.95 KB
Descargado: 259 veces

Perfil MP  
Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
jguardon:

Habrá que estudiar como lo has resueltoo, seguro que comparando los dos proyectos, se puede aprender mucho.
Podiamos hacer un hangouts con google, y presentar los dos programas explicando como los hemos hecho cada uno.

portano:
Citar:
Yo no tengo conocimientos para eso auque si pudiera lo haria, me parece una buena idea

Aqui tienes dos códigos que seguro puedes aprender de ellos, y adquirir los conocimientos que te falten.. y si tiene alguna duda, ya sabes... pregunta.

Saludos

última edición por jsbsan el Domingo, 17 Agosto 2014, 20:12; editado 1 vez
Objetivo: Re: Programa para elegir ganador en sorteo gambas-es.org
Bueno, quedan 4 días para el sorteo y a falta de opiniones, creo que usaré el que he hecho yo.

Antes me gustaría hacer una prueba con hangouts, para que no haya fallos el día del sorteo. Julio, ¿te animas y hacemos alguna prueba esta noche o mañana por la noche?

Os dejo también la página de Google+ donde se anuncia el evento y desde donde también se podrá seguir en directo.

https://plus.google.com/+GambasesOrg_foro/posts

Saludos

Perfil MP  
Objetivo: Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org
Citar:
¿te animas y hacemos alguna prueba esta noche o mañana por la noche?


Ok, confirmame hora y dia, y nos vemos

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 3.8907s (PHP: -95% SQL: 195%)
Consultas SQL: 47 - Debug off - GZIP Activado