Open peterlozano opened 9 years ago
Empezaré tirando pa casita y decir que un proyecto así se desarrolla fácilmente en Drupal con prácticamente cero programación para la funcionalidad básica que queremos.
Pero me gustaría escuchar otras opciones y ver como lo plantearíais cada uno de vosotros.
Otra opción un tanto alocada, pero muy hipster, es crearlo en html/js estático y alojarlo gratis en github pages. Los datos podrían almacenarse en un json, y por supuesto para añadir tu empresa deberías hacer un pull request ;)
+1 a lo que comentas del html estático. Así ni tendríamos que buscar un alojamiento.
Otra opción interesante sería usar un wordpress con este plugin que es gratuito y está muy completo: https://wordpress.org/plugins/business-directory-plugin/
Para hacerlo hipster total te creas un microservice rest* que solo se preocupe del contenido, y luego otro microservice para mostrarlo, usando react o algún framework raro (pero que sea JS)
@3oheme sería lo suyo, así aparte de la web cualquiera se podría currar una app o algo.
Creo que dependerá de la funcionalidad que se busque. Si nos interesa, por ejemplo, poder filtrar las empresas que utilicen PHP, pues entonces sí que hará falta algo de fuerza en el backend... O no, simplemente descargar siempre el JSON completo y hacer todo el filtrado en cliente. Yo lo digo por ahorrarnos infraestructura vamos.
Otra alternativa a Drupal o Wordpress, es Jekyll, que usa las Github Pages :smile: Si no, también tenemos Ghost.
Sobre el uso de REst, es como dice @JoseTomasTocino, depende del grueso que queramos darle. A nivel de front, Angular, ReactJS con Flux o Backbone/Marionette son muy buenas opciones.
Podéis contar con mi hacha ! :stuck_out_tongue_closed_eyes:
Yo uso Ghost CMS y no vendría nada bien para este proyecto. Está muy verde para cualquier cosa que no sea un blog pelao y mondao. Pa eso usamos WordPress y ACF.
Yo fasearía, porque si no, me veo que pasa el tiempo y no tenemos nada :-)
1) Versión html estático a la que ir añadiendo contenido vía repositorio git + pull requests. Se puede usar github pages sin ningún problema y esto sí que es rápido y sencillo de montar. 2) Montar una API Rest para consumir los datos desde donde queramos y miniaplicación JS para la web. La solución JS la puede decidir directamente quien/es vayan/mos a trabajar sobre el código (creo que en este caso la tecnología a usar carece de importancia y debería ser aquella con la que más cómodo se sienta quien vaya a currar sobre el terreno).
Resumiendo un poco lo que hemos ya dicho aquí:
Opciones backend: A) NO BACKEND. Almacenar todos los datos en un json, que deba ser editado a mano (en principio) y que la totalidad de los datos se mande a la aplicación al inicializarse. Ventajas 1: No necesita hosting, la aplicación se puede hospedar de manera gratuita en github pages ya que todo el contenido es estático. Ventaja 2: Ya que todos los datos se mandan a la aplicación de golpe, los temas de filtrado van a ser muy rápidos ya que se realiza todo en el navegador. Inconveniente 1: Poca flexibilidad de cara al futuro, por ejemplo si se acaban teniendo demasiados datos, ya que hay quemandarlos todos de golpe al navegador, y poca flexibilidad para que otras personas creen otras aplicaciones, como una app movil.
B) Sí Backend. En este caso tendríamos una api que permitiría recuperar los datos y hacer filtrados. El frontend haría peticiones a esta api. Ventaja 1: Carga inicial de la aplicación más rápida. Permite mayor flexibilidad a largo plazo y crear terceras aplicaciones que usen los datos. Inconveniente 1: Hace falta un hosting para la api.
Aparte de todo esto, luego tendríamos que idear la forma en que cualquier usuario novel pueda añadir su empresa al directorio. En principio nosotros podemos editar el json a mano o lo que sea, pero lo suyo es que en un futuro no muy lejano haya algún tipo de formulario o backend donde se gestionen.
Viendo los comentarios hasta ahora aquí y en Facebook, parece que la versión estática+js está cogiendo fuerza. Los que vamos a colaborar en un principio en esto dominamos mas o menos bien la técnica, así que por mi no hay problema.
Ya que vamos a usar el wiki para introducir los datos, y los wikis de github son también repositorios con ficheros en markdown.. se podría tener un script que hiciera pull regularmente del wiki, parsee (o lo intente) el markdown con la lista de empresas y genere el json para la aplicación.
He hecho un pequeño script en Python que parsea el markdown del wiki y lo formatea en JSON, lo tengo montado ahora mismo con Flask en Heroku (https://rocky-refuge-1505.herokuapp.com/). El código está en https://github.com/JoseTomasTocino/directorio-empresas-tic/blob/master/directorio_empresas.py No he hecho pull request porque aún no está claro cómo se va a hacer la cosa, así que no tiene sentido meter código en el repo principal.
Es un poco chungui, porque en cada petición se pide el markdown y se parsea, y lo ideal tener algo rollo Celery que haga el parseo periódicamente, pero bueno es un comienzo.
Como mola :)
Yo hace tiempo estaba desarrollando una aplicación con Scala para esto mismo, fue durante el curso de Raul sobre Scala. No es mucho pero bueno lo mismo algo puede ser de utilidad.
Repositorio: https://github.com/fjtorres/software-companies-list
En este ticket discutiremos (peligro flamewar!!) las posibles opciones para implementar este proyecto.