Chatty is a single-page instant messaging application built with ReactJS and websockets.
- Users may enter a username (or remain anonymous) and send messages, which are immediately displayed to all users currently in the chatroom
- Notification messages are sent to each user when a new user joins the chatroom, changes their username, or leaves the chatroom
- Header displays the number of online users; on hover, a dropdown appears which shows the usernames of each of the online users
- Users may send image URL's ending in gif, jpg, jpeg, tiff, or png, and the image is displayed in the messages
- Users may send a URL, which is displayed in the messages as a link which opens in a new tab when clicked
- Users are randomly assigned a colour upon entering the chat room
- Users' own messages are styled differently than messages sent by other users, to help with readability
- Auto-scrolls to keep the most recently sent message in view
- node: >=6.0.0
- babel-core: 6.23.1
- babel-loader: 6.3.1
- babel-preset-es2015: 6.22.0
- babel-preset-react: 6.23.0
- babel-preset-stage-0: 6.22.0
- css-loader: 0.26.1
- eslint: 3.15.0
- eslint-plugin-react: 6.9.0
- express: 4.16.4
- node-sass: 4.5.0
- react: 15.4.2
- react-dom: 15.4.2
- sass-loader: 6.0.0
- sockjs-client: ^1.1.2
- style-loader: 0.13.1
- uuid: ^3.3.2
- webpack: 2.2.1
- webpack-dev-server: 2.3.0
- ws: 6.1.0
- Clone this repository.
- Open in the 'app' directory using
cd appand install dependencies using thenpm installcommand. - Start the web server using the
npm startcommand. The app will be served at http://localhost:3000/. - Open the 'chatty_server' directory using
cd ../chatty_serverand install dependencies using thenpm installcommand. - Start the websocket server using the
npm startcommand. - Go to http://localhost:3000/ in your browser.
