GithubHelp home page GithubHelp logo

labomatik / laravel-chat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 7span/laravel-chat

0.0 0.0 0.0 70 KB

The Laravel Chat package simplifies one-to-one and group chat integration facilitates document sharing within chats, manages read and unread message counts, and supports document uploads to both local and AWS S3 storage.

License: MIT License

PHP 100.00%

laravel-chat's Introduction

Laravel Chat

The Laravel Chat package simplifies one-to-one and group chat integration facilitates document sharing within chats, manages read and unread message counts, and supports document uploads to both local and AWS S3 storage

Index

Prerequisites

Before you get started, make sure you have the following prerequisites installed:

  • PHP >= 8.1
  • Composer >= 2.0
  • Laravel >= 8.1
  • AWS API credentials (Optional)

Features

  • One-to-One Chat Integration
  • Group Chat Integration
  • Document Sharing within Chats
  • Read and Unread Message Count Management
  • Document Upload Support for Local Storage
  • Document Upload Support for AWS S3 Storage

Installation

To install this package, use Composer:

composer require sevenspan/laravel-chat

Configurations

To configure the package, publish the migration file with the following command:

php artisan vendor:publish --provider="SevenSpan\Chat\Providers\ChatServiceProvider"

This command will publish the configuration file chat.php to your project's config directories, respectively.

If you have cached configurations locally, clear the config cache using one of these commands:

php artisan optimize:clear

After publishing the migration and configuring, create the required tables for this package by running:

php artisan migrate

Usage

Once you have installed the package, you can start using its features in your Laravel application. Here's a brief overview of how to use some of the main features:

1. List Channels

Use the list method to get all channels.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $perPage = 10; (Optional)

Channel::list($userId, $perPage);

2. Detail of Channel

Use the detail method to get the detail of channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $channelId = 10; (Required)

Channel::detail($userId, $channelId);

3. Create Channel

Use the create method to create the new channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $receiverId = 10; (Required)
// $channelName = "Goverment project" (Required)

Channel::create($userId, $receiverId, $channelName);

4. Update Channel

Use the update method to update the channel details.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $receiverId = 10; (Required)
// $channelName = "Goverment project" (Required)

Channel::update($userId, $receiverId, $channelName);

5. Delete Channel

Use the delete method to delete the channel.

use SevenSpan\Chat\Facades\Channel;

// $userId = 12; (Required)
// $channelId = 10; (Required)

Channel::delete($userId, $channelId);

6. Clear Channel History

Use the clearMessage method to clear the chat history.

use SevenSpan\Chat\Facades\Channel;

// $userId = 1; (Required)
// $channelId = 1 (Required)

Channel::clearMessage($userId, $channelId);

7. List Message

Use the list method to get all messages of the channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $perPage = 10; (Optional)

Message::list($userId, $channelId, $perPage);

8. Send Message

Use the send method to send a message.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $data = [
//    'body' => 'TEXT_MESSAGE',
//    'file' => Image Or Document
// ]; (Required)

Message::send($userId, $channelId, $data);

Note

In the $data param either body or file is required.

9. Get Files Message

Use the getFiles method to document of the channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $type = 'image' (Default: image)
// $perPage = 10; (Optional)

Message::getFiles($userId, $channelId, $type, $perPage);

Note

$type param supported value is image or zip.

10. Delete Message

Use the delete method to delete the message.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $messageId = 10; (Required)

Message::delete($userId, $channelId, $messageId);

11. Read Message

Use the read method to read the message of a channel.

use SevenSpan\Chat\Facades\Message;

// $userId = 1; (Required)
// $channelId = 1 (Required)
// $messageId = 10; (Required)

Message::read($userId, $channelId, $messageId);

Note

The messages that have a lesser value than $messageId will be read automatically.

12. User List

Use the list method to get a list of users and also search for the name of the user.

use SevenSpan\Chat\Facades\User;

// $userId = 1; (Required)
// $name = "John Doe" (Optional)
// $perPage = 10; (Optional)

User::list($userId, $name, $perPage);

Credits

Contributing

If you encounter any issues or would like to contribute to this package, we welcome contributions from the community to improve and enhance this package. If you'd like to contribute, please follow our contribution guidelines:

  • Fork this repository.
  • Clone the forked repository to your local machine.
  • Create a new branch for your feature or bug fix: git checkout -b feature/your-feature-name
  • Make your changes and commit them: git commit -m 'Add new feature'
  • Push your changes to your fork: git push origin feature/your-feature-name
  • Create a pull request to the original repository.

License

This package is open-source software licensed under the MIT License. Feel free to use, modify, and distribute it according to the terms of the license.

laravel-chat's People

Contributors

harshil-7span avatar kajal-7span avatar labomatik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.