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
![mercurius preview](docs/mercurius_preview_2018-oct.gif)
Features
- Real-time Messenger
- Responsive
- Multilingual
- Browser notifications
- Unique UX, with dark and light theme
- Lazy load messages
- Remove conversations and messages
- Search recipients with auto-complete
Screenshots Click thumbs to enlarge image
Demo
You can try a demo of Mercurius. Authenticate using any of the following credentials:
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"
BroadcastServiceProvider
2. Register 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,
],
];
6. Install Mercurius
php artisan mercurius:install
composer dump-autoload
7. 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:
[email protected]
- Noa:
[email protected]
- Lua:
[email protected]
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
- Typing indicator
- Conversation with multiple users
- Search in messages content
- Upload photos and attach files
- Preview images and videos
- Emoji support
- Video Chat
- Support socket.io
- Webhooks
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.