Mini Twitter is a lightweight social media platform designed with a microservices architecture using Spring Boot. The platform allows users to create posts (tweets), like and comment on posts, and follow/unfollow other users. Each service is independently scalable, ensuring robust performance and flexibility.
- 🔍 View user profiles: Fetch user profiles by ID.
- ✍️ Register and log in: Create a new user with email and password, secured with JWT-based authentication.
- 📝 Create new posts (tweets): Allow users to create posts with text content.
- 🔍 View individual posts by ID: Fetch the details of a specific post.
- 📰 Fetch all posts by a specific user: Retrieve all posts made by a specific user.
- 🗑️ Delete posts created by the user: Allow users to delete their own posts.
- 💬 Add comments to posts: Enable users to add comments to posts.
- 🔍 Fetch comments for a specific post: Retrieve all comments for a given post.
- 🗑️ Delete comments from posts: Allow users to delete their own comments.
- ❤️ Like/unlike posts: Like or unlike a specific post.
- 💬 Like/unlike comments: Like or unlike a specific comment.
- 🔍 Fetch the number of likes on a post: Retrieve the total number of likes for a specific post.
- 🔍 Fetch the number of likes on a comment: Retrieve the total number of likes for a specific comment.
- 👥 Follow/unfollow other users: Manage follow/unfollow actions for users.
- 🔍 View followers list: Fetch the list of users who follow a specific user.
- 🔍 View following list: Fetch the list of users that a specific user is following.
Each feature is implemented as an independent microservice:
- User Service - Handles user registration, login, and profile management.
- Post Service - Manages tweet-related operations.
- Comment Service - Handles post comments.
- Like Service - Manages likes on posts.
- Follow Service - Manages user follow/unfollow relationships.
Each service has its own database for data isolation and consistency, communicating via REST APIs.
Detailed information for each API endpoint:
- Clone the repository:
git clone https://github.com/Lilemanalu/mini-twitter.git