We want to make some software to prototype and show the potential and dangerous of using internet in a narcissist and exhibitionist way. We focused on the twitter generated data.

What it does

Is a server backend, that is getting all the tweets containing a concrete set of words, in real time. And saves the tweets to a MongoDB database, and sents to a frontend client (with socketio). The server, gets:

  • the tweets containing images, the server analyzes the images, and gets the faces from the people. We store all the faces from each person that is on a tweet related to the words we are tracking
  • also, the server can act as a twitter bot, and replies the tweet of the people, saying thanks for their faces, and with an image of them faces marked inside a square.
  • for each tweet, analyses the sentiment, so the tweet gets a punctuation value in function its positive or negative sentiment --> that's to know the average opinion on a concrete topic
  • all tweets with geolocation activated, and the frontend paints over a map in realtime the new tweets
  • in the frontend, can view the tweets map, the faces of the images, and a node network map to analyse the relations between users and tweets sent.

How we built it

Backend server:

  • opencv: for images analysis and faces manipulation and extraction.
  • nodejs: the backend is written in nodejs
  • mongodb: database where we store all the data
  • sentiment: npm package to analyse sentiment of a string, in our case of a tweet
  • twitter api: to get the data, and post the replies of the bot
  • socketio: to comunicate in realtime with the frontend client.


  • angularjs: the logic
  • socketio: realtime communication with th server
  • visjs: for the nodes network map
  • google maps
+ 5 more
Share this project: