eldelentes / comoayudarmx

Repositorio de información para ayudar en desastres naturales.
http://comoayudar.mx
MIT License
81 stars 104 forks source link

Requisitos Backend #36

Closed miguejs closed 7 years ago

miguejs commented 7 years ago

Tengo la pagina levantada en rails en local, estoy creando los modelos me gustaria saber como llamarlos, en un principio les iba poner card y contact pero no se si tienen una mejor idea.

PatoBeltran commented 7 years ago

Justo ando trabajando en lo mismo usando express para el backend y react para el frontend, como lo consolidamos en uno solo?

miguejs commented 7 years ago

Que avance tienes de tu backend ?

PatoBeltran commented 7 years ago

Estoy terminando el setup para comenzar a escribir los modelos.

eldelentes commented 7 years ago

Algo importante es considerar que esto debería ser replicable para todo tipo de eventos.

Que tenga su propia instancia como: http://comoayudar.mx/sismo-mexico o /oaxaca, etc...

También el i18n es importante...

miguejs commented 7 years ago

@PatoBeltran Si ya tienes algo solido podrias crear el pull request o un repo para contribuir todos en el mismo backend.

miguejs commented 7 years ago

Por lo que veo un Modelo de Evento estaria bien para ese caso que describe @eldelentes

Event
- title
- location
- event_date
PatoBeltran commented 7 years ago

Apenas tenga el backend con el modelo de event lo uso a una branch para que podamos colaborar

miguejs commented 7 years ago

Excelente

PatoBeltran commented 7 years ago

Aqui hay una version 0.1 https://github.com/PatoBeltran/comoayudarmx/tree/use-mern, todavia hay mucho que moverle para que se considere listo para produccion, pero creo que esta en un estado en donde podemos empezar a paralelizar para tener el sitio listo... Si quieres puedes seguir lo que hice para el backend, esta dentro de src/api. Yo empezare a arreglar el frontend para que este conectado al backend y no solo sea un template e ir pasando todo lo que ya esta en este repo de frontend

jjeb commented 7 years ago

Chale, no lei este Issue antes.

Yo tambien hice una app en rails, en teoria quedo funcional para el funcionamiento de el sitio como esta ahorita, estoy utilizando rails admin para manejar el backend.

les dejo el link por si les interesa, mi intension era ponerlo en heroku o algo asi.

https://github.com/jjeb/comoayudarmx

independientemente de se use o no, avisen si les puedo ayudar con algo.

para accesar al admin es nas mas /admin

sirgalleto commented 7 years ago

Qué les parece usar firebase? no requerirá mucho esfuerzo y se puede implementar rápidamente con JS

miguejs commented 7 years ago

@PatoBeltran me podrias dar acceso a tu fork para poder contribuir ?, hice el modelo de card.

elbaloo commented 7 years ago

porfa echenle un ojo a #97 pa considerar lo necesario

javarv87 commented 7 years ago

Chicos ya tiene algo hecho del backend?? Estaba comenzando a trabajar algo con angular y firebase saldre unas horas pero regreso a ver que mas se puede ayudar

JPIglesias-Triangle commented 7 years ago

@javarv87 Me parece buena idea usar Angular y Firebase

elbaloo commented 7 years ago

propuesta de backend -> #105

elbaloo commented 7 years ago

cc @mikebolivar @zodman @dejitaru @lucks @suiz0

sirgalleto commented 7 years ago

Quiero pensar con detenimiento qué es lo que se quiere lograr con añadir backend.

Esta mañana subí un PR con mi propuesta de añadir firebase para persistir en la nube los cards ya existentes #78, nada de mucho trabajo pues lo que me motivó fue añadir de una manera más rápida cards. Pero sigue la pregunta sobre cuál es la verdadera necesidad de backend y cuál es el beneficio real teniendo en cuenta que la velocidad es uno de los factores más importantes.

jose-carrasco commented 7 years ago

Hola, yo ya tengo un backend corriendo con admin en django: http://donamexico.herokuapp.com

jose-carrasco commented 7 years ago

@sirgalleto creo que el beneficio de tener un backend es que se puede manejar toda la información en un admin tipo CMS sin necesidad de hacer pull request por cada una de las tarjetas y sin necesidad de modificar el html

miguejs commented 7 years ago

Me parece bien la solución de user Firebase de @sirgalleto, solo deberias hacer una forma de crearlas mediante un formulario en la página, y no tener que usar el admin de firebase para agregar cards.

miguejs commented 7 years ago

Y consideren de que debe haber alguien revisando el contenido que se sube a las cards, si lo dejamos abierto puede ocasionar que suban informacion basura.

sirgalleto commented 7 years ago

@PatoBeltran tus deseos son órdenes #78

@miguejs no estoy muy de acuerdo con eso, y no quiero decir que es mucho esfuerzo lanzar un formulario. Sin embargo en la consola de firebase ya podemos actuar rápidamente para añadir un card. Tampoco el formulario está abierto.

