#Benicass.im, proyecto con jQuery, AJAX y PHP para amantes de la fotografía en Benicàssim

Hacker

He creado un proyectillo partiendo de cero con PHP, Ajax y jQuery que básicamente sirve como una plataforma donde compartir fotografías de Benicàssim, pero lo interesante es que uso llamadas Ajax para hacer un sistema de puntuación positiva o negativa como Menéame.net, donde las fotos con cierto número de votos pasarán a una portada con un background grande y con efectos jQuery y CSS muy chulos.
Pero además, el sistema de puntuación lo controlo con las direcciones IP de los usuarios y sólo se permite un voto por foto cada día, así que si deseas duplicar tu voto tienes que volver al día siguiente.

Benicass.im es un repositorio social de fotografías de Benicàsism

Y ahora viene lo más friki del asunto: registré un dominio .im en la Isla de Man, así que ahora tengo el dominio benicass.im.

Así que te invito a visitar y subir fotos en http://benicass.im

La web es multilingüe utilizando ficheros de traducciones separados que llamo desde la función include('lenguaX.inc'), así que me es muy fácil incorporar nuevas lenguas a esta web.

El proyecto, ahora experimental, almacena la información de las fotos, fecha, ip's de los usuarios y fecha de cada uno de los votos en una base de datos MySQL con sólo 2 tablas.

Cada vez que subimos una fotografía, creo tres resoluciones diferentes de dicha fotografía con mogrify sobre GNU/Linux: una versión para los thumbs de la portada, otra para las cajitas del apartado de votación y otra para dentro de las fotos.
Espero que no vaya muy lento el proceso de subida.

Para mi lo más alucinante de programar una aplicación así es darte cuenta de lo potentes que son los lenguajes de programación orientados a la web en la actualidad, lo rápido que interactúan entre ser humano y servidor de aplicaciones, y lo fácil que es añadir una nueva funcionalidad tan sólo consultando a la Comunidad de programadores en foros especializados.

Benicassim.im - Benicasim

A continuación algunas consultas de creación de tablas y de recuento de votos que he utilizado, por si a alguien le sirve:

Creación tabla "fotos"


CREATE TABLE fotos ( id int not null auto_increment, fecha date, foto varchar(60), nom varchar(60), correu varchar(70), categoria varchar(50), PRIMARY KEY(id));

Añado dos columnas "negativos" y "positivos" para los votos en las fotos:


ALTER TABLE fotos ADD COLUMN negativos int(5) default 0;
ALTER TABLE fotos ADD COLUMN negativos int(5) default 0;

Creación tabla "control"


mysql> CREATE TABLE control (id int not null auto_increment, fotoid int(8), fecha date, ip varchar(20), PRIMARY KEY(id));

Añado un nuevo campo para almacenar el tipo de voto, así luego podremos hacer un seguimiento en "Actividad":


mysql> ALTER TABLE control ADD COLUMN tipovoto varchar(10);

El mecanismo de control de votos por IP consiste en recontar por IP, número de ID de la foto y por fecha. Si hay más de 1, se le deniega:


mysql> select count(*) from control where fotoid="2" && ip="192.168.4.5" && fecha="2012-10-12";

Añado el campo "fechaampliada" donde almacenaré la fecha y la hora (con minutos y segundos) de subida de las imágenes para proceder a ordenar correctament las fotografías. Para ello realizo:


ALTER TABLE control ADD COLUMN fechaampliada datetime;

Como el formato es 2041-11-12 15:10:12 crearé la variable en la página "puja.php" de tal manera:

$data_avui_completa = date("y-m-d H:i:s");

Bueno, de aquí hasta el infinito... quiero decir que una aplicación es como una canción o una película: acaba donde tú quieras que acabe.
Iré añadiendo algunas funcionalidades si detecto errores de usabilidad o mejoras que pueden agrandar notablemente la web, aunque de momento la dejo en piloto automático.
También crearé alguna aplicación para Android para practicar a parsear y capturar datos de webs externas. Seguiré informando.

Mientras tanto, te invito a usar la web y difundirla entre los contactos que creas que les puede interesar.

¡saludos!

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.