Assemble is a GPLv3, database-less, full featured html chat system meant to be quick to set up and easy to host. It supports auto-expiration of messages, autoparses links and images and more.
Features Implemented
Golang based Https and Socket server
User token generation/signup (pub/priv segments) and sign-in.
New user invite process
Ban/unban system
In-memory only storage system for chat rooms, history, etc
Manual message deletion
User-configurable per-message auto-delete time
Create/Join Chat Rooms
List public chat rooms
Phone friendly, Tablet friendly UI
Auto-process message content for links, image embeds, etc
User avatars
Image uploads in messages
Unread / new messages
Desktop notifications API
List of users in a room & online status
Invite to chat rooms
Ui dialogs for create-room/msg-duration
Private chat rooms with invite
Show chat room default message expirations on-join
Features Yet To Be Implemented
Moderation process (ie /kick for the creator)
Room avatars
Basic "emoticons"
User token 'sharing' to other user-owned devices once signed in
More...
Other Features to Consider
Direct Messaging
(Optional) Text message / push notification process
Foobar is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Foobar is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Assemble Web Chat. If not, see <http://www.gnu.org/licenses/>.
This is not meant to be clean from the get-go and I'm sure it'll need refactoring