SlideShare une entreprise Scribd logo
1  sur  34
Dhiraj Gurnani
Twitter
Goals:
We have to implement a twitter application and we have to implement the below features
1. Basic User functionalities:
a. Sign up the new users (First name, Last name, Email, Password). Passwords
have to be encrypted
b. Sign in with existing users
c. Sign out
2. Profile:
a. About: Birthday, Twitter handle, contact information and location
b. Followers and Following list. You should be able to follow people.
c. Show your tweets and re-tweets
3. Twitter feed functionality showing tweets of people you are following and option
to re-tweet.
4. Implementing Hashtag (#) functionality (in Search and Tweets).
5. Implement Connection pooling for database access
System Design:
We have implemented angular js in the front end and bootstrap as well which will help us
in the client side and we will be able to get attractive ui.
Node js in the middleware where we can call different type of queries and we are able to
perform functions which will help us to basic programing in the middle
The backend is mysql which is connected with the middleware throw server.
This is how the client and the server is connected.
1 Basic User functionalities
Signup
Dhiraj Gurnani
Entering details:
Error handling:
Dhiraj Gurnani
Dhiraj Gurnani
Dhiraj Gurnani
Log in
Dhiraj Gurnani
Signin with an existing users
Dhiraj Gurnani
Logout
Dhiraj Gurnani
Session mangment:
Pressing back button
Dhiraj Gurnani
If the username is not valid:
Signing up with the same username
Dhiraj Gurnani
Error displaying:
2.profile
About user
Dhiraj Gurnani
Saving user info
Saved Data
Dhiraj Gurnani
Editing profile
Othersprofile
Dhiraj Gurnani
Follow:
Dhiraj Gurnani
Hover
Pressing Unfollow
Dhiraj Gurnani
Tweets:
Dhiraj Gurnani
Following List
Followers List
Dhiraj Gurnani
Users Tweets and Retweets
Dhiraj Gurnani
Showing tweets of people you are following
Re tweet
Dhiraj Gurnani
Dhiraj Gurnani
#hashtag using search
Dhiraj Gurnani
#hashtag search in tweets
Dhiraj Gurnani
Connection pooling:
Jmeter
Dhiraj Gurnani
Explaination of the graph.
As we can see the graph plottedforthe Usercallsusingthe connectionpoolingandwithoutconnection
pooling,there ischange inthe behaviour.
Withconnectionpooling Withoutconnectionpooling
100 users 10 12
200 users 8 9
300 users 11 12
400 users 10 11
500 users 8 10
There is approximately 13% difference in the between both the connection pooling and without
connection pooling.
This difference is because of pools which are present which will save time for connection toget
established and get destroyed. These are not present without connection pooling so it takes more time.
Mocha
Mocha is not running in my system I tried the whole I hope you understand it I Emailed you too.
0
2
4
6
8
10
12
14
100 user 200 users 300 users 400 users 500 users
Chart Title
with pooling without pooling
Dhiraj Gurnani
3.Questions.
A1
UsingBcrypt module forencryptioninthe twitterproject.
It workson Blowfishcipher,whichcomesupwithdifferentpasswords.
Bcrypt givesportability andcrossplatformsupport.
Bcrypt ingetsthe programgets the passwordandgeneratesanotherpasswordwithitsuse afterthat
bcrypt storesthe passwordinthe database andin the signin functionbcryptgetsthe passwordfrom
the userinputand will compare the passwordwithitsowncompare functionandthiswill give the
resultandwe will be able tosignin.Itoperateson64-bitof data,usinga56-bit. It isa ‘private key’
system.
HASH
It isused of a fixedlength input.Itisalso knownas a 'message digest',ora 'fingerprint'..
MD5
It isa 128 bit message digestfunctionwhichisnotuseful for informationmore thanit.
HMAC
HMAC is a hashingmethodthatsuch as MD5 or SHA-1.
A2.
Dhiraj Gurnani
Here above isthe chart of the data got byjmetertestwithusingconnectionpoolingandwithoutusing
connectionpooling
Withoutconnectionpoolingwe have tocreate a connectioneverytime andwe have toremove itevery
time thistakesa lotof time toestablishaconnectioneverytime anddelete iteverytime.
In connectionpoolingwe have apool establishedsowe justhave touse a connectionfromthe pool so
thiswill helpustosave some time andour code will be implementedfaster
Algorithm
1 We have firstinitializedapool of array
2 There are 100 connectionsinthe pool.
3 Noweverytime we needtoconnecttothe database we just have toget the connection fromthe pool
whichisreadyto use
4 afterwe are done withthe usage we give the connectionbacktothe pool.
A3.
LeastRecentlyUsedalogorithmhasbeenusedall the placesrecentlyusedfieldsthat are full while the
time of search.All the frequentlyuseddatahasbeensavedinthe memory.Datais used,how much
more data usedand at whattime.If the data iscostlyand whichconformswhenthe usage iscompleted
the cached isempitied of the expensivedata.So,basicallyrecentlyuseddatawill be savedandone can
getthe oftenuseddata.
0
2
4
6
8
10
12
14
100 user 200 users 300 users 400 users 500 users
Chart Title
with pooling without pooling
Dhiraj Gurnani
In requestcachingdatais savedinthe serverwiththe helpof key-value pair.Everytime arequestis
made the data is got fromthe server.Of all the caches available thisismostlyusedbecause cache is
managedbeyondthe applicationbythe browser.Thismakesthe applicationtofetchdatafaster.
Whenwe opena page andsenda requestthe cookieswouldbe checkandif the last checkwasthe
same as thisit will notsendthe whole fileorelse itwill sendsothiswillsave the time andmake the
applicationrunfaster.
Calculator:
DESCRIPTION:
The goal is designingabasic calculator to demonstrate statelessweb service and givingit the basic
functionalityalso taking care of the errors
SystemDesign:
I have choosennode jsand HTML5 for this application.
HTML5 is implementedinthe frontendof the application from we get the input and dependingonthe
operationselectedwe give them the output indifferentpage and after it we bring themin the same
page to perform anothercalculation
Calculator
Application Home screen
Addition
Dhiraj Gurnani
Result:
Pressing another calculation:
Dhiraj Gurnani
Subtraction:
Result:
Dhiraj Gurnani
Multiplication:
Result:
Dhiraj Gurnani
Division:
Result:
Dhiraj Gurnani
Error handling
1taking no input and pressing submit:
Dhiraj Gurnani
2 dividing by zero:
Dhiraj Gurnani
Result:
Dhiraj Gurnani
Jmeter
Graph Discription:
the architecture of Node.JswhichsupportsNonBLocking,Asynchronous andSingleEventLoop
frameworkanditalso cachesthe requestsfromthe same user. The above resulthasbeen
Calculate
1 user 1000 calls 5
1 user 5000 calls 4
100 user 1000 calls 20
0
5
10
15
20
25
1 user 1000 call I user 5000 calls 100 users 1000 calls
Series 1
Series 1

Contenu connexe

Similaire à Implement Twitter App Features

Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using RORDhaval Patel
 
Sentiment Analysis on Twitter Data Using Apache Flume and Hive
Sentiment Analysis on Twitter Data Using Apache Flume and HiveSentiment Analysis on Twitter Data Using Apache Flume and Hive
Sentiment Analysis on Twitter Data Using Apache Flume and HiveIRJET Journal
 
Social data analysis using apache flume, hdfs, hive
Social data analysis using apache flume, hdfs, hiveSocial data analysis using apache flume, hdfs, hive
Social data analysis using apache flume, hdfs, hiveijctet
 
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...IRJET Journal
 
Development of Twitter Application #5 - Users
Development of Twitter Application #5 - UsersDevelopment of Twitter Application #5 - Users
Development of Twitter Application #5 - UsersMyungjin Lee
 
professional fuzzy type-ahead rummage around in xml type-ahead search techni...
professional fuzzy type-ahead rummage around in xml  type-ahead search techni...professional fuzzy type-ahead rummage around in xml  type-ahead search techni...
professional fuzzy type-ahead rummage around in xml type-ahead search techni...Kumar Goud
 
Multicast chat with file and desktop sharing
Multicast chat with file and desktop sharingMulticast chat with file and desktop sharing
Multicast chat with file and desktop sharingKhagendra Chapre
 
An Introduction to Hashing and Salting
An Introduction to Hashing and SaltingAn Introduction to Hashing and Salting
An Introduction to Hashing and SaltingRahul Singh
 
IRJET- Privacy Preserving Encrypted Keyword Search Schemes
IRJET-  	  Privacy Preserving Encrypted Keyword Search SchemesIRJET-  	  Privacy Preserving Encrypted Keyword Search Schemes
IRJET- Privacy Preserving Encrypted Keyword Search SchemesIRJET Journal
 
Public integrity auditing for shared dynamic cloud data with group user revoc...
Public integrity auditing for shared dynamic cloud data with group user revoc...Public integrity auditing for shared dynamic cloud data with group user revoc...
Public integrity auditing for shared dynamic cloud data with group user revoc...Pvrtechnologies Nellore
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...IEEEFINALSEMSTUDENTPROJECTS
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...IEEEFINALYEARSTUDENTPROJECT
 
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...IEEEGLOBALSOFTSTUDENTPROJECTS
 
Django tutorial
Django tutorialDjango tutorial
Django tutorialKsd Che
 
IRJET- Information Retrieval from Chat Application
IRJET-  	  Information Retrieval from Chat ApplicationIRJET-  	  Information Retrieval from Chat Application
IRJET- Information Retrieval from Chat ApplicationIRJET Journal
 
iPhoneアプリのTwitter連携
iPhoneアプリのTwitter連携iPhoneアプリのTwitter連携
iPhoneアプリのTwitter連携So Matsuda
 
[System design] Design a tweeter-like system
[System design] Design a tweeter-like system[System design] Design a tweeter-like system
[System design] Design a tweeter-like systemAree Oh
 

Similaire à Implement Twitter App Features (20)

Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
 
Sentiment Analysis on Twitter Data Using Apache Flume and Hive
Sentiment Analysis on Twitter Data Using Apache Flume and HiveSentiment Analysis on Twitter Data Using Apache Flume and Hive
Sentiment Analysis on Twitter Data Using Apache Flume and Hive
 
Social data analysis using apache flume, hdfs, hive
Social data analysis using apache flume, hdfs, hiveSocial data analysis using apache flume, hdfs, hive
Social data analysis using apache flume, hdfs, hive
 
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...
Ranking Efficient Attribute Based Keyword Searching Over Encrypted Data Along...
 
Development of Twitter Application #5 - Users
Development of Twitter Application #5 - UsersDevelopment of Twitter Application #5 - Users
Development of Twitter Application #5 - Users
 
Social Aggregator Paper
Social Aggregator PaperSocial Aggregator Paper
Social Aggregator Paper
 
Tair
TairTair
Tair
 
professional fuzzy type-ahead rummage around in xml type-ahead search techni...
professional fuzzy type-ahead rummage around in xml  type-ahead search techni...professional fuzzy type-ahead rummage around in xml  type-ahead search techni...
professional fuzzy type-ahead rummage around in xml type-ahead search techni...
 
Multicast chat with file and desktop sharing
Multicast chat with file and desktop sharingMulticast chat with file and desktop sharing
Multicast chat with file and desktop sharing
 
tweet segmentation
tweet segmentation tweet segmentation
tweet segmentation
 
An Introduction to Hashing and Salting
An Introduction to Hashing and SaltingAn Introduction to Hashing and Salting
An Introduction to Hashing and Salting
 
IRJET- Privacy Preserving Encrypted Keyword Search Schemes
IRJET-  	  Privacy Preserving Encrypted Keyword Search SchemesIRJET-  	  Privacy Preserving Encrypted Keyword Search Schemes
IRJET- Privacy Preserving Encrypted Keyword Search Schemes
 
Public integrity auditing for shared dynamic cloud data with group user revoc...
Public integrity auditing for shared dynamic cloud data with group user revoc...Public integrity auditing for shared dynamic cloud data with group user revoc...
Public integrity auditing for shared dynamic cloud data with group user revoc...
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
2014 IEEE JAVA CLOUD COMPUTING PROJECT Oruta privacy preserving public auditi...
 
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Oruta privacy preserving public audit...
 
Django tutorial
Django tutorialDjango tutorial
Django tutorial
 
IRJET- Information Retrieval from Chat Application
IRJET-  	  Information Retrieval from Chat ApplicationIRJET-  	  Information Retrieval from Chat Application
IRJET- Information Retrieval from Chat Application
 
iPhoneアプリのTwitter連携
iPhoneアプリのTwitter連携iPhoneアプリのTwitter連携
iPhoneアプリのTwitter連携
 
[System design] Design a tweeter-like system
[System design] Design a tweeter-like system[System design] Design a tweeter-like system
[System design] Design a tweeter-like system
 

Implement Twitter App Features

  • 1. Dhiraj Gurnani Twitter Goals: We have to implement a twitter application and we have to implement the below features 1. Basic User functionalities: a. Sign up the new users (First name, Last name, Email, Password). Passwords have to be encrypted b. Sign in with existing users c. Sign out 2. Profile: a. About: Birthday, Twitter handle, contact information and location b. Followers and Following list. You should be able to follow people. c. Show your tweets and re-tweets 3. Twitter feed functionality showing tweets of people you are following and option to re-tweet. 4. Implementing Hashtag (#) functionality (in Search and Tweets). 5. Implement Connection pooling for database access System Design: We have implemented angular js in the front end and bootstrap as well which will help us in the client side and we will be able to get attractive ui. Node js in the middleware where we can call different type of queries and we are able to perform functions which will help us to basic programing in the middle The backend is mysql which is connected with the middleware throw server. This is how the client and the server is connected. 1 Basic User functionalities Signup
  • 6. Dhiraj Gurnani Signin with an existing users
  • 9. Dhiraj Gurnani If the username is not valid: Signing up with the same username
  • 11. Dhiraj Gurnani Saving user info Saved Data
  • 18. Dhiraj Gurnani Showing tweets of people you are following Re tweet
  • 23. Dhiraj Gurnani Explaination of the graph. As we can see the graph plottedforthe Usercallsusingthe connectionpoolingandwithoutconnection pooling,there ischange inthe behaviour. Withconnectionpooling Withoutconnectionpooling 100 users 10 12 200 users 8 9 300 users 11 12 400 users 10 11 500 users 8 10 There is approximately 13% difference in the between both the connection pooling and without connection pooling. This difference is because of pools which are present which will save time for connection toget established and get destroyed. These are not present without connection pooling so it takes more time. Mocha Mocha is not running in my system I tried the whole I hope you understand it I Emailed you too. 0 2 4 6 8 10 12 14 100 user 200 users 300 users 400 users 500 users Chart Title with pooling without pooling
  • 24. Dhiraj Gurnani 3.Questions. A1 UsingBcrypt module forencryptioninthe twitterproject. It workson Blowfishcipher,whichcomesupwithdifferentpasswords. Bcrypt givesportability andcrossplatformsupport. Bcrypt ingetsthe programgets the passwordandgeneratesanotherpasswordwithitsuse afterthat bcrypt storesthe passwordinthe database andin the signin functionbcryptgetsthe passwordfrom the userinputand will compare the passwordwithitsowncompare functionandthiswill give the resultandwe will be able tosignin.Itoperateson64-bitof data,usinga56-bit. It isa ‘private key’ system. HASH It isused of a fixedlength input.Itisalso knownas a 'message digest',ora 'fingerprint'.. MD5 It isa 128 bit message digestfunctionwhichisnotuseful for informationmore thanit. HMAC HMAC is a hashingmethodthatsuch as MD5 or SHA-1. A2.
  • 25. Dhiraj Gurnani Here above isthe chart of the data got byjmetertestwithusingconnectionpoolingandwithoutusing connectionpooling Withoutconnectionpoolingwe have tocreate a connectioneverytime andwe have toremove itevery time thistakesa lotof time toestablishaconnectioneverytime anddelete iteverytime. In connectionpoolingwe have apool establishedsowe justhave touse a connectionfromthe pool so thiswill helpustosave some time andour code will be implementedfaster Algorithm 1 We have firstinitializedapool of array 2 There are 100 connectionsinthe pool. 3 Noweverytime we needtoconnecttothe database we just have toget the connection fromthe pool whichisreadyto use 4 afterwe are done withthe usage we give the connectionbacktothe pool. A3. LeastRecentlyUsedalogorithmhasbeenusedall the placesrecentlyusedfieldsthat are full while the time of search.All the frequentlyuseddatahasbeensavedinthe memory.Datais used,how much more data usedand at whattime.If the data iscostlyand whichconformswhenthe usage iscompleted the cached isempitied of the expensivedata.So,basicallyrecentlyuseddatawill be savedandone can getthe oftenuseddata. 0 2 4 6 8 10 12 14 100 user 200 users 300 users 400 users 500 users Chart Title with pooling without pooling
  • 26. Dhiraj Gurnani In requestcachingdatais savedinthe serverwiththe helpof key-value pair.Everytime arequestis made the data is got fromthe server.Of all the caches available thisismostlyusedbecause cache is managedbeyondthe applicationbythe browser.Thismakesthe applicationtofetchdatafaster. Whenwe opena page andsenda requestthe cookieswouldbe checkandif the last checkwasthe same as thisit will notsendthe whole fileorelse itwill sendsothiswillsave the time andmake the applicationrunfaster. Calculator: DESCRIPTION: The goal is designingabasic calculator to demonstrate statelessweb service and givingit the basic functionalityalso taking care of the errors SystemDesign: I have choosennode jsand HTML5 for this application. HTML5 is implementedinthe frontendof the application from we get the input and dependingonthe operationselectedwe give them the output indifferentpage and after it we bring themin the same page to perform anothercalculation Calculator Application Home screen Addition
  • 31. Dhiraj Gurnani Error handling 1taking no input and pressing submit:
  • 34. Dhiraj Gurnani Jmeter Graph Discription: the architecture of Node.JswhichsupportsNonBLocking,Asynchronous andSingleEventLoop frameworkanditalso cachesthe requestsfromthe same user. The above resulthasbeen Calculate 1 user 1000 calls 5 1 user 5000 calls 4 100 user 1000 calls 20 0 5 10 15 20 25 1 user 1000 call I user 5000 calls 100 users 1000 calls Series 1 Series 1