In previous articles we have harvested Twitter Trends and Google Hot Trends using Spring Batch. Meanwhile, I got an idea to create a NEWS app(for smart phones & tablets) which will use the crawled trending topics to generate the NEWS. Here is the thought process.
- When something happens around us, people shares the information to their friends using tweets and searches more on the google. By using the crawled trending topics and the twitter tweets search, we can generate the trending tweets.
- Google provides the hot searches and the associated content.
With the above two points, the application will get the content. Now Its time to name the app. I want to name this APP as “Sanjaya“, the thought process to come up with that name is given below.
“Sanjaya is a character from the ancient Indian historic battle Mahābhārata, who has the gift of seeing events at a distance (divya-drishti), narrates the events of the battle between the Kauravas and the Pandavas to the blind king Dhrtarastra”.
Now, why I took decision to create an app than website? Here is the justification.
The above stats tells”It’s APP world“, mobile app is more reachable than web. The kind of application where we are targeting audience with hot news, the content should reach to the audience very quickly.
Now its time to see the system architecture of the “Sanjaya” app.
The system architecture has a node js server to harvest the trends and the NEWS. The other node js server form is backed up by the load balancer which will serve content to end users. The NEWS content is maintained in Memcached server.
Now, let us see the technology stack proposed for “Sanjaya“.
Express JS: The node services which will expose as REST services. PhoneGap will consume the REST services.
Memcached: The cache to store the trends and NEWS content. Here, particularly I have chosen as it is simple to use and the data is so volatile. I don’t want to persist the content. Evict the content on specific intervals.
That is high level overview of the application. If any one want to provide any insights, place it as part of comments.