This project demonstrates robust microservice architecture for managing discussions, comments, and user interactions with user authentication and authorization.
This microservice-based backend application provides a comprehensive set of functionalities for user management and discussion handling. It includes APIs for user authentication, user interactions such as following other users, posting discussions with optional images and hashtags, managing comments, likes, and more.
- URL: https://social-media-backend-application.onrender.com
- Description: Handles user authentication, signup, login, user management, and authorization using JWT tokens.
- URL: https://social-media-backend-application-f4un.onrender.com
- Description: Manages discussions, posts, comments, likes, and search functionalities based on tags and text content.
- Create, update, delete users.
- List users and search users by name.
- Follow/unfollow users.
- Create, update, delete discussions.
- List discussions by tags or text.
- Add, update, delete comments.
- Like comments, reply to comments.
POST /register
: Register a new user.- Request Body:
{ "name": "string", "email": "string", "mobile": "string", "password": "string", }
- Request Body:
POST /login
: Authenticate a user and return a JWT token.- Request Body:
{ "email": "string", "password": "string" }
- Response:
{ "token": "JWT_token_here" }
- Request Body:
GET /user/{id}
: Retrieve user information.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
GET /users
: List all users.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
GET /users/search?name={name}
: Search users by name.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
POST /discussions
: Create a new discussion.- Authorization Header:
Authorization: Bearer JWT_token_here
- Request Body:
{ "text": "string", "image": "string", "hashtags": ["string"] }
- Authorization Header:
PUT /discussions/{id}
: Update a discussion.- Authorization Header:
Authorization: Bearer JWT_token_here
- Request Body:
{ "text": "string", "image": "string", "hashtags": ["string"] }
- Authorization Header:
DELETE /discussions/{id}
: Delete a discussion.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
GET /discussions
: Retrieve a list of discussions.GET /discussions/{id}
: Retrieve a specific discussion by ID.GET /discussions/tags/{tags}
: Retrieve discussions by tags.GET /discussions/search?text={text}
: Search discussions by text.
POST /discussions/{id}/comments
: Add a comment to a discussion.- Authorization Header:
Authorization: Bearer JWT_token_here
- Request Body:
{ "text": "string" }
- Authorization Header:
PUT /comments/{id}
: Update a comment.- Authorization Header:
Authorization: Bearer JWT_token_here
- Request Body:
{ "text": "string" }
- Authorization Header:
DELETE /comments/{id}
: Delete a comment.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
GET /discussions/{id}/comments
: Retrieve comments for a specific discussion.POST /comments/{id}/like
: Like a comment.- Authorization Header:
Authorization: Bearer JWT_token_here
- Authorization Header:
POST /comments/{id}/reply
: Reply to a comment.- Authorization Header:
Authorization: Bearer JWT_token_here
- Request Body:
{ "text": "string" }
- Authorization Header:
The Postman collection file Discussion-Backend-app.postman_collection.json has been added to the repository. It includes sample requests for various endpoints with necessary headers and body payloads for testing.