Skip to content

Gianguyen1234/BlogPost_PHP_Laravel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLOG POST Open Source

Welcome to my blog post about building a blog application using Laravel! This blog shares insights and tutorials on web development, programming, and tech trends. Stay tuned for more updates!.

Table of Contents

Introduction

This blog application is designed to provide users with an intuitive interface for creating, sharing, and interacting with posts. It includes robust features for user management, post creation, and interaction, as well as administrative tools for content moderation.

Features

User Features

  • User Authentication: Register, login, and logout functionality.
  • User Profiles: Users can maintain profiles with a bio, profile picture, and links to social accounts (GitHub, Linkedin, Twitter).
  • User Roles: Support for admin and regular user roles for post moderation.

Blog Post Features

  • CRUD Operations: Users can create, read, update, and delete their posts.
  • Create Post: Users can write new posts using Markdown for formatting text and code.
  • Edit Post: Users can edit their existing posts.
  • Delete Post: Users can delete their posts.
  • View Posts: A public listing of all blog posts.
  • Post Slug Generation: Automatically generate a unique, URL-friendly slug from the post title.

Rich Text and Code Features

  • Markdown Support: Integrate a Markdown editor like hightlight.js and markdown library for highlighting code .
  • Code Syntax Highlighting: Use library Highlight.js for highlighting code.
  • Upload Images and Files: Allow users to upload images and files in their posts.

Post Interaction Features

  • Comments Section: Users can leave comments on posts, including nested comments (replies).
  • Likes/Upvotes: Functionality for users who sign up to upvote or like posts and comments.

Search and Filtering Features

  • Search Functionality: Full-text search across blog posts (search by title, content, keywords).
  • Post Filters: Filter posts by categories, user, or date.
  • Sort Posts: Sort posts by popularity (loves), newest, or most commented.

Post Drafts and Publishing

  • Drafts: Save posts as drafts for later publishing.
  • Publishing: Allow users to schedule posts for future publishing.

Admin Panel

  • Moderation Tools: Admins can flag, approve, or remove inappropriate content.
  • Analytics: View post analytics (post views, user engagement).
  • Post Approvals: Allow posts to be approved by an admin before going live.

Performance Features

  • Caching: Cache popular posts and queries to reduce load on the database.
  • Lazy Loading: Implement lazy loading for images and long post content to improve page speed.
  • UI/UX: Add NProgress for smoother transitions.

Security Features

  • CSRF Protection: Protect forms and APIs using Laravel’s built-in CSRF protection.
  • XSS Protection: Sanitize forms and inputs using Purifier and HTMLspecialchar to prevent Cross-Site Scripting (XSS).
  • Spam Protection: Implement captcha (reCAPTCHA) for comments and submissions.
  • Rate Limiting: Limit user actions (comments, post submissions) to prevent abuse.

SEO and Sharing Features

  • SEO Optimization: Generate meta descriptions, meta title and meta keywords for better search engine indexing.
  • Social Sharing: Enable users to share posts via social media platforms like Twitter, Facebook, or LinkedIn.

Prerequisites

Before you begin, ensure you have the following installed:

  • Laravel (version 10)
  • PHP (version 8.x)
  • Composer
  • A suitable web server (e.g., Apache, Nginx)