Coder Social home page Coder Social logo

spaghetti-open-data / tweetyourmep Goto Github PK

View Code? Open in Web Editor NEW
17.0 36.0 11.0 2.26 MB

TweetyourMEP

License: GNU Affero General Public License v3.0

JavaScript 47.23% Shell 0.49% CSS 0.90% HTML 51.39%
civic-hacking javascript nodejs opendata meps european-parliament

tweetyourmep's Introduction

tweetyourmep

TweetyourMEP

$ npm install
$ cp config.js.development config.js
$ cd import
$ node import-meps-json.js
$ cd ..
$ node app.js

tweetyourmep's People

Contributors

albertocottica avatar claudiodangelis avatar dottorblaster avatar piersoft avatar seralf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tweetyourmep's Issues

Idea: aggregatore di tweet

Avrei un'idea da proporre: un aggregatore di tweet organizzato per trend correlati al PE (e.g. #budget2013, #PAC,#Sacharov, ecc.), per offrire ad utenti, blogger e giornalisti una panoramica sempre aggiornata sul punto di vista dei vari parlamentari sui temi caldi.

Che ne pensate?

Di documentazione sulle twitter API e sul data mining ce n'è a volontà, la realizzazione quindi non dovrebbe essere eccessivamente complicata.

claudio

[problema con fs per la cache] Object has no method 'existsSync'?

open connection on
http://www.epnewshub.eu/feederfrontendapi/contributors/1?limit=8000&offset=0

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Object # has no method 'existsSync'
at NativeConnection. (../tweetyourmep/import/import-meps.js:54:11)
at NativeConnection.g (events.js:154:14)
at NativeConnection.emit (events.js:64:17)
at open (../tweetyourmep/node_modules/mongoose/lib/connection.js:394:10)
at NativeConnection.onOpen (../tweetyourmep/node_modules/mongoose/lib/connection.js:401:5)
at ../tweetyourmep/node_modules/mongoose/lib/connection.js:372:10
at ../tweetyourmep/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:47:5
at ../tweetyourmep/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:258:14
at [object Object]. (../tweetyourmep/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:230:7)
at [object Object].g (events.js:154:14)

Mainbar in fixed position

invece di inserire un "back on top" o di usare un box ricerca flottante, la soluzione migliore è una semplice riga in css di fixed position per la main bar, che anche su schermo piccolo non è invasiva (il menù si raggruppa senza problemi)

Counter TWEET per MEP

Stampare un "counter" dei tweet per MEP e la data dell'ultimo tweet in formato "time ago".

Box grigio di MEP senza avatar

I box grigi di MEP senza avatar e degli account di gruppi hanno altezze diverse, converrebbe renderli tutti uguali così da agevolare futuri ritocchi al layout

Scrivere il tweet anti copyright e precaricarlo sull'applicazione

Ora che @seralf ha ripristinato TWYMEP e aggiornato i suoi dati, entriamo nella fase in cui la trasformiamo in uno strumento per campagne di informazione e mobilitazione.

Come prima fase, si tratta di inserire del testo nel tweet che viene generato quando l'utente ha scelto il MEP. Se non ricordo male (Alfredo, perdonami ma sono in vacanza e non me la sento di mettermi a smanettare per fare girare TWYMEP in locale) un po' di roba c'era già – anzi ci deve essere, perché ci deve essere @mepname perché la cosa funzioni. Si tratta quindi solo di fare un edit molto semplice.

Alf, di questo posso occuparmi io se mi segnali qual è il file, nel codice, che precarica il tweet.

Ricerca per partito

Implementare la ricerca per "local_party", ora la struttura che abbiamo sul DB è questa:

Sul DB è strutturato in questo modo:

{   "mep_localParty" : "Partitu di a Nazione Corsa" }

Dunque non esiste un ID per identificarli univocamente, sono solo in formato stringa completo.

Pulsante "more" problema markup

Sembra che dopo l'ultimo aggiornamento di bootstrap, qualcosa si sia rotto nel bottone more, anche se nel template .ejs la stampa è corretta, il markup viene comunque "escaped".

Alessio, nell'aggiornamento che hai fatto, c'erano anche i sorgenti JS da aggiornare ?

