WarpAgain

Este proyecto busca crear un servicio web para la gestión de enlaces favoritos, de la misma forma en que uno los guarda en su navegador, pero almacenándolos en un servidor remoto y teniéndolos disponibles en todos los dispositivos que puedan acceder a una página web. Permitirá compartirlos con gran facilidad, y si se vincula la instancia del programa a servicios de publicidad como Adfly.com podría servir hasta para monetizarlos.

Estoy aprovechando este proyecto para aplicar las enseñanzas del “Uncle Bob”, tanto de su libro como de sus vídeos sobre Clean Code, y me están ayudando a crear un código más estructurado y legible que el que solía escribir. Si le echas un vistazo al repositorio de GitHub es posible que te extrañe, entre otras cosas, la ausencia de comentarios en el código fuente. Es intencional, para experimentar con aquello que decía Robert de que si necesitas poner comentarios es que tu código no es lo suficientemente legible.

Empecé el proyecto utilizando Haxe, un lenguaje que compila a otros lenguajes, pero mis circunstancias han cambiado y no puedo dedicarle tanto tiempo como requeriría. De esta manera, ahora lo estoy programando de una forma más “directa”, con PHP en el lado del servidor. Conozco mucho mejor el lenguaje y al estar más enfocado a la web me resulta más práctico en estos momentos.

La versión Nightly que estoy subiendo a este servidor utiliza SQLite, aprovechando que estoy desarrollando la aplicación tanto para este sistema de bases de datos como para MySQL / MariaDB. Supongo que no dará muchos problemas en PostgreSQL, pero no la estoy probando con él. Gracias al esfuerzo que he hecho en desacoplar la persistencia de los datos, sería posible incluso usar archivos XML, JSON o CSV, añadiendo el código necesario pero sin modificar apenas el ya existente.

La primera versión de WarpAgain la publicaré sin código JavaScript. La idea es que el programa sea perfectamente utilizable sin scripts del lado del cliente, para aquellos que los bloquean por privacidad, o para los dispositivos y navegadores que no lo soportan. El JavaScript que añada más tarde se superpondrá por encima del HTML actual, modificándolo al vuelo allí donde lo necesite, para que convivan las versiones con y sin JavaScript. Durante esta fase tendré que implementar una API REST, que más tarde podré reutilizar si finalmente creo una app para móviles.

Cosas a las que echar un vistazo ahora mismo:

  • El repositorio de WarpAgain en GitHub.
  • La versión Nightly de la web con los últimos avances que voy haciendo. Ahora mismo puedes probar a cambiar el idioma de la sesión, registrarte y loguearte.

    Para el usuario JoanBotella he creado unos pocos elementos públicos que pueden ser visitados sin registrarse. Por ejemplo, la carpeta JoanBotella/social media, y el enlace JoanBotella/social media/Twitter. Si en la carpeta intentas subir un nivel o seguir el enlace a Instagram, verás que pide que te loguees. Esto es así porque esos elementos son privados, y necesitas entrar como JoanBotella, su propietario, para poder verlos. Las credenciales son e-mail j@j.j y contraseña j. En el futuro añadiré algún detalle visual que diferencie los elementos privados de los públicos.

    Puedes loguearte, con tu propio usuario o mediante las credenciales anteriores, y crear algunas carpetas y enlaces. Por favor, no dejes nada comprometido en mi cuenta, ¿eh? 😉