All Projects → unleashit → React-Help-Desk

unleashit / React-Help-Desk

Licence: MIT License
Help desk style live chat with administrative control panel in React, Node.js and Websockets

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to React-Help-Desk

amazon-ivs-simple-chat-web-demo
⚠️ IMPORTANT ⚠️ This repository is no longer actively maintained and will be archived at the end of 2022. A basic live chat implementation built with WebSockets, that can be used in conjunction with Amazon IVS to build compelling customer experiences for live video streams with chat use cases.
Stars: ✭ 53 (+82.76%)
Mutual labels:  websockets, live-chat
mojo.js
🦄 The Mojolicious real-time web framework for Node.js
Stars: ✭ 145 (+400%)
Mutual labels:  websockets
django-rest-live
Subscribe to updates from Django REST Framework over Websockets.
Stars: ✭ 48 (+65.52%)
Mutual labels:  websockets
real-time-todo
A real time todo list using websockets
Stars: ✭ 22 (-24.14%)
Mutual labels:  websockets
Geluid
Made with Electron. Streams audio from your soundcard to a browser in an easy way
Stars: ✭ 29 (+0%)
Mutual labels:  websockets
voxeling
Creative mode WebGL voxel game. Runs in Chrome, with multiplayer functionality and very few dependencies
Stars: ✭ 24 (-17.24%)
Mutual labels:  websockets
node-red-contrib-blynk-websockets
No description or website provided.
Stars: ✭ 35 (+20.69%)
Mutual labels:  websockets
help
The help website/knowledgebase (bitwarden.com/help).
Stars: ✭ 121 (+317.24%)
Mutual labels:  helpdesk
gochess
Online real time chess web server using websockets
Stars: ✭ 32 (+10.34%)
Mutual labels:  websockets
omflow
form base and IT automation workflow engine.
Stars: ✭ 14 (-51.72%)
Mutual labels:  helpdesk
simple-websocket-server
A simple WebSocket server
Stars: ✭ 26 (-10.34%)
Mutual labels:  websockets
WebSocketPipe
System.IO.Pipelines API adapter for System.Net.WebSockets
Stars: ✭ 17 (-41.38%)
Mutual labels:  websockets
WebsocketBundle
Provides websocket services for Symfony2, including an in-built server, multiplexing, and semantic configuration. Uses Wrench.
Stars: ✭ 50 (+72.41%)
Mutual labels:  websockets
Lecture2Gether
A tool for synchronized online streaming
Stars: ✭ 52 (+79.31%)
Mutual labels:  websockets
apollo-chat-graphql-server
Apollo Chat is a Chat Service build on GraphQL Apollo with Subscriptions
Stars: ✭ 13 (-55.17%)
Mutual labels:  websockets
docs
Enterprise Open Source IM Solution
Stars: ✭ 18 (-37.93%)
Mutual labels:  helpdesk
typesocket
🌐 TypeScript WebSockets library.
Stars: ✭ 24 (-17.24%)
Mutual labels:  websockets
viper
Real-time tracking and analytics using Node.js and Socket.IO
Stars: ✭ 12 (-58.62%)
Mutual labels:  websockets
dataviewer-example
📊 Usage examples of dataviewer - https://github.com/jasrodis/dataviewer
Stars: ✭ 15 (-48.28%)
Mutual labels:  websockets
ADefHelpDesk
ADefHelpDesk.com Help Desk
Stars: ✭ 28 (-3.45%)
Mutual labels:  helpdesk

React Help Desk

One-to-many live chat app with a React/Redux front end and Node.js back end. Uses socket.io and Sequelize to sync chats on a set interval to a database. The backend has a control panel that lets you manage multiple chats.

NOTE: this is a 4 year old project which will require Node version 8.x to install/build. It should still work, but I recommend a) updating all deps and b) removing the in-memory caching process since it won't scale well. Hopefully I will at some point have time to work on this (and turn it an NPM package), but until then any pull requests are appreciated!

Help Desk

Features

  • Realtime help desk style chat for one admin to one or more users
  • React/Redux client, Node/Express server
  • Control panel to administer multiple chats, archive and delete
  • Indicates to the user if admin is online, and if not provides a contact form instead of chat
  • Typing indicators and notification sounds for both user and admin
  • Option to send an SMS to the admin on new chat registration
  • Batched database persistence on a set interval for better I/O performance
  • Socket.io and Passport authentication and sessions for the admin
  • Works with Mysql or Postgresql, but based on Sequelize so can easily be adapted to other SQL databases
  • Easy to integrate with an existing site

Demo

https://jasongallagher.org

Getting Started

Run npm install then npm run build to compile assets into the dist folder. Next create a database and config files (see below). After that you can run npm start to launch a development server, or npm run prod to run the build process and start the server in production mode. By default the server runs on port 3100 in development mode, so you could go to http://localhost:3100 to view the app.

Database

Before you run the project you need to create a database and setup the configuration files. Rename DBconfig-sample.json to DBconfig.json in the root and modify as needed. You can refer to the Sequelize documentation.

Sessions are pre-configured for Postgres or Mysql, but it should work with any Database that Sequelize supports (see their documentation). If using Postgres, you will need to change the _insert_chat_records query because sequelize doesn't support an ON DUPLICATE KEY UPDATE equivalent for PG (you could change it to a raw SQL query if you like). You'll also need to add the sessions table to your DB: psql mydatabase < node_modules/connect-pg-simple/table.sql since connect-pg-simple requires that the table already exists.

If using a database other than Mysql or Postgresql, you'll need to add the appropriate Express session storage and configure it in /server/services/sessions-config.js.

Other Config

Rename APPconfig-sample.js to APPconfig.js and adjust as desired.

The first time you run the project via npm start or npm run prod, if all goes well, it will add the tables to your database and you'll be good to go.

Note that because I started this on a non-React project, the control panel front end is plain javascript. On some future rainy day, I plan on refactoring it so all clientside JS is in React.

Administration and Login

To access the admin to manage chats, you need to first add a user and then elevate its access level. To create a user, just go to /signup and create it. There is no GUI to elevate the user, so go the Users table in the DB and change the access level to 3: UPDATE "Users" SET "useraccess" = 3 WHERE id = 1;

Now you can login at /login (or the link in the header) with your user and access the admin chat panel.

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].