Coder Social home page Coder Social logo

jeffersonsimaogoncalves / messenger Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rtippin/messenger

2.0 0.0 0.0 9.47 MB

Laravel messenger. A full messenger suite for your new / existing laravel app! Private and group threads between multiple models, with real-time messaging, reactions, attachments, calling, chat bots, and more!

Home Page: https://tippindev.com

License: MIT License

PHP 100.00%

messenger's Introduction

Laravel Messenger

Latest Version on Packagist Total Downloads Tests StyleCI License


Preview


Prerequisites

Laravel PHP Messenger
8.x ^7.4 ^8.0 ^8.1 <= 1.19.1
9.x ^8.0.2 ^8.1 >= 1.20.0
  • Route model binding enabled in your API / WEB middleware groups.

Features

  • Realtime messaging between multiple models.
  • RESTful API, allowing you to create your own UI or connect to your mobile app.
  • Private and group threads.
  • Message reactions, replies, edits, and deletion.
  • Send image, document, audio, and video messages.
  • Group thread chat-bots. Ready-made bots
  • Customize and create your own chat-bot handlers and bot packages. See the Chat Bots documentation.
  • Add participants in a group thread from your friends list.
  • Permissions per participant within a group thread.
  • Friends, Search, and Online status systems.
  • Private thread approval when the two participants are not friends.
  • Provider avatars, group thread avatars, and bot avatars.
  • Underlying calling system you can extend. See the Calling documentation.
  • Group thread invitation links (like discord).
  • All endpoints are protected behind policies.
  • Scheduled commands for automated cleanup and checks.
  • Queued jobs fired from our event subscribers.
  • Most features can be toggled at runtime using our Messenger facade.
  • MessengerComposer facade allows you to have easy access to the core actions anywhere within your own app, such as sending messages, images, reactions, and more.
  • You can implement or extend your own BroadcastDriver, VideoDriver, and FriendDriver, simply by binding your classes into the container.
  • Support for morph maps on your provider models. See: Morph Maps
  • Optional extra payload when sending messages to allow custom json to be stored with the message.
  • Owner relationships returns a Ghost Profile when not found (null-object pattern).
  • Private threads auto-lock when the recipient is not found / deleted.

Upcoming for v2

  • Temporary Ephemeral conversations.
  • Improved API pagination / filters.
  • Condense attachment routes.
  • Possible extraction of friends system.
  • Improved image manipulation / saving of multiple sizes.
  • Encryption of messages (E2E is the long term goal).
  • Translations for internal messages.
  • Pinned messages.
  • Chat-bots able to trigger off of an event.

Notes

  • This is a Laravel package and must be installed in a laravel application to run.
  • Read through the messenger.php config file before migrating!
  • This is a pure backend driven package providing an API to interact with, thus no web UI or websocket implementation will be setup for you.
  • Calling is disabled by default. You are responsible for implementing your own media server or connecting to a 3rd party provider.
  • Configure your laravel applications broadcast driver and set up your websocket implementation to utilize the real-time broadcast emitted.

Installation

Composer

composer require rtippin/messenger

To complete the setup, please refer to the installation documentation listed below:


Documentation


Addons / Demo

  • Messenger Bots - Pre-made bots you can register within this package.
  • Messenger Faker - Adds commands useful in development environments to mock/seed realtime events and messages.
  • Messenger Web UI - Ready-made web routes and publishable views / assets, including default images.
  • Demo App - A demo laravel app with this core package installed, including a Live Demo.

Credits - Richard Tippin

LICENSE

CHANGELOG

Security

If you discover any security related issues, please email author instead of using the issue tracker.

messenger's People

Contributors

ajnozari avatar lioneaglesolutions avatar rtippin avatar stylecibot avatar

Stargazers

 avatar  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.