cadizdevelopers / directorio-empresas-tic

Proyecto para coordinación en la creación de un directorio de empresas tic.
6 stars 1 forks source link

Tecnología a usar #2

Open peterlozano opened 9 years ago

peterlozano commented 9 years ago

En este ticket discutiremos (peligro flamewar!!) las posibles opciones para implementar este proyecto.

peterlozano commented 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.

peterlozano commented 9 years ago

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 ;)

JoseTomasTocino commented 9 years ago

+1 a lo que comentas del html estático. Así ni tendríamos que buscar un alojamiento.

jamontes79 commented 9 years ago

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/

3oheme commented 9 years ago

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)

peterlozano commented 9 years ago

@3oheme sería lo suyo, así aparte de la web cualquiera se podría currar una app o algo.

JoseTomasTocino commented 9 years ago

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.

jmanuelrosa commented 9 years ago

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:

JoseTomasTocino commented 9 years ago

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.

cronotrunks commented 9 years ago

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).

peterlozano commented 9 years ago

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.

peterlozano commented 9 years ago

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.

peterlozano commented 9 years ago

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.

JoseTomasTocino commented 9 years ago

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.

peterlozano commented 9 years ago

Como mola :)

fjtorres commented 9 years ago

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