<commit_before>[![Build Status](https://travis-ci.org/ymyqwe/Websocket-React-Chatroom.svg?branch=master)](https://travis-ci.org/ymyqwe/Websocket-React-Chatroom)

# Websocket-React-Chatroom

A :rocket:Chatroom powered by [`React`](https://reactjs.org/), [`Socket.io`](https://socket.io/)

## Features

- Using [React-Hooks](https://reactjs.org/docs/hooks-intro.html) to manage state
- Using [Socket.io](https://socket.io/) to receive real-time message

## Getting Started

1. Clone this repo

2. Install dependencies

```bash
npm install
```

3. Try out

```bash
npm start
```

## Demo

[Live Demo](http://chat.yumingyuan.me)

## Preview

![image](https://github.com/ymyqwe/Websocket-React-Chatroom/raw/master/chat.gif)

## TODO
- [x] [Redux] like style state manage
- [ ] [Log4js](https://github.com/log4js-node/log4js-node)
- [ ] [React-router](https://github.com/ReactTraining/react-router)
- [ ] [Typescript](https://github.com/Microsoft/TypeScript)
- [ ] Test<commit_msg>add changelog and TODO<commit_after>[![Build Status](https://travis-ci.org/ymyqwe/Websocket-React-Chatroom.svg?branch=master)](https://travis-ci.org/ymyqwe/Websocket-React-Chatroom)

# Websocket-React-Chatroom

A Chatroom powered by [`React`](https://reactjs.org/), [`Socket.io`](https://socket.io/)

## Features

- Using [React-Hooks](https://reactjs.org/docs/hooks-intro.html) to manage state
- Using [Socket.io](https://socket.io/) to receive real-time message

## Getting Started

1. Clone this repo

2. Install dependencies

```bash
npm install
```

3. Try out

```bash
npm start
```

## Demo

[Live Demo](http://chat.yumingyuan.me)

## Preview

![image](https://github.com/ymyqwe/Websocket-React-Chatroom/raw/master/chat.gif)

## TODO
- [x] [Redux] like style state manage
- [ ] [Log4js](https://github.com/log4js-node/log4js-node)
- [ ] [React-router](https://github.com/ReactTraining/react-router)
- [ ] [Typescript](https://github.com/Microsoft/TypeScript)
- [ ] [Webpack-v4](https://github.com/webpack/webpack)
- [ ] Test

## Changelog
### [2.0.0] / 2018-12-03

- [React Hooks](https://reactjs.org/docs/hooks-intro.html)
- [Eslint](https://github.com/eslint/eslint)
- [Prettier](https://github.com/prettier/prettier)
- [Travis-CI](https://travis-ci.org/)

### [1.0.0] / 2017-02-15

- React state
- [Socket.io](https://socket.io/)
- [Webpack-v2](https://github.com/webpack/webpack)
- [Expressjs](https://github.com/expressjs/express)
{'fraction_non_alphanumeric': 0.20521307405875053, 'fraction_numerical': 0.014894497310715763, 'mean_word_length': 4.256521739130434, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 28, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1902358', 'n_tokens_mistral': 939, 'n_tokens_neox': 931, 'n_words': 128}