All Projects → munafio → Chatify

munafio / Chatify

A Laravel package that allows you to add a complete user messaging system into your new/existing Laravel application.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Chatify

Mercurius
Real-time Messenger for Laravel
Stars: ✭ 309 (-65.08%)
Mutual labels:  laravel, laravel-package, chat, pusher
Chat
A Laravel chat package. You can use this package to create a chat/messaging Laravel application.
Stars: ✭ 710 (-19.77%)
Mutual labels:  laravel, laravel-package, chat
Pusher Chatkit Laravel
Laravel wrapper for the Chatkit PHP SDK. ChatKit is shutting down 😕 - https://blog.pusher.com/narrowing-our-product-focus
Stars: ✭ 21 (-97.63%)
Mutual labels:  laravel, chat, pusher
Mangosta Ios
MongooseIM client for iOS
Stars: ✭ 28 (-96.84%)
Mutual labels:  chat, realtime-messaging, real-time
Laravel 5 Messenger
A Simple Laravel 5, 6, 7 & 8 Messenger with Pusher Capabilities
Stars: ✭ 75 (-91.53%)
Mutual labels:  laravel, chat, pusher
Laravel Parse
A Parse SDK bridge for Laravel 5
Stars: ✭ 116 (-86.89%)
Mutual labels:  laravel, library, real-time
Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (-88.25%)
Mutual labels:  chat, realtime-messaging, real-time
Nexmo Laravel
Add Nexmo functionality such as SMS and voice calling to your Laravel app with this Laravel Service Provider.
Stars: ✭ 250 (-71.75%)
Mutual labels:  laravel, laravel-package, library
Applozic Android Sdk
Android Real Time Chat & Messaging SDK
Stars: ✭ 611 (-30.96%)
Mutual labels:  chat, realtime-messaging, real-time
Sweet Alert
A BEAUTIFUL, RESPONSIVE, CUSTOMIZABLE, ACCESSIBLE (WAI-ARIA) REPLACEMENT FOR JAVASCRIPT'S POPUP BOXES FOR LARAVEL
Stars: ✭ 696 (-21.36%)
Mutual labels:  laravel, laravel-package
Orm
A drop-in Doctrine ORM 2 implementation for Laravel 5+ and Lumen
Stars: ✭ 712 (-19.55%)
Mutual labels:  laravel, laravel-package
Laravel User Verification
PHP package built for Laravel 5.* to easily handle a user email verification and validate the email
Stars: ✭ 755 (-14.69%)
Mutual labels:  laravel, laravel-package
Laravel Heyman
Declarative style of authorization and validation in laravel.
Stars: ✭ 677 (-23.5%)
Mutual labels:  laravel, laravel-package
Laravel Open Source Projects
A Web Artisan list of categorized OPEN SOURCE PROJECTS built with Laravel PHP Framework.
Stars: ✭ 676 (-23.62%)
Mutual labels:  laravel, laravel-package
Laravel Video Chat
Laravel Video Chat using Socket.IO and WebRTC
Stars: ✭ 646 (-27.01%)
Mutual labels:  laravel, chat
Laravel Notify
Flexible Flash notifications for Laravel
Stars: ✭ 787 (-11.07%)
Mutual labels:  laravel, laravel-package
Laravel Blade Directives
A collection of nice Laravel Blade directives
Stars: ✭ 813 (-8.14%)
Mutual labels:  laravel, laravel-package
Laravel Shopify
A full-featured Laravel package for aiding in Shopify App development
Stars: ✭ 634 (-28.36%)
Mutual labels:  laravel, laravel-package
Twitter
Twitter API for Laravel 5.5+, 6.x, 7.x & 8.x
Stars: ✭ 755 (-14.69%)
Mutual labels:  laravel, laravel-package
Package Skeleton
📦 My base for PHP packages.
Stars: ✭ 6 (-99.32%)
Mutual labels:  laravel, laravel-package

Latest Stable Version Total Downloads License

Chatify Laravel Package

A Laravel package that allows you to add a complete user messaging system into your new/existing Laravel application with only a few easy steps.

Important Notes (Update 2021/03/07)

  • I'm currently working to release v1.2.0 which will solve a lot of issues, Laravel 8+ support, and will come with a minor changes in the UI/UX ... like so.
  • And also I would like to mention that the documentation will be moved to Gitbook.
  • Chatify v2 will be delayed because it should be completely re-designed/re-coded (Back-end, UI/UX, features...), so it takes a time to be done! and also because of my job and time by general.
    At the end .. I promise that (Chatify v2 will be amazing), so be patient ❤️

Requirements

  • PHP >=5.3.2.
  • Laravel >=5.4
  • Pusher Api Account.

