smpallen99

smpallen99

Anyone interested in contributing to an open source Phoenix based team chat app, similar to Rocket.Chat? I have a pretty feature rich version thats already being used by our company. I’m going to release the source very soon. Would like help in all areas, especially some redesign of the front end.

I’ll post more details very soon. Let me know if you might be interested in contributing.

Showing Posts 1 to 10

OvermindDL1

OvermindDL1

Ooo, is it built on phoenix? That’d be cool. :slight_smile:

smpallen99

smpallen99 OP

@OvermindDL1 Yes!, Here are some additional details…

Architecture Notes

  • Elixir & Phoenix Backend
  • Light JS frontend
  • After initial page load, channels are used for UI rendering. HTML is rendered on the server and pushed to the client over channel
  • Originally build as a stand-a-lone single app.
  • In the process of refactoring it to be extensible through plugins
  • We will be using it for a client framework with initial support for the chat app and our commercial WebRTC soft phone (delivered as a plugin)

Current Features Implemented

  • Multiple channel types (public, private, direct messages)
  • Favourite channels
  • @mentions with audible and badge notifications
  • Presence with override
  • Message editing, pinning, starring, deleting
  • About 30 slash commands (create room, invite user, …)
  • Autolink and preview urls
  • Drag and drop file update with image and video preview
  • Emoji support with picker
  • Message reactions
  • Unread message handling
  • Customizable Role and Permission system
  • Some basic Bot experimental support
  • Code syntax highlighting
  • Profile editing and admin pages
  • Very configurable
  • and more …

Feature Roadmap

  • Peer to peer Video
  • Peer to peer Audio
  • Presence adapters for on-the-phone presence with Asterisk PBX
  • Mobile clients and Push notifications
  • Email and SMS notifications
  • OTR Conversations
  • Live chat feature
  • 3rd party integration (web hooks, Rest API)
    • BitBucket
    • Github
    • Jira
  • OAuth and LDAP
  • XMPP Integration
  • Internalization (Much of the UI uses gettext already)
  • UI theming
  • and more …
OvermindDL1

OvermindDL1

Huh, this would be nice to toss in to my existing system at work (if it is composable, I can PR if not) as a nice little bonus soon. :slight_smile:

We have both an onsite EMail (never touches the internet) and a hosted SMS Notification service at work, so I can test that the integrations work well. :slight_smile:

Yeah we use both of these at work so that would be nice. However I’ve built an entire login system that uses those as well as local Oracle database calls to perform logins so I will need some way to tie in to my system, I can try to PR things for that.

I’ve become exceptional the past few months at performing magic with CSS without needing javascript for a lot of things. ^.^

Would be nice to integrate with others as well, we have a PBX system here that, well, pre-dates Asterisk, but it does have API calls, so it would be nice to see if they’d let me call that here too. :slight_smile:

smpallen99

smpallen99 OP

I’m preparing for github right now. I’m thinking about a two project approach. First, I’ll put working source (before introducing plugin model rearchitecture) into a temporary project that people can try. I’ll also create the project with my new architecture (also renamed it) which will be the main project moving forward.

I’m also going to throw up a live demo. Perhaps we can use the live demo for design discussions :slight_smile:

OvermindDL1

OvermindDL1

Does it permanently store messages for unlimited lookback? I’d definitely need that (not allowed to host anything that does not permanently store, well, everything).

smpallen99

smpallen99 OP

Yes. All messages are persisted in the database. Right now, if you delete a message, it is removed from the DB. But I’m going to add a configuration that does not delete the message, but marks it deleted. Also need to deal with deleting channel, or user and what happens to those messages.

WolfDan

WolfDan

Looks and amazing project, I have a question, have you any plan about security? Or simply TLS encryption, also messages encripted etc…

OvermindDL1

OvermindDL1

That would be perfect! I rarely ever delete anything, ever, rather I have, well, you know the timestamps that phoenix adds by default? I have a removed_at timestamp as well that is nullable (and null by default) and I just check if it is null in my queries, it is ubiquitous through-out . If something has a primary key that may be created again then I just primary key it with the removed_at when null (so it does not exist for calculations if removed_at is not null).

smpallen99

smpallen99 OP

Right now, I think TLS is going to be enough for our customers. However, as an open source project, I’m expecting that we will be adding additional security measures like encrypting messages in the DB.

smpallen99

smpallen99 OP

Ok, I’ve pushed the source of the project (pre architecture change) to the UcxChat temporary repo. I’m working on hosting it now. Should have something soon.

Please be easy on me. There is some code in there I’m not proud of and needs to be refactored.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 92995 915
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
GES233
I’m posting this in response to Jose’s recent tweet (Cr. link) : People are sleeping on Elixir for a coding harness: Hot-code swappi...
New
_mfierro
Hello, I wrote Stop My Hand, a Scattergories-like web application using Phoenix/LiveView as my learning project for Elixir (after readin...
New
nseaSeb
AcmeScript — Writing JS hooks as if I were still using Elixir I’ve been having fun building a little something over the last few days: Ac...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews