We began the project wanting to learn more about using APIs and communicating between a web server and a client. Our hope with Twitterphile was that we could accomplish our learning goals while also creating a web application that let a user understand someone a bit better based on how they act online. We hoped that people could use Twitterphile to build a stronger web community.
What it does
Twitterphile takes in a screen name from the user. It sends that username to our server where it retrieves their most recent tweets. These tweets are parsed and the server sends back to the client the most common words and hashtags used. The client displays that info to the user through different charts, allowing the user to understand what someone is like on Twitter and whether they want to follow that person.
How we built it
2 of us focused on the back-end, and 2 of us focused on the front-end. The front-end is an page using HTML, CSS, and JS that was created using bootstrap. ChartJS is used to create the charts that are displayed based on data. For the backend, Node.JS was used to create our server script and connect to the client. The script connected to the Twitter API and retrieved tweets from the requested user's timeline. The server script parses the tweet's data and picks out the most common words and hashtags used, and returns that data to the client. The web server is hosted using Heroku.
Challenges we ran into
The first challenge was how to execute our vision for this project. We had a long brainstorming session so we could all come to agreement on the best way to move forward. One of the first technical challenges we experienced was dealing with the data from the Twitter API. Even getting the data from the endpoint had its difficulties, but parsing the JSON that we received and finding the most common words and hashtags took a lot of effort. On the client side, animating the charts was particularly difficult. Every time new data came in from the server because of a new search, the charts had to be reset and reanimated. One of the most difficult challenges was using Heroku to host the web server. None of us had ever done anything like that before and while it was frustrating, we learned a lot.
Accomplishments that we're proud of
We are very proud of the look and design of front-end and the capabilities and effort put into the back-end. The front-end has a user-friendly design and is able to do a lot with the data that is given to it. The back-end is able to connect to the powerful Twitter API and efficiently parse through potentially thousands of tweets of any given user.
What we learned
What's next for Twitterphile
We all feel as if we've only scratched the surface on what the Twitter API can do. There is so much more data a user puts on twitter that can be presented on Twitterphile, and there is so much we can do on the client-side to visualize that data in new and interesting ways.