# chatjs
**Repository Path**: imcheese/chatjs
## Basic Information
- **Project Name**: chatjs
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-06-12
- **Last Updated**: 2024-06-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ChatJS
A realtime platform and UI framework independent JavaScript chat engine.
There are lots and lots of realtime chat solutions. However, all these solutions have some sort of tie-in to a realtime platform (e.g. Socket.IO), a front-end framework (e.g. jQuery) or both. The purpose of ChatJS is to offer a core chat engine that provides all the functionality needed for chat and extension points to plug in any realtime framework and any UI framework.
## Example
```html
```
## Realtime Platform Integration
*This section is a work in progress*
Realtime frameworks are plugged in by fulfilling a `PlatformAdapter` contract and by interacting with a set of core objects.
The core chat objects include:
* `ChatRoom`
* `ChatUser`
* `ChatMessage`
### Existing Realtime Platform Integrations
You can find existing integrations in the `src/platforms` directory.
*Presently there is only a [Pusher](http://pusher.com) adapter and associated example.*
## UI Framework Integration
*This section is a work in progress*
As with the realtime framework the UI framework should interact with a set of core objects and receive information from those core object when building an manipulating the UI.
### Existing UI Framework Integration
UI framework integration examples should be in `src/ui-frameworks`.
*There are presently no UI framework examples*
## Todo
### Planned
* User join and leave
* Support for multiple chat rooms
* Get list of rooms from the chat engine
* Get list of messages from a chat room
* Set user status e.g. away, busy, online, offline
* Add JSDoc for core object APIs
### Under Consideration
* Private message another user