Skip to content
This repository has been archived by the owner on Nov 7, 2019. It is now read-only.

First RUN, Forrest! RUN!

rob edited this page Sep 2, 2014 · 3 revisions

Cómo se echa andar este asunto?

HOW DO I COMPUTER

Requsitos

  • MongoDB >= 2.4.0 por asuntos de $geoIntersects que usamos para hacer queries de tipo point-in-polygon
  • Rubbbbbby 2.0 porqué me rehuso a hacer keys tipo string en mis hashes
  • Coffeescript >= 1.7.0 porqué JAVASCRIPT
  • Y lo que sea que venga en el Gemfile, además de passenger.

Nginx

¡Pero, Roberto, no mencionaste esto como requisito! Pues no, pero no le deseo a nadie un apache2 mal configurado, ni la lentitud de shotgun :/

Por si las moscas, así está configurado mi vhost de nginx:

server {

    listen 80;
    server_name representantes.dev;
    
    access_log off;
    error_log off;
    root /path/to/representantes/public;

    passenger_enabled on;
    passenger_app_env development;

}

Claro que, si nomás vamos a contribuir con distritos ó representantes, y nomás queremos verificar, siempre se puede correr ruby app.rb.

De ahuevo

Necesitamos las dependencias adecuadas

bundle install

Ingesta inicial

Pa que cualquiera de las madres jale, necesitamos de ahuevo ingestar a mongo las secciones electorales, y se hace así:

cd bin
./distritos

Ahora, en la consola de mongo podríamos ver algo como:

db.distritos.findOne({_id: 'df-9-12'}, {secciones:false})
// { "_id" : "df-9-12", "tipo" : "federal", "entidad" : "9" }
db.secciones.findOne({_id: '9-4581'}, {coords: false})
/* {
    "_id" : "9-4581",
    "entidad" : 9,
    "municipio" : 0,
    "idMGN" : 46630,
    "seccion" : 4581,
    "tipo" : 2
} */

Diputados y Senadores

Ahora sí, podemos ingestar a nuestros amiguitos representantes a la db, y esto lo hacemos en corto:

# Primero Senadores, porque son más poquitos y su página se caga MUY SEGUIDO
# TODO: hacer más aguantador a fallas estos asuntos
./crawl senado:comisiones
./crawl senado:actores
# asistencias y votaciones son opcionales, si quieres ver localmente las grafiquitas
./crawl senado:asistencias
./crawl senado:votaciones

# Luego diputados
./crawl diputados:comisiones
./crawl diputados:actores
# idem
./crawl senado:asistencias
./crawl senado:votaciones

# Finalmente, las imágenes de los mismos
./imagenes

Y en mongo veríamos algo tipo:

db.actores.findOne({distrito: 'df-9-12'}, {inasistencias: false, votaciones:false})
/* {
    "_id" : ObjectId("535a177d6d6172a974020000"),
    "cabecera" : "Cuauhtémoc",
    "camara" : "diputados",
    "correo" : "jose.munoz@congreso.gob.mx",
    "curul" : "K-413",
    "distrito" : "df-9-12",
    (...)
*/

Back-end

Para comenzar a hacer tus asuntos, sólo tienes que seguir las instrucciones de como contribuir

Front-End

Cómo puedes usar sprockets para compilar al vuelo SASS y Coffeescript, entonces es cosa de que entres a http://representantes.dev y listo.