This summer turned out to be not the best one for traveling, but good enough to take part in another online hackathon.
This time I chose Twitter’s Chirp Developer Challenge. The choice was obvious, as most other events happening at that time were related to crypto something, which is not very interesting for me. And unlike crypto, Twitter is the thing I enjoy. So it was natural to do something with their API when having a chance.
So, I registered a developer account, and started building.
The idea behind the project was very simple: enhance Twitter profile page. The problems solved with these enhancements are:
The existing page does not show all the available data that can help users to understand if they want to follow someone or not. Some users try to describe what they tweet about in description or in a pinned tweet. But not everyone does this though.
Sometimes, it happens that you follow a user, but it turns out they mostly tweet in a language you don't know. A few latest tweets shown on the profile page do not necessarily match the most used language.
Sometimes you follow a user because you liked a tweet or two, but later it turns out they write about the topics you are generally not interested in.
It would also be nice if the profile page contained some fun and catchy stuff, just for the sake of it:).
And together with @kirraaaaa we created the project: https://devpost.com/software/twitter-profile
The short demo video of that first version is here:
The page showed a general profile info, like number of followers or location. It also included the data about “topics” (actually these are hashtags) and followers, as well as the most used tweet languages. One of the distinct features were “badges” given for some particular achievements. I also had an idea to analyze the “mood” of the tweets and tell whether a user is calm or mad. This was not implemented, as sentiment analysis APIs are quite expensive.
This app just queried the Twitter API and returned the user data available at the moment. This was a good solution, as it allowed to view the most recent data for any user. But at the same time, it was not so good solution, as it used the App limits of the Twitter API, and so would never work if many users started opening its pages.
I have submitted it for the judgement, and then continued working on the project in a separate repo to make it possible to run it for many people. This is how https://cvitter.com appeared. This updated version asks users to login with Twitter, and then uses their quota to retrieve data, and then stores it in DB. Now we can’t see a profile for any user unless they have created their page, but on the other hand, it is now possible to have as many CVitter profiles as possible.
From the technical side, I tried using Azure CosmosDB and Functions on Back end, and Vue.js on Front end. It was an interesting experience, but probably a bit of an overkill for such small project. I guess some generic Asp.Net MVC app would work even better, but then I wouldn't have a chance to try something new:).
If you want to see some profiles, check these:
Or better create yours and post in comments!