
About Laravel
Laravel Blog Application

Features
User Authentication/Authorization and Admin/profile Management
- User Registration and Login: Manually implemented Secure user authentication register/login for full customization and best experience.
- Admin Panel: Admin page management system with notifications sections/manage hashtags create/edit/delete, create featured posts tondisplay on homescreen,with filtering and pagination where admin can manage users block/delete users,manage posts delete/view/edit posts, and change user role ,manage Tags ,and create features posts.
- Profile Management: profile management for users to see their posts,number of posts,total likes/comments,and edit profile settings users must confirm their passwords before accessing this page,they can edit bio/name/email/change current password, and delete their account by confirming current password,including changing their profile image,update and delete current one.
- Profile/RecentActivities/About: users can see their recent activities in their profile and see their about page.
- Password Management: Users can change their passwords and reset them if forgotten.
- Email Verification: User must verfied his email berfore making any action.
- Middleware/Policies/Gate: Implement custom middleware and policies on user/post for more secure.
Blog Posts
- Create, Read, Update, and Delete (CRUD) Operations: Users can create new blog post, edit existing one, and delete post they have authored.
- TinyMCE editor: Users can upload images within Tinymce and design fonts for best description and delete them.
- TinyMCE codesapmples: users can create code blocks with prism skin to display their codes with copy button for best experience.
- Hashtags: Users can create there own hashtags or select used hashtags.
- Save Posts: Implement Save/Unsave button using fetch(), user can access to saved page, with the ability to view and remove saved posts.
- Slugs: Implemented a unique slug for each post to create descriptive, enhancing search engine visibility and improving user experience.
- Like: Implement Like/Unkike button using fetch() with Like animation falling hearts for better user experience.
- Follow: User can follow/unfollow using fetch() for faster respond.
- Profileview: users can see who viewed their profile and folow/unfollow them if they are not.
- WhoLiked: users can see who liked on their posts and follow/unfollow them.
- OPtimization: Used Eager loading for optimized queries and prevent N+1 queries.
- Disable/Enable: Users can diasble or enable comments from creating or editing post.
- Comment on Posts: Users can add comments to blog posts using fetch().
- Reply to Comments: Users can replies to comments, creating nested comment system with reply on reply using fetch(), they can see total replies on a comment with ability to hide and show those replies.
- Delete/Edit Comments/Replies: Users can delete or edit their own comments and replies using fetch().
Post Sorting and Searching and pagination
- Sort Posts: User can sort posts by latest, oldest, most liked, featured, following, and trending hashtags.
- Search Functionality: implemented scout driver tntsearch indexed posts with fast search ability.
- Pagination: User can paginate between post pages.
Notifications database and Emails notification
- Email notification: Users will get emailed if posts are liked, commented, replied , or viewed their profiles or followed used queues for faster respond.
- Notification: users can manage notifications unread or delete notifications.
- Observer notification: Auto send and delete notifications for both admin and users based created/deleted structure.
SEO enhancements
- Helpers: create metahelper for less and clean code in controller.
- metakeywords/description: dynamic title/description/author/metakeywords based on creating hashtags for a post.
š All Pages Styled With TailwindCss ,more experience ,more responsive.
š„š„ Upcomig: likes on comments,private|public accounts, opengraph/twitter/meta SEO.
INSTALLATION
1.š¦ Install dependencies
composer install
2.š ļø Create a copy of the .env file
cp .env.example .env
3.š Generate the application key
php artisan key:generate
4.š¦ install node_modules
npm install
5.š Compile assets with Tailwind CSS
npm run dev
6.šļø Set up the database
php artisan migrate
7.š Create symbolic link for storage
rm public/storage
php artisan storage:link
8.šļø optional for testing
php artisan db:seed
9.š» Run the application
php artisan serve
Admin Login
Use these credentails to log in as admin
Laravel RESTful API for this project 
All Requests start with http://127.0.0.1:8000/api
Login
POST /api/login
- login to get token access.
posts
GET /api/blog
- Get all posts.No authentication required.
GET /api/posts/{post}
- Get single post.No authentication required.
POST /api/create
- Create new post , authentication required.
PUT /api/post/update/{post}
- Update authorized post, authentication required.
DELETE /api/post/{post}
- Delete authorized post, authentication required.
Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [email protected]. All security vulnerabilities will be promptly addressed.
License
The Laravel framework is open-sourced software licensed under the MIT license.