Features

  • Users / groups(soon) chat system.
  • Real-time contacts list updates.
  • Favorites contacts list (Like stories style) and add to favorite button.
  • Saved Messages to save your messages online like Telegram messenger app.
  • Search functionality.
  • Contact item's last message indicator (e.g. You: ....).
  • Real-time user's active status.
  • Real-time typing indicator.
  • Real-time seen messages indicator.
  • Real-time internet connection status.
  • Upload attachments (Photo/File).
  • Shared photos, delete conversation.. (User's info right side).
  • Responsive design with all devices.
  • User settings and chat customization : user's profile photo, dark mode and chat color. with simple and wonderful UI design.

Demo

Installation

Video Tutorial on YouTube - Click Here

OR

Follow the steps below :

1. Install the package in your Laravel app

Quick Note: If you are installing this package in a new project, make sure to install the default user authentication system provided with Laravel.

$ composer require munafio/chatify

2. Pusher Api Settings

This package using Pusher Api, so you need to :

  • Create account and modify .env file of your Laravel app with your api credentials.
  • This package used a Pusher client events, and client events must be enabled for the application. You can do this in the Settings tab for your app within the Channels dashboard.
    Read more about Pusher 'Triggering client events'

3. Publishing Assets

Packages' assets to be published :
The Important assets:

  • config
  • assets
  • migrations

and the optional assets :

  • controllers (you need to configure this, if published)
  • views

to pusblish the assets, do the following command line with changing the tag value .. that means after --tag= write chatify- + asset name as mentioned above.
Example :

$ php artisan vendor:publish --tag=chatify-config
  • NOTE: Publishing assets means (e.g. config) that creating a copy of the package's config file into the config folder of your Laravel applications and like so with the other asstes (Package's Views, controllers, migrations ...).

4. Migrations

Migrate the new migrations that added by the previous step

$ php artisan migrate

5. Storage Symlink

Create a shourtcut or a symlink to the storage folder into the public folder

$ php artisan storage:link

6. App config

For Laravel <=v5.4 that doesn't support package auto-discovery, add the following provider into config/app.php providers array list :

...
/*
* Package Service Providers...
*/
\Chatify\ChatifyServiceProvider::class,
...

and the following alias into into config/app.php aliases:

...
/*
* Class Aliases
*/
'Chatify' => Chatify\Facades\ChatifyMessenger::class,
...
  • After installing the package, you can access the messeneger by the default path(route path) which is /chatify, and you can change path name in the config file config/chatify.php as mentioned in the configurations below.
That's it .. Enjoy :)

Configurations

You can find and modify the default configurations of the package at config/chatify.php file that you published in the step 2 of the installation steps .. and all configurations is documented well to be understood by other developers.

  • All package’s files is documented to understand the whole code.

Messenger Name

This value is the name of the app which is used in the views or elsewhere in the app.

...
'name' => env('CHATIFY_NAME', 'Chatify Messenger'),
...

Messenger Path in Your App

This value is the path of the package or in other meaning, it is the prefix of all the registered routes in this package. e.g (yourapp.domain/chatify)

...
'path' => env('CHATIFY_PATH', 'chatify'),
...

Package's web routes middleware

This value is the middleware of all routes registered in this package which is by default : auth.

...
'middleware' => env('CHATIFY_MIDDLEWARE', 'auth'),
...

Pusher API credentials

you don't need to modify the credentials of Pusher from here, because you already added your credentials in the .env file of your Laravel app.

User Avatar

This is the user's avatar setting that includes :

...
'user_avatar' => [
        'folder' => 'users-avatar',
        ...
    ],
...

which is the default folder name to upload and get user's avatar from.

...
'user_avatar' => [
        ...
        'default' => 'avatar.png',
    ],
...

which is the default avatar file name for users stored in database .. and when you publishing assets, a copy of the avatar photo will be copied into your storage path.

Attachments By Default

This array contains the important default values that used in this package :

...
'attachments' => [
        'folder' => 'attachments',
        ...
    ],
...

This is the default folder name for attachments in the storage which is all the attachments will be stored in .. and also going to be used in attachments urls in the views.

...
'attachments' => [
        ...
        'route' => 'attachments.download',
    ],
...

It is the route name of the download attachments method.

Controller's namespace

This proprty if you may need to change the namespace of the route's controllers of this package after publishing the 'controllers' asset, from the default one to your App's controllers namespace.

By default: Chatify\Http\Controllers
If published to be modified, it should be like: App\Http\Controllers\vendor\Chatify

...
'namespace' => env('CHATIFY_ROUTES_NAMESPACE', 'Chatify\Http\Controllers'),

Author

Munaf A. Mahdi

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].