| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Given an app.js file and a database file twitterClone.db consisting of five tables user, follower, tweet, reply, and like.
Write APIs to perform operations on the tables user, follower, tweet, reply, and like containing the following columns,
User Table
| Column | Type |
|---|---|
| user_id | INTEGER |
| name | TEXT |
| username | TEXT |
| password | TEXT |
| gender | TEXT |
Follower Table
| Column | Type |
|---|---|
| follower_id | INTEGER |
| follower_user_id | INTEGER |
| following_user_id | INTEGER |
Here, if user1 follows user2 then,
follower_user_id is the user ID of user1 and following_user_id is the user ID of user2.
Tweet Table
| Column | Type |
|---|---|
| tweet_id | INTEGER |
| tweet | TEXT |
| user_id | INTEGER |
| date_time | DATETIME |
Reply Table
| Column | Type |
|---|---|
| reply_id | INTEGER |
| tweet_id | INTEGER |
| reply | TEXT |
| user_id | INTEGER |
| date_time | DATETIME |
Like Table
| Column | Type |
|---|---|
| like_id | INTEGER |
| tweet_id | INTEGER |
| user_id | INTEGER |
| date_time | DATETIME |
{
"username":"JoeBiden",
"password":"biden@123"
}
Request
{
"username": "adam_richard",
"password": "richard_567",
"name": "Adam Richard",
"gender": "male"
}
Scenario 1
Description:
If the username already exists
Response
400
User already exists
Scenario 2
Description:
If the registrant provides a password with less than 6 characters
Response
400
Password is too short
Scenario 3
Description:
Successful registration of the registrant
Response
Status code
200
Body
User created successfully
Request
{
"username":"JoeBiden",
"password":"biden@123"
}
Scenario 1
Description:
If the user doesn't have a Twitter account
Response
400
Invalid user
Scenario 2
Description:
If the user provides an incorrect password
Response
400
Invalid password
Scenario 3
Description:
Successful login of the user
Response
Return the JWT Token
{
"jwtToken": "ak2284ns8Di32......"
}
Write a middleware to authenticate the JWT token.
Scenario 1
Description:
If the JWT token is not provided by the user or an invalid JWT token is provided
Response
401
Invalid JWT Token
Scenario 2
Returns the latest tweets of people whom the user follows. Return 4 tweets at a time
[
{
username: "SrBachchan",
tweet: "T 3859 - do something wonderful, people may imitate it ..",
dateTime: "2021-04-07 14:50:19"
},
...
]
Returns the list of all names of people whom the user follows
[
{
"name": "Narendra Modi"
},
...
]
Returns the list of all names of people who follows the user
[
{
"name": "Narendra Modi"
},
...
]
Scenario 1
Description:
If the user requests a tweet other than the users he is following
Response
401
Invalid Request
Scenario 2
Description:
If the user requests a tweet of the user he is following, return the tweet, likes count, replies count and date-time
Response
{
"tweet": "T 3859 - do something wonderful, people may imitate it ..",
"likes": 3,
"replies": 1,
"dateTime": "2021-04-07 14:50:19"
}
Scenario 1
Description:
If the user requests a tweet other than the users he is following
Response
401
Invalid Request
Scenario 2
Description:
If the user requests a tweet of a user he is following, return the list of usernames who liked the tweet
Response
{
"likes": ["albert", ]
}
Scenario 1
Description:
If the user requests a tweet other than the users he is following
Response
401
Invalid Request
Scenario 2
Description:
If the user requests a tweet of a user he is following, return the list of replies.
Response
```
{
"replies": [
{
"name": "Narendra Modi",
"reply": "When you see it.."
},
...]
}
```
Returns a list of all tweets of the user
[
{
"tweet": "Ready to don the Blue and Gold",
"likes": 3,
"replies": 4,
"dateTime": "2021-4-3 08:32:44"
},
...
]
Create a tweet in the tweet table
{
"tweet": "The Mornings..."
}
Created a Tweet
Scenario 1
Description:
If the user requests to delete a tweet of other users
Response
401
Invalid Request
Scenario 2
Description:
If the user deletes his tweet
Response
Tweet Removed
Use npm install to install the packages.
Export the express instance using the default export syntax.
Use Common JS module syntax.
| Back | FazBrowse Home | New Git URL |