La solución que debemos proveer con comoayudar tiene que ver con qué información contamos y con la velocidad en la que podamos implementar todo lo que necesitemos mostrar. Si nos enfocamos en pensar qué tecnologías + qué protocolos + qué frameworks + el tiempo que demande esto + el soporte necesario, no estamos llegando a donde deberíamos llegar.

Las propuestas acá deben ser ágiles y totalmente seguras.

PD: @eldelentes excelente desición contar con algo altamente funcional con una implementación sencilla 👏

mikebolivar commented 7 years ago

Solo agregar este boton a un landing page y vuala :)

https://www.paypal.com/mx/webapps/mpp/donar/institution?name=redCross

El 20 de septiembre de 2017, 14:29, Sebastián Osorio < notifications@github.com> escribió:

@PatoBeltran https://github.com/patobeltran tus deseos son órdenes #78 https://github.com/eldelentes/comoayudarmx/pull/78

@miguejs https://github.com/miguejs no estoy muy de acuerdo con eso, y no quiero decir que es mucho esfuerzo lanzar un formulario. Sin embargo en la consola de firebase ya podemos actuar rápidamente para añadir un card. Tampoco el formulario está abierto.

La solución que debemos proveer con comoayudar tiene que ver con qué información contamos y con la velocidad en la que podamos implementar todo lo que necesitemos mostrar. Si nos enfocamos en pensar qué tecnologías + qué protocolos + qué frameworks + el tiempo que demande esto + el soporte necesario, no estamos llegando a donde deberíamos llegar.

Las propuestas acá deben ser ágiles y totalmente seguras.

PD: @eldelentes https://github.com/eldelentes excelente desición contar con algo altamente funcional con una implementación sencilla 👏

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/eldelentes/comoayudarmx/issues/36#issuecomment-330956286, or mute the thread https://github.com/notifications/unsubscribe-auth/AEL_5Lxo66vDabK6to3a8b5BcUUP-M5Tks5skWengaJpZM4Pdaq2 .

PatoBeltran commented 7 years ago

creo que por ahorita si esta bien usar firebase como dice @sirgalleto, es lo mas facil y rapido y tiene un buen limite ... porque no se ha dado merge a ese PR?

sirgalleto commented 7 years ago

Luego, cuál será el mecanismo para añadir una nueva card?

Propuesta

  1. Abrir un issue con el nombre place - type
  2. Añadir tag in review.
  3. Buscar approval de x número de personas, esto para verificar autenticidad. Me gustaría que los approvals solo sean de personas conocidas.
  4. Añadirlo a la DB/firebase
  5. Marcar como reviewed y poner el id que tiene en DB.
  6. La persona que submiteo la data se hace responsable de subir los posibles updates.
miguejs commented 7 years ago

Conversando con el @eldelentes, consideramos que el backend aún no es prioridad, al menos no de momento y por eso no se ha hecho merge en master, el problema es que hay muchas soluciones distintas al mismo problema y hay muchos devs aportando, la solución de @sirgalleto parece ser la más completa pero creo que seria mejor trabajarlo a parte de momento.

