# Social Media Platform Task - Laravel
## Objective
Develop a Laravel-based social media platform that showcases proficiency in database design, especially with complex relationships, morph relations, real-time features, and AJAX.
## Features
### 1. User Profiles
- Users can have multiple posts, comments, and reactions.
- Users can follow and be followed by other users.
### 2. Posts
- Posts can have multiple comments and reactions.
- Each post can belong to multiple categories.
### 3. Comments
- Comments can also have multiple reactions.
### 4. Reactions
- A reaction can belong to a post or a comment.
### 5. Categories
- Each category can have multiple posts associated with it.
### 6. Followers
- establish the follower and following mechanism.
## Functionalities
### 1. AJAX-based CRUD
- Implement CRUD operations for posts, comments, and reactions using AJAX to ensure seamless user experience.
### 2. Real-time Notifications
- Users should receive real-time notifications (using Laravel's broadcasting features) when:
- Someone reacts to their post or comment.
- Someone comments on their post.
- Someone starts following them.
### 3. Search & Filter
- Users should be able to search for other users and posts.
- Users should be able to filter posts based on categories.
### 4. User Dashboard
- Show a dashboard for users where they can view:
- Their posts and the reactions they received.
- Comments on their posts.
- List of their followers and who they are following.
- Use AJAX to paginate the user's posts.
## Requirements
- Use Laravel's Eloquent ORM for all database operations.
- Ensure the use of proper validation and request sanitization.
- Follow best practices for Laravel application structure.
## Bonus
- Implement an image upload feature where users can upload profile pictures and post images.