Migliorare la stampa delle informazioni aggiuntive dei MEP (pulsante MORE)

Gestire i casi speciali come: Youtube, Flickr, Sito personale ecc. Identificando e formattando correttamente i link.

Un esempio di dato strutturato:

 "mep_additionalProperties" : "[{\"additionalSite1\":\"http://stenskott.wordpress.com/\"},{\"Member\":\"European Parliament\"},{\"Substitute\":\"Committee on Budgetary Control\"}]"

Al momento l'handling è gestito da qui:
https://github.com/spaghetti-open-data/tweetyourmep/blob/master/views/index.ejs#L188

Paginatore e refactoring oggetto "options"

rifattorizzando le funzioni sostituendo i singoli parametri con un unico oggetto options rendiamo omogenee le ricerche ed è facile introdurre paginazioni (con i parametri limit e offset)

[Feature]Box ricerca scrollabile

Nelal home farebbe molto comodo che il box di ricerca fosse scrolalbile con la pagina.
per farlo con i css non dovrebbe essere difficiel dovrebbe bastare un position:fixed

buon lavoro continuate così!

altezza diversa dei MEPbox

nella visualizzazione verticale da tablet (iPad) l'altezza dei MEPbox non è uguale per tutti.
il testo all'interno non si ridimensiona in base alla larghezza disponibile

infinity scroll + larghezza Max

sarebbe bene inserire la modalità infinity scroll e caricare solo le prime 2 righe di MEP.
a quanto è impostata la larghezza Max? io la metterei a 940px in questo modo potete definire la dimensione Max del font

select2 mancanti

mancano in javascripts/select2 i seguenti files:

select2.css
select2.js
select2.png
spinner.gif

#tweetyourmep search

Aggiungere nella left sidebar un pulsante che lanci la ricerca con hashtag #tweetyourmep

Blocco MEP, formattazione dettagli utente

Ciao Alessio, ti assegno questa issue.

Come puoi vedere dall'ultimo merge ho rifatto la form, vedi maggiori dettaglio nel merge.

Dovrebbe dare una sistemata al blocchetto con le informazioni utente, rendere magari più visibile la differenza tra le label ed il campo vero e proprio, oltre a sistemare il padding.

Thanks.

Loop in index.ejs is blocking

I suggest you to use the async library for loops.

When you use for () {} in /views/index.ejs you are actually writing blocking code.

Box 'more' con informazioni dall'account Twitter

Il Boxino 'more' dovrebbe contenere informazioni importate da Twitter come la bio (poi ci possiamo mettere quello che vogliamo, il limite è la fantasia).

Bozzetto di codice scritto al volo:

$.ajax({

    url : "http://api.twitter.com/1/users/show.json?screen_name=dottorblaster",
    dataType : "jsonp",
    success : function(data)
    {
        alert(data.name + ' : ' + data.description);
    },
    error : function()
    {
        alert("Failure!");
    },

});​

connection problems?

dunque ho provato con la app appena scaricata: installo tutti i moduli, sistemo il db name, e lancio l'import... ecco l'errore:

"Find users problems, please check mongodb connection."

il json viene correttamente scaricato in cache. Qualche idea?

configurazione VM vagrant

Vogliamo creare una macchina virtuale di facile riproduzione per le prove locali.

Bisognerebbe definire una configurazione che faccia le seguenti cose:

  • creazione di una macchina linux opportuna, ad esempio con virtualbox
  • istallazione mongodb
  • istallazione nodejs / npm
  • istallazione git
  • clone locale repository tymep
  • istallazione locale di tymep
  • run di default

NOTE:

  • possiamo copiare i file del deploy dell'applicazione in una directory condivisa con il sistema host
  • possiamo fare provisioning anche con docker (questo può aiutare se abbiamo un server dove istallare la macchina vagrant)

ricerca per country perde lo stato

eseguendo più ricerche concatenate, si perde la ricerca per country: andrebbe pre-caricato lo stato in base ad un parametro di request, così come per la ricerca per nome

"Bitdeli Badge"?

C'è una pull request un po' sospetta: #73 . @seralf , tu figuri come autore. Se davvero è tua, accettala, se no la rimbalziamo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.