A real time chat based application built using laravel framework 4.2 with task management using Socket.io and Redis.
Preview
- PHP version<=7.0
- Mysql PHP and Node-Mysql (npm install mysql for nodejs)
- Redis - Windows(https://github.com/rgl/redis/downloads), Linux (https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04)
- Node Js
- Socket.io (https://www.npmjs.com/package/socket.io)
Note: Before you begin to clone, check if all the above dependencies are installed
Step 1
$ git clone https://github.com/yuvaraj-mudaliar/fusionmate.git //this will create a folder 'fusionmate' and clone into it
Step 2
$ cd fusionmate && composer install // install dependencies
Create database 'fusionmate' in Mysql
Step 3 Go to root of project and open database config, server.js and edit MYSQL credentials
$ cd /path_to/fusionmate/app/config
$ vi database.php //edit mysql credentials
$ cd /path_to/fusionmate/nodejs
$ vi server.js
var connection = mysql.createConnection({
host : 'localhost',
user : 'MYSQL _USERNAME',
password : 'MYSQL_PASSWORD',
database : 'fusionmate'
});
Step 4 Generate Database tables with test data
$ cd /path_to/fusionmate
$ php artisan migrate
Step 5 Open two terminals or CMD prompt depending on OS.
In Terminal 1
$ redis-server
In Terminal 2
$ cd /path_to/fusionmate
$ ./realtime.sh //this will start node server
**Windows**
sh realtime.sh
On windows - Redis start > control-panel>Services Scroll to redis > right click and click on start service to start redis server
Final Step
Copy .htaccess
and index.php
file outside of project root folder
$ cd /path_to/fusionmate/app/
$ cp -R index_and_htaccess/* /path_to/
Open browser and visit
https://localhost
Demo Credentials to login as Admin
Username: [email protected]
Password: Explore@123
Note: On linux if you get Exception Handler Error, then you need to make sure you have correct permission
chmod -R 775 /path_to/fusionmate/app/storage
NOTE: Inviting members requires mail configration.By default invitations will be sent from configured mail address
.
You can configure to add your own server.
<?php
//app/config/mail.php
return array(
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array(
'address' =>'<YOUR_MAIL>',
'name' => 'fusionmate'
),
'encryption' => 'tls',
'username'=>'<YOUR_MAIL>',
'password' => '<PASSWORD>',
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
);
On creating a new account as admin you can create
- Team
- Add members to a team
- Create Project and Assign to a Team
- Assign Tasks to team for a project and track issues
- Invited Team Members will get Email Notifications to JOIN
- Getting Started
- Email Invite
- Team Settings
- View-Add Members-Team Preference
- Home Page
I had created this project as Hobby and most of the mentioned features works well. Feel free to fork if you think you can add additional features or enhancements and continue development. UPGRADE: Laravel latest version is 5+. Feel free to upgrade and dm me if you wish to upgrade with latest version in a new branch. https://laravel.com/docs/5.0/upgrade
© 2016
MIT LICENSE