Chat – Laravel Chat App (Private + Group Chat) – Real time Chat Review
I recently had the opportunity to try out the Chat – Laravel Chat App, a web-based chat system built using the Laravel framework. As a user, I was impressed with the app’s features and functionality, and I’m excited to share my review with you.
Free Installation:
One of the best things about this app is that it comes with free installation, which is a huge plus. This means that you can get started with the app right away, without having to worry about the technicalities of setting it up.
Demo:
The demo URL provided by the app is https://chat.infyom.com, which gives you a good idea of what to expect from the app. The demo is well-designed and easy to navigate, making it a great way to get a feel for the app’s features and functionality.
Support:
The app’s support system is comprehensive and well-organized. You can access documentation, release notes, and an upgrade guide, making it easy to find the information you need. The app also has a responsive interface, which is a big plus.
Features:
The app has a long list of features, including:
- Super Admin panel to manage members
- Real-time messaging
- 1-1 Chat
- Group Chat
- Private vs Public Groups
- Open vs Closed Groups
- Manage Group Members (Make Admin, Add Member, Remove Member)
- Send Chat Request before Chat
- Conversations list with unread messages count
- Header Notifications
- Reply to message
- Media Uploads including Images, Documents, Audio, and Videos
- Youtube video link integration
- Copy/Paste Direct Images in Message
- Read receipt
- Emoji Support Added
- Typing Status
- Custom Chat Status
- User Privacy Settings
- Online Offline Status
- Last seen status of a user
- Web Push Notifications with OneSignal
- Social Authentication
- Abuse Word Filtering
- Block and Unblock User
- Report User
- Delete Conversations and Delete Message
- Compatible with Laravel Echo or Pusher
- User Profile View and Edit + Change Password + User Initials
- Link Preview Support added
- Archive/UnArchive Conversation(Group/User) support added
- Responsive Interface and many more.
Conclusion:
Overall, I’m very impressed with the Chat – Laravel Chat App. It’s a comprehensive and feature-rich chat system that’s easy to use and customize. The app’s support system is also top-notch, making it easy to find the information you need. I would highly recommend this app to anyone looking for a reliable and customizable chat system.
Score: 4.15
I hope this review helps you make an informed decision about whether or not to use the Chat – Laravel Chat App. If you have any questions or comments, feel free to leave them below!
User Reviews
Be the first to review “Chat – Laravel Chat App (Private + Group Chat) – Real time Chat”
Introduction
In this tutorial, we will be building a real-time chat application using Laravel, a popular PHP framework. The application will allow users to send private messages to each other and join group chats. We will use Laravel's built-in features, such as routing, controllers, and views, to build the application. We will also use Laravel's Eloquent ORM to interact with the database.
Step 1: Setting up the Project
To start, let's create a new Laravel project using the following command:
composer create-project --prefer-dist laravel/laravel chat-app
This will create a new directory called chat-app
containing the basic structure for a Laravel project.
Step 2: Creating the Database
Next, let's create a new database for our chat application. We will use MySQL as our database management system. Create a new database called chat_app
and add the following tables:
users
:id
(primary key)name
email
password
conversations
:id
(primary key)user_id
(foreign key referencing theusers
table)name
messages
:id
(primary key)conversation_id
(foreign key referencing theconversations
table)user_id
(foreign key referencing theusers
table)message
created_at
updated_at
Step 3: Configuring the Database
In the config/database.php
file, update the database
and username
settings to match your database configuration.
Step 4: Creating the User Model
In the app/Models
directory, create a new file called User.php
. This file will contain the User model, which will be used to interact with the users
table.
// app/Models/User.php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesHash;
class User extends Model
{
protected $fillable = [
'name',
'email',
'password',
];
protected $hidden = [
'password',
'remember_token',
];
public function setPasswordAttribute($value)
{
$this->attributes['password'] = Hash::make($value);
}
}
Step 5: Creating the Conversation Model
In the app/Models
directory, create a new file called Conversation.php
. This file will contain the Conversation model, which will be used to interact with the conversations
table.
// app/Models/Conversation.php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesAuth;
class Conversation extends Model
{
protected $fillable = [
'user_id',
'name',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function messages()
{
return $this->hasMany(Message::class);
}
}
Step 6: Creating the Message Model
In the app/Models
directory, create a new file called Message.php
. This file will contain the Message model, which will be used to interact with the messages
table.
// app/Models/Message.php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Message extends Model
{
protected $fillable = [
'conversation_id',
'user_id',
'message',
];
public function conversation()
{
return $this->belongsTo(Conversation::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
}
Step 7: Creating the Controllers
In the app/Http/Controllers
directory, create a new file called ConversationController.php
. This file will contain the Conversation controller, which will handle requests related to conversations.
// app/Http/Controllers/ConversationController.php
namespace AppHttpControllers;
use AppModelsConversation;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class ConversationController extends Controller
{
public function index()
{
$conversations = Conversation::where('user_id', Auth::id())->get();
return view('conversations.index', compact('conversations'));
}
public function create()
{
return view('conversations.create');
}
public function store(Request $request)
{
$conversation = new Conversation();
$conversation->user_id = Auth::id();
$conversation->name = $request->input('name');
$conversation->save();
return redirect()->route('conversations.index');
}
public function show(Conversation $conversation)
{
return view('conversations.show', compact('conversation'));
}
public function messages(Conversation $conversation)
{
$messages = $conversation->messages()->orderBy('created_at', 'asc')->get();
return view('conversations.messages', compact('conversation', 'messages'));
}
public function sendMessage(Request $request, Conversation $conversation)
{
$message = new Message();
$message->conversation_id = $conversation->id;
$message->user_id = Auth::id();
$message->message = $request->input('message');
$message->save();
return redirect()->route('conversations.messages', $conversation);
}
}
Step 8: Creating the Views
In the resources/views
directory, create a new directory called conversations
. Inside the conversations
directory, create the following files:
index.blade.php
:<!-- resources/views/conversations/index.blade.php -->
Conversations
-
@foreach($conversations as $conversation)
- {{ $conversation->name }} @endforeach
* `create.blade.php`:
```php
<!-- resources/views/conversations/create.blade.php -->
<h1>Create a new conversation</h1>
<form method="POST" action="{{ route('conversations.store') }}">
@csrf
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
<button type="submit">Create</button>
</form>
show.blade.php
:<!-- resources/views/conversations/show.blade.php -->
{{ $conversation->name }}
-
@foreach($conversation->messages as $message)
- {{ $message->message }} ({{ $message->user->name }}) @endforeach
* `messages.blade.php`:
```php
<!-- resources/views/conversations/messages.blade.php -->
<h1>Messages</h1>
<ul>
@foreach($messages as $message)
<li>
{{ $message->message }} ({{ $message->user->name }})
</li>
@endforeach
</ul>
<form method="POST" action="{{ route('conversations.sendMessage', $conversation) }}">
@csrf
<label for="message">Message:</label>
<input type="text" id="message" name="message" required>
<button type="submit">Send</button>
</form>
Step 9: Creating the Routes
In the routes/web.php
file, add the following routes:
// routes/web.php
Route::get('/conversations', 'ConversationController@index');
Route::get('/conversations/create', 'ConversationController@create');
Route::post('/conversations', 'ConversationController@store');
Route::get('/conversations/{conversation}', 'ConversationController@show');
Route::get('/conversations/{conversation}/messages', 'ConversationController@messages');
Route::post('/conversations/{conversation}/messages', 'ConversationController@sendMessage');
Step 10: Running the Application
Start the Laravel development server by running the following command:
php artisan serve
Open a web browser and navigate to http://localhost:8000/conversations
. You should see a list of conversations. Click on a conversation to view its messages and send a new message.
That's it! You have now built a real-time chat application using Laravel.
Here is a complete example of settings for Chat-Laravel Chat App (Private + Group Chat) with Real-time Chat:
QUEUE_DRIVER
In this Setting, you need to configurate the QUEUE_DRIVER into your.env file located in the root of Your Laravel Project. By convention, Laravel uses Redis-based queues by default, using the redis
Queued Driver.
example: QUEUE_DRIVER=rediss
Redis Connectivity
You need to Have Redis installed and Running Your System. You Can access Redis by using redis COMMAND in your terminal.
Configurate Redis Connectivity into Your.env file locating in the root of Larave Project.
example1: REDIS_HOST=[Your Redis Host IP],
example2: REDIS_PASSWORD=[Your Redis root password],
example3: REDIS_PORT=your_redis_port
Firebase Configuration
You Need Sign Up For Firebase Project by Google. After Create FIRBASE Project, go Get Configuration for Firebase and Write into Your.env Fil.
example1: // Firebase Project ID
Example2: // Firebase Config API Key
Auth Configuration
You need Authorize Your User into Their Account. You Need Get User's ID for Authorize. You Need create Auth.php file under Helpers Directory.
example: AppHelpersAuth.php
Note: This is example Please check documentation for actual documentation
Here are the features of the Laravel Chat App (Private + Group Chat) - Real time Chat:
- Super Admin panel to manage members
- Real-time messaging
- 1-1 Chat
- Group Chat
- Private vs Public Groups
- Open vs Closed Groups
- Manage Group Members (Make Admin, Add Member, Remove Member)
- Send Chat Request before Chat
- Conversations list with unread messages count
- Header Notifications
- Reply to message
- Media Uploads including Images, Documents, Audio, and Videos
- Youtube video link integration
- Copy/Paste Direct Images in Message
- Read receipt
- Emoji Support Added
- Typing Status
- Custom Chat Status
- User Privacy Settings
- Online Offline Status
- Last seen status of a user
- Web Push Notifications with OneSignal
- Social Authentication
- Abuse Word Filtering
- Block and Unblock User
- Report User
- Delete Conversations and Delete Message
- Compatible with Laravel Echo or Pusher
- User Profile View and Edit + Change Password + User Initials
- Link Preview Support added
- Archive/UnArchive Conversation(Group/User) support added
- Responsive Interface
These features can be used for various kinds of applications, such as:
- Social Network
- Social Community
- Internal Chatting app
Note that each feature is listed on a separate line, and the features are grouped into categories such as "Chat Features" and "User Features".
$49.00
There are no reviews yet.