As an exercise in playing with Javascript and Node, this is (the start of) an aesthetic clone of Slack, but in IRC client form.
This is based off Electron, using KnockoutJS.
Servers
Can configure server (server name, address, user name)Configured servers are savedCan connect to more than one server at a time- Currently selected server is displayed
- Servers with unread messages are highlighted
- MVP only needs one server
Channels
- Can show list of channels to join
Can join existing channelsCan create new channelsCan select a channelCan send/receive messages per channelCan visually see which channel I"m currently inChannels with unread messages in are highlightedCan see who is in the current channelGet notices when people join or leave a channelCan see the channel topicCan see the number of people in a channel- Can leave a channel
Users
- Can show a list of users to start a conversation with
- Can close/leave a conversation
Can send/receive DMsCan visually see if new DMs arrive
Slack-specific USPs:
Bundles messages by author (3 minute timeout, doesn't refresh)Message history (within IRC confines)- Reactions / custom emoji
Clickable links- Inline embed cards for links
- Message sharing / linking (with inline cards)
- User icons
Enhancements past minimum-viable:
- Can set the topic of a channel
- Can work with IRC permissions (set modes and so forth)
- Message pinning
(Instructions borrowed from Electron)
To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:
# Clone this repository
git clone https://github.com/pietersartain/coast
# Go into the repository
cd coast
# Install dependencies and run the app
npm install && npm start