metafroliclabs/laravel-chat

A powerful and customizable chat system built for Laravel applications. This package supports private and group chats, media sharing, chat settings, user roles, activity messages, and more.

v1.0.3 2025-06-12 07:55 UTC

This package is auto-updated.

Last update: 2025-06-12 09:52:26 UTC


README

Laravel Logo

Laravel Chat Package

A powerful and customizable chat system built for Laravel applications. This package supports private and group chats, media sharing, chat settings, user roles, activity messages, and more.

🚀 Features

  • Private & Group Chat
  • Message types: message, activity
  • User roles: admin, user
  • Group settings (permissions control)
  • Message read/unread tracking
  • Activity messages: group creation, joins, leaves, settings changes
  • Media upload support
  • Configurable user info: name, avatar
  • Extendable & clean architecture (Service-based)

📦 Installation

composer require metafroliclabs/laravel-chat

Publish configuration file & run migrations:

php artisan vendor:publish --tag=chat-config
php artisan migrate

📁 File Uploads

Supports media upload (image, video, file).

Make sure storage is linked:

php artisan storage:link

⚙️ Configuration

Customize settings in config/chat.php:

  1. Pagination:

Enable or disable pagination:

'pagination' => true,
  1. Activity Messages

Automatically generated for:

  • Group creation
  • User added/removed
  • Group settings updated
  • User left the chat

You can disable all activity messages globally:

'enable_activity_messages' => false,
  1. User Model Configuration

Define how user information (name and avatar) is retrieved:

'user' => [
    'name_cols' => ['first_name', 'last_name'], // Columns to build full name
    'image_col' => 'avatar',                    // Column for profile picture
    'enable_image_url' => true,                 // If true, image will be URL
],

🧠 Usage

📚 API Endpoints

All routes are prefixed by the config value chat.prefix (default: chat) and use the chat.middleware middleware group.

Middleware: auth:sanctum is required.

🔍 Chat List & Info

Method Endpoint Description
GET /all/list Get all chats for the user
GET /unread/list Get all unread chats
GET /unread/count Get unread chat count

🛠️ Chat Management

Method Endpoint Description
POST /create Create private chat
POST /create/group Create group chat
POST /{id}/update Update chat name/image/settings
POST /{id}/delete Delete a chat
POST /{id}/leave Leave group chat
POST /{id}/mute Mute/unmute chat
GET /{id} Chat detail

👥 User Management

Method Endpoint Description
GET /{id}/users Get all users in the chat
POST /{id}/users/add Add users to a group
POST /{id}/users/remove Remove users
POST /{id}/users/{uid}/admin Promote/demote user to/from admin

💬 Messaging

Method Endpoint Description
GET /{id}/messages Get all messages in a chat
POST /{id}/messages Send a new message
POST /{id}/messages/{mid}/update Update a message
POST /{id}/messages/{mid}/delete Delete a message

💖 Reactions & Views

Method Endpoint Description
GET /{id}/messages/{mid}/likes Get users who liked a message
POST /{id}/messages/{mid}/likes Like/unlike a message
GET /{id}/messages/{mid}/views Get users who viewed a message
POST /{id}/messages/{mid}/views Mark message as viewed

📄 License

This project is licensed under the MIT License.