# 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.