Lo más adecuado sería llevar esta conversación a slack (el link se encuentra en el issue #55) , y llegar a una mejor solución entre todos.

genitalico commented 7 years ago

Oigan, me acabo de enterar de backend, creo que fundamentalmente necesitamos dos cosas, una abrir un nuevo hilo para los requisitos reales, por que ya lei todo este hilo y me perdi un poco con la necesidad real, dos yo puedo contribuir con nodejs+mongodb para el back.

Otra cosa, veo que comentan que firebase es rapido y facil de montar y llevan razon, pero siento que no es buena opcion montar el back y la info en una tecnologia de la cual no podremos salir si usamos firebase solo podemos usar firebase con Google, mi recomendacion seria usar tecnologias las cuales podamos replicar con facilidad, mongodb y nodejs no estan atenidos a una empresa y tecnologia, incluso para los que sabemos de backend podemos tener un entorno mongodb en un lugar especifico de ayuda (albergue etc) y replicar la base de datos y tener el sistema local y online y lo que se vaya subiendo online, en el momento en que tengan conexion a internet el albergue se puede sincronizar las base de datos y replicarse. esto puede servir para muchas cosas

sirgalleto commented 7 years ago

@miguejs donde hay un lugar con las verdaderas necesidades?

PatoBeltran commented 7 years ago

estoy de acuerdo que un buen backend en forma no es prioridad, yo estoy trabajando en mi fork para agregar un backend y pasar el front a react y mantenerlo al tanto con todas las features que estan agreagando para que en el momento que ya sea util un backend poder hacer el switch sin problema. Por ahora deberiamos de enfocarnos en otros features/agregar la inforamcion

genitalico commented 7 years ago

@PatoBeltran @eldelentes y @miguejs que son los utlimos del comentario, yo estaba trabajando desde ayer en la noche pero por motivos de tiempo, no he podido aterrizar un back y front (pero mas back) sobre una lista de personas desaparecidas y /o el estado de las mismas, esto para el sismo pero se puede extender para personas en general, siento que google person find no es funcional, y ademas alerta amber tampoco veo facil de usar y explotar la informacion en momentos de necesidad como esta

sirgalleto commented 7 years ago

@genitalco Necesitamos replicar una base de datos? necesitamos mantener un API in house? cuánto cuesta ese desarrollo? el soporte?. Se va a usar en un largo plazo como para que la inversión valga la pena?. Siquiera estoy seguro de cuántos datos vamos a poder re usar en un evento futuro como para mantener una DB.

genitalico commented 7 years ago

@sirgalleto en efecto el mantenimiento es "caro" y lo de las replicas viene precisamente por esta razon, por que en mongodb tu puedes montar una pc en tu casa unirte a los nodos replica de por ejemplo el servidor back de esta ayuda y vuala tienes la misma base de datos del servidor, que en caso de falla o caida tu puedes montar y echar andar y asi, claro es un poco mas complejo de lo que suena pero no tanto, ahora por el costo y mantenimiento real de mantener una api asi, pues se podria orgaizar u organizarnos para obtener recursos de alguna AC, como ves?

sirgalleto commented 7 years ago

@genitalco Veo que si fuera un proyecto que mereciera tanta ingeniería estaría genial, pero creo que acá no es necesario. Digo, el ideal acá es ayudar con lo más efectivo en lugar de buscar que la ingeniería resalte

javarv87 commented 7 years ago

Totalmente de acuerdo pero hay que pensar en que se quiere seguir usandolo

El 20/09/2017 3:16 p. m., "Sebastián Osorio" notifications@github.com escribió:

@genitalco Veo que si fuera un proyecto que mereciera tanta ingeniería estaría genial, pero creo que acá no es necesario. Digo, el ideal acá es ayudar con lo más efectivo en lugar de buscar que la ingeniería resalte

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/eldelentes/comoayudarmx/issues/36#issuecomment-330968009, or mute the thread https://github.com/notifications/unsubscribe-auth/AFKZUiMG-gacwepkD1wIo0BLfENHHlcAks5skXKxgaJpZM4Pdaq2 .

genitalico commented 7 years ago

@javarv87 exacto, supongo que nadie piensa aqui hacerlo hoy y olvidarlo una semana despues, @sirgalleto para los requerimientos que aqui se proponen realmente no lo veo desde el punto de vista backend como "tanta" ingenieria realmente

PatoBeltran commented 7 years ago

@genitalico estoy de acuerdo que node/mongo seria una muy buena opcion para futuro. Por ahora estoy de acuerdo con @sirgalleto que hay que evolucionar la complejidad de acuerdo lo necesitemos. En este momento no se necesita mucho. Hay manera de exportar la base de datos de firebase a un json? Por si usamos eso que podamos facilmente pasarlo a una mongodb si decidimos evolucionarlo

sirgalleto commented 7 years ago

@PatoBeltran Si, se puede exportar todo a un JSON, o importar dependiendo de lo necesario. Creo que ya llegamos a un punto cercano del común acuerdo.

miguejs commented 7 years ago

@PatoBeltran @sirgalleto @genitalico me pueden pasar sus correos para agregarlos al slack

genitalico commented 7 years ago

@PatoBeltran si es relativamente facil de hacer eso, solo que firebase habran que usarlo con precaucion ya que al menos el modo free tiene un limite en peticiones

saul-mtz commented 7 years ago

Firebase en mi opinión es la mejor opción: gratuito, escalable, facil integración, json-like APIs, etc, tengo una propuesta #126 basada en ese supuesto

PatoBeltran commented 7 years ago

Estoy de acuerdo, pero podemos tener esa solucion (firebase) como algo de hoy por hoy... si vemos que estamos empezando a llegar a los limites levantamos una instancia de amazon y ponemos a correr nuestro backend y lo usamos. @genitalico si quieres me puedes ayudar a montar un buen backend en mi fork del producto, lo empece pero no soy un experto en nodejs/mongo

sirgalleto commented 7 years ago

@miguejs sir@galleto.xyz

PatoBeltran commented 7 years ago

@miguejs pbelsal@gmail.com

genitalico commented 7 years ago

@PatoBeltran me puedes pasar el link del fork, si esta aca en los comentarios no lo ubico disculpa :( ..

sirgalleto commented 7 years ago

Sigamos esto en slack, más que el backend, si queremos hacer impacto debemos pensar en lo que de verdad es necesario para los siguientes días. Puede que ayudar a codeando también sea el mejor apoyo.

miguejs commented 7 years ago

Listo agregados, la conversación es en el canal de backend.

genitalico commented 7 years ago

@miguejs rayos ya me perdi, cual es ese canal?

jose-carrasco commented 7 years ago

Amigos, yo ya tengo el backend montado en Heroku y la base de datis montada en Heroku Postgresql, los endpoints son:

http://donamexico.herokuapp.com/cards/ http://donamexico.herokuapp.com/locations/ http://donamexico.herokuapp.com/types

El admin: http://donamexico.herokuapp.com/admin

Las credenciales:

User: KSYdLHkAp38Kh3Duyj4C Pass: gSL4t2znwrSW9HkATXXe

miguejs commented 7 years ago

@genitalico en el slack , pasame tu email y te agrego.