Repository files navigation
Requirement / User Stories
As a user, I want to be able to Register
As a user, I want to be able to Log In
As a user, I want to be able to Create new Thread
As a user, I want to be able to Create new Reply (on a Thread)
As a user I want to be able to Update my Personal profile
As a user, I want to be able to Save/Bookmark Threads
As a user, I want to be able to UnSave/UnBM Threads
name
type
_id
ObjectId
__v
Number
email
String
password
String
user_name
String
display_name
String
avatar_url
String?
bookmarks
[ObjectId(Threads)]?
JSON example
{
"_id" : " 6639a3d06f5ad817adcd0e2c" ,
"__v" : 0 ,
"email" : " haikal@mail.com" ,
"password" : " $2b$12$UY6RrT5VbjdwpQkrBmmb7.A7OTsbjo1zvKU3FVMoJqtchKGelD8FS" ,
"user_name" : " haikalgakbar" ,
"display_name" : " haikalgakbar" ,
"avatar_url" : " cdn.example.com/img/1.jpg" ,
"bookmarks" : [
" 663734b04bebd3fa7b61d0dd" ,
],
}
name
type
_id
ObjectId
__v
Number
sender
ObjectId(Users)
title
String
content
String
img
String?
comments
[ObjectId(Comments)]?
JSON example
{
"_id" : " 663734b04bebd3fa7b61d0dd" ,
"__v" : 0 ,
"sender" : " 66372c69cc86e6b1c94167a7" ,
"title" : " Ngeri! Lorem Ipsum Sit Dolor Amet" ,
"content" : " Lorem ipsum sit dolor amet..." ,
"img" : " cdn.example.com/thread/img/1.jpg" ,
"comments" : [
" 663734b04bebd3fa7b61d0dd" ,
],
}
Comments
name
type
_id
ObjectId
__v
Number
sender
ObjectId(Users)
thread
ObjectId(Threads)
content
String
JSON example
{
"_id" : " 663734b04bebd3fa7b61d0dd" ,
"__v" : 0 ,
"sender" : " 66372c69cc86e6b1c94167a7" ,
"thread" : " 66372c69cc86e6b1c94167a7" ,
"content" : " Lorem ipsum sit dolor amet..." ,
}
Name
Method
Endpoint
Register
POST
/auth/register
Login
POST
/auth/login
Logout
GET
/auth/logout
Request Body
Name
Value
email
String
required
password
String
required
user_name
String
required
display_name
String
required
Example Request Body
{
"email" : " haikal@mail.com" ,
"password" : " 123" ,
"user_name" : " haikalgakbar" ,
"display_name" : " haikalgakbar" ,
}
Response
Type
Status Code
Message
Success
201
Add new user success.
Error in client
400
Invalid data. / Data must be string.
Error in server
500
Error from server.
Request Body
Name
Value
email
String
required
password
String
required
Example Request Body
{
"email" : " haikal@mail.com" ,
"password" : " 123" ,
}
Response
Type
Status Code
Message
Success
201
Login success.
Error in client
404
Incorrect email or password
Error in server
500
Error from server.
Response
Type
Status Code
Message
Success
201
Logout success.
Error in client
404
Unauthorized
Error in server
500
Error from server.
Request Body
Name
Value
title
String
required
content
String
required
img
String
Example Request Body
{
"title" : " Ngeri! Lorem Ipsum Sit Dolor Amet" ,
"content" : " Lorem ipsum sit dolor amet..." ,
"img" : " cdn.example.com/thread/img/1.jpg" ,
}
Response
Type
Status Code
Message
Success
201
Add new thread success.
Error in client
400
Invalid sender ID. / Sender not found. / Data must be in string.
Error in server
500
Error from server.
Request Body
Name
Value
content
String
required
Example Request Body
{
"content" : " Lorem ipsum sit dolor amet..." ,
}
Response
Type
Status Code
Message
Success
201
Add new comment success.
Error in client
400
Invalid thread ID. / Invalid user ID. / Must include comment. / Comment must be in string.
Error in server
500
Error from server.
Request Body
Name
Value
email
String
password
String
user_name
String
display_name
String
avatar_url
String
Example Request Body
{
"email" : " haikalgakbar@gmail" ,
"password" : " 123" ,
"user_name" : " haikalgakbar" ,
"display_name" : " haikalgakbar" ,
"avatar_url" : " cdn.example.com/img/1.jpg" ,
}
Response
Result
Status Code
Message
Success
201
Update user success.
Error in client
400
Invalid ID. / User not found.
Error in server
500
Error from server.
Request Body
Name
Value
thread
ObjectId(Thread)
required
Example Request Body
{
"thread" : " 66372ee9ddc309fdfffa1666" ,
}
Response
Type
Status Code
Message
Success
201
Bookmark added.
Error in client
400
Invalid user id. / User not found. / Invalid thread id. / Thread not found
Error in server
500
Error from server.
Request Body
Name
Value
thread
ObjectId(Thread)
required
Example Request Body
{
"thread" : " 66372ee9ddc309fdfffa1666" ,
}
Response
Type
Status Code
Message
Success
201
Bookmark removed.
Error in client
400
Invalid user id. / User not found. / Invalid thread id. / Thread not found
Error in server
500
Error from server.
Example result
[
{
"_id" : " 663efe6ebacf7217e95a3221" ,
"sender" : {
"_id" : " 663dd5950f58423d8b9ce6a6" ,
"email" : " skibidi@mail.com" ,
"user_name" : " change password to 12345" ,
"display_name" : " test" ,
"avatar_url" : " "
},
"title" : " Test Title" ,
"content" : " Test content" ,
"img" : " " ,
"comments" : [
{
"_id" : " 663f17756b0c7ed28245e02b" ,
"sender" : {
"user_name" : " change password to 12345" ,
"display_name" : " test" ,
"avatar_url" : " "
},
"content" : " test comment"
}
],
"__v" : 0
}
]
Response
Type
Status Code
Message
Success
201
Error in server
500
Error from server.
Example result
[
{
"_id" : " 6639a3d06f5ad817adcd0e2c" ,
"email" : " haikal@mail.com" ,
"password" : " $2b$12$UY6RrT5VbjdwpQkrBmmb7.A7OTsbjo1zvKU3FVMoJqtchKGelD8FS" ,
"user_name" : " haikalgakbar" ,
"display_name" : " haikalgakbar" ,
"avatar_url" : " " ,
"bookmarks" : [
{
"_id" : " 663efe6ebacf7217e95a3221" ,
"sender" : {
"_id" : " 663dd5950f58423d8b9ce6a6" ,
"user_name" : " change password to 12345" ,
"display_name" : " test" ,
"avatar_url" : " "
},
"title" : " Test Title" ,
"content" : " Test content"
}
],
"__v" : 0
}
]
Response
Type
Status Code
Message
Success
201
Error in server
500
Error from server.
You can’t perform that action at this time.