Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Programa para elegir ganador en sorteo gambas-es.org
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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: 264 veces
kapipal.csv
Descripción: Fichero de ejemplo 
Descargar
Nombre del archivo: kapipal.csv
Tamaño: 999 Bytes
Descargado: 264 veces
kapipal.csv
Descripción: Fichero de ejemplo 
Descargar
Nombre del archivo: kapipal.csv
Tamaño: 999 Bytes
Descargado: 264 veces

 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org 
 
Sorry, no time. Good luck   
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programa Para Elegir Ganador En Sorteo Gambas-es.org 
 
Me too..

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
portaro - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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: 250 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: 250 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: 250 veces

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programa para elegir ganador en sorteo gambas-es.org 
 
Casi casi lo hemos calcado... cuando llegue a casa lo subo  

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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: 248 veces
Test.tar.gz
Descripción: Programa sorteo gambas-es 
Descargar
Nombre del archivo: Test.tar.gz
Tamaño: 5.95 KB
Descargado: 248 veces
Test.tar.gz
Descripción: Programa sorteo gambas-es 
Descargar
Nombre del archivo: Test.tar.gz
Tamaño: 5.95 KB
Descargado: 248 veces

 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 17 Agosto 2014, 20:12; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron