messenger
messenger copied to clipboard
Messenger app with React
Messenger app using React

Simple and optimized React Messenger(See Demo). It includes:
- [x] React 16.5.8
- [x] ECMAScript 6+ and JSX support
- [x] React Router v4
- [x] Component testing using Enzyme and Jest
- [x] Code Coverage
- [x] Latest Webpack (v.4.16.5), Babel 7 and Webpack Dev Server (v.4.19.1) with Scope Hoisting enabled
- [x] Hot Module Replacement using react-hot-loader
- [x] ES6 linting with continuous linting on file change
- [x] SASS support
- [x] Separate CSS stylesheets generation
- [x] Automatic HTML generation
- [x] Production Config
- [x] Custom Babel Preset with Decorators, Class Properties, Rest/Spread operator support
- [x] Export Separate Vendor Files
Starting the dev server
Make sure you have the latest Stable or LTS version of Node.js installed.
-
git clone https://github.com/ivanproskuryakov/messenger
- Run
npm install
oryarn install
- Start the dev server using
npm start
- Copy files from
.dist/params/
toapp/config/params/
and adjust - Open http://0.0.0.0:8080
Services
Notification & signals across users are build on top of pusher, see https://pusher.com/, where:
-
presence-online
- share and display online presence of users -
presence-user-X
- realtime message delivery across users of a room(chat)
Available Commands
-
npm start
- start the dev server -
npm clean
- delete the dist folder -
npm run production
- create a production ready build indist
folder -
npm run lint
- execute an eslint check -
npm test
- run all tests -
npm run test:watch
- run all tests in watch mode -
npm run coverage
- generate code coverage report in thecoverage
folder
Code Coverage
The project is using the Jest Code Coverage tool. The reports are generated by running npm run coverage
. All configurations are located in package.json
, inside the jest
object.
The coverage report consists of an HTML reporter, which can be viewed in the browser and some helper coverage files like the coverage json and xml file.
Production code
Run npm run production
. The production-ready code will be located under dist
folder.