A fully functional, dynamic, and secure Blog Management System built with Laravel. This project was developed as part of the "Laravel For Absolute Beginners" course, focusing on building a robust backend architecture, clean code principles, and optimized database queries.
- User Authentication & Authorization: Secure registration and login system. Authors can only edit and delete their own blogs (IDOR protection).
- Complete CRUD Operations: Create, Read, Update, and Delete blog posts seamlessly.
- Advanced File Management: Secure image uploading, storing physical files using Laravel's local disk, and automatically deleting old images from the server when a post is updated or deleted to save space.
- Dynamic Categories: Filter and display blogs based on their assigned categories.
- Interactive Commenting System: Users can leave comments on single blog pages with full form validation.
- Author Dashboard (My Blogs): A dedicated protected page for authors to manage their published posts.
- Performance Optimization (Eager Loading): Fixed the famous (N+1) query problem using
with()andload()methods to optimize database performance significantly. - Route Model Binding: Clean and efficient routing logic for fetching records.
- UI/UX Enhancements: * Integrated SweetAlert2 for elegant and safe delete confirmation dialogs.
- Dynamic Blog Slider and "Recent Posts" widget on the sidebar.
- Pagination for handling large amounts of data smoothly.
- Backend: PHP, Laravel Framework
- Database: MySQL
- Database Management: HeidiSQL
- Local Server Environment: Laragon
- Frontend: HTML, CSS, Bootstrap, JavaScript
- Libraries: SweetAlert2
The system relies on a well-structured relational database:
Userhas manyBlogs(1:M)Categoryhas manyBlogs(1:M)Blogbelongs to aUserand aCategoryBloghas manyComments(1:M)