Skip to content

Laravel messenger demo app using rtippin/messenger. Private and group threads with real-time messaging, reactions, attachments, calling, chat bots, and more!

Notifications You must be signed in to change notification settings

RTippin/messenger-demo

Repository files navigation

Preview


Included addon packages:

Checkout the LIVE DEMO

Prerequisites

  • PHP >= 8.0.2
  • Laravel >= 9.x
  • MySQL >= 8.x
  • PHPREDIS if using redis for drivers, which our default .env.example has set.

Notes

  • This demo is meant to be seeded before use. Registration also assumes a pre-seeded database, as we automatically create threads between the admin user and a newly registered user, as well as set friendships.
  • Calling will be disabled by default. Even though we have our janus-client installed, you are responsible for setting up your own Janus Server.
  • Please see Janus official docs for more information.
  • We use pusher.com by default for our websocket implementation, however you may choose to use the drop-in replacement laravel-websockets

Installation

Clone or download this repository

git clone [email protected]:RTippin/messenger-demo.git

Composer install

composer install

Rename the .env.example to .env and configure your environment, including your pusher keys if you use pusher.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=1234
DB_DATABASE=demo
DB_USERNAME=root
DB_PASSWORD=password
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=
MESSENGER_SOCKET_PUSHER=true
MESSENGER_SOCKET_KEY="${PUSHER_APP_KEY}"
MESSENGER_SOCKET_CLUSTER="${PUSHER_APP_CLUSTER}"
#etc

Run the Install Command

  • This command will generate your APP_KEY for you, as well as migrating fresh and downloading our documentation files.
    • This will WIPE any data in your database as it runs migrate:fresh under the hood.
php artisan demo:install

Running locally:

Run these commands in their own terminal inside your project folder

php artisan serve
php artisan queue:work --queue=messenger,messenger-bots

Default seeded admin account:

Password: messenger

All other seeded accounts use messenger password as well


UI configurations / Websockets


Pictures

Sending images, voice messages, replies, and reactions

Preview


Interacting with a chat-bot using triggers to invoke responses

Preview


Viewing a bots actions and triggers

Preview


Managing a groups participants

Preview


In a video call

Preview


Sending documents and images, hovering over options / reactions

Preview

About

Laravel messenger demo app using rtippin/messenger. Private and group threads with real-time messaging, reactions, attachments, calling, chat bots, and more!

Topics

Resources

Stars

Watchers

Forks

Sponsor this project