The idea of the project is to display a Twitter profile data in a useful and fun way.
- The existing Twitter profile 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 pinned tweet. 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.
- 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 that can help attract new users when they see it.
NOTE: for now, the application uses app-only auth and might quickly hit the limits. Just wait for 15 minutes to load more data:).
Create a fun and engaging Twitter profile page which contains useful information. The nice addition to the page is achievements, users can see their badges, and their friends badges, and try to earn new ones.
Additional bonus is a Mood section: using AI sentiment analysis you can see how kind and calm (or not so calm:)) user is.
The next step could be the whole new way for Twitter users to work with the social network: they could build a personal website as newsletter with recently liked and bookmarked tweets, or a shop with real discussions regarding the products they sell. This could be a place where users extend and enrich their Twitter lives with some data, while not touching primary Twitter experience. This is nice in case the experiment won't work.
How we built it
My wife Kira has created the UI for the website in Figma.
I decided to use Azure Functions just to have some practice with modern serverless technologies. Unfortunately, because of the lack of experience in the modern frontend dev, the HTML layout and JS code are kind of bad. Please check both repos, for the client and server, the project form does not allow to specify two repos:
Challenges we ran into
I made a decision to not login a user, but rather display the data using app-only authentication. Advantages: you can immediately see data for any user, no need to login. Disadvantages: this project can only live if the app has uncapped permissions, for example if Twitter decides to embrace CVitter.
So, as a demo app for the hackathon, it is ok to have app-only authentication, but if we continue working on the project, we'll need to switch to auth by user and save their data to the DB in order to display to other people.
One of the issues was that I wanted to analyze the mood of the user, but cloud-based technologies like Azure Sentiment Analysis are quite expensive, so I just left a placeholder for this feature.
What's next for CVitter
There are several possible directions, not sure what to do for now. One is to fix the layout, make it work with any device, change the auth to user-based, and publish CVitter to the broad audience as a fun project. Also try to find a technology for Mood analysis that does not make us broke:). One more important thing to do is to rethink the Topics section. Now, it just uses hashtags, but it is probably possible to fill them from the actual user tweets. Of course, it would be nice to add some error handling:).
Another is to think about the more complex solution mentioned above.