launcher / mercurius
Real-time Messenger package for Laravel
Installs: 563
Dependents: 0
Suggesters: 0
Security: 0
Stars: 326
Watchers: 25
Forks: 51
Open Issues: 21
Requires
- php: ^7.1.3
- laravel/framework: 5.5.* || 5.6.* || 5.7.*
- pusher/pusher-php-server: ^3.2
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mockery/mockery: ^1.0
- orchestra/testbench: ^3.7
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-10-15 03:11:59 UTC
README
Table of Contents
- About
- Preview
- Features
- Screenshots
- Demo
- Installation
- Customization
- Roadmap
- Support
- Contributing
- Changelog
- Credits
- Copyright & License
About
Mercurius is a real-time messenger system using Laravel and Vue.js, featuring a complete application that you can easily install with any Laravel project.
Preview
Features
- Real-time Messenger
- Responsive
- Multilingual
- Browser notifications
- Unique UX, with dark theme
- Typing indicator
- Remove conversations and messages
- Search recipients with auto-complete
Screenshots
Click thumbs to enlarge imageDemo
You can try a demo of Mercurius. Authenticate using any of the following credentials:
ian@launcher.host
noa@launcher.host
lua@launcher.host
Password: password
Tip: Open 2 different browsers and login with different usernames, so you can test send/receiving messages.
Installation
Make sure Laravel 5.6
+ is installed before proceed.
1. Setup Pusher
If you don't have an account, create a free one on pusher.com website. Go to the dashboard, create a new app and take note of the API credentials.
Now, let's add the API keys to the .env
file.
Also, change the BROADCAST_DRIVER
to pusher
(default is log
).
... BROADCAST_DRIVER=pusher ... PUSHER_APP_ID="xxxxxx" PUSHER_APP_KEY="xxxxxxxxxxxxxxxxxxxx" PUSHER_APP_SECRET="xxxxxxxxxxxxxxxxxxxx" PUSHER_APP_CLUSTER="xx"
2. Register BroadcastServiceProvider
Open config/app.php
and uncomment the line App\Providers\BroadcastServiceProvider::class,
.
3. Laravel Authentication
Skip this step if authentication is already setup, otherwise type:
php artisan make:auth
4. Install Mercurius
composer require launcher/mercurius
5. Configuration (optional)
If you want to change the default configuration, publish the config file, by typing the command:
php artisan vendor:publish --tag=mercurius-config
For editing the config, open /config/mercurius.php
and add your own values.
return [ /* |-------------------------------------------------------------------------- | Mercurius Models |-------------------------------------------------------------------------- | | Defines the models used with Mercurius, use it to extend Mercurius and | create your own implementation. | */ 'models' => [ 'user' => App\User::class, 'messages' => Launcher\Mercurius\Models\Message::class, ], /* |-------------------------------------------------------------------------- | User Table Fields |-------------------------------------------------------------------------- | | You can specify the column names for the user table. The `name` accepts | an array of fields, for building custom names with multiple columns. | */ 'fields' => [ // 'name' => ['first_name', 'last_name'], 'name' => 'name', 'slug' => 'slug', 'avatar' => 'avatar', ], ];
6. Install Mercurius
php artisan mercurius:install composer dump-autoload
7. User trait
Add Launcher\Mercurius\MercuriusUser
trait to your User
model:
// ... use Illuminate\Foundation\Auth\User as Authenticatable; use Launcher\Mercurius\MercuriusUser; class User extends Authenticatable { use MercuriusUser; // ... }
8. Install dummy data (for testing)
php artisan db:seed --class=MercuriusDatabaseSeeder
Will add Messages and Users to the system, like in the demo example:
Demo Users:
- Ian:
ian@launcher.host
- Noa:
noa@launcher.host
- Lua:
lua@launcher.host
Password: password
Update Mercurius
Whenever you update Mercurius, make sure to publish assets to apply the new versions of CSS/JS.
php artisan vendor:publish --tag=mercurius-public --force
Customization
Please see Customization for more information.
Roadmap
Check the roadmap for more information.
- Unit Tests
- Conversation w/ multiple users #13
- Webhooks #16
- Upload photos & files #14
- Preview images and videos #15
- Emoji support #18
- Video Chat #19
- Support socket.io #20
- Search messages #17
Support
- Create a new issue
- Join us on Slack Channel
Contributing
Please see CONTRIBUTING for more information.
Changelog
We keep a CHANGELOG with the information that has changed.
Credits
Copyright and license
Copyright 2018 Bruno Torrinha. Mercurius is released under the MIT License.