smpallen99

smpallen99

Interested in contributing to Messaging App?

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.

First 10 of 48 Posts Switch mode

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?

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 91561 914
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
AstonJ
Just a general thread to post chat/news/info relating to AI/ML stuff that may be relevant for Nx now or in the future. Got anything to sh...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
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
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
bjorng
We want to introduce a new native datatype to Erlang: native records. Although replacing all tuple records with native records is not our...
New

We're in Beta

About us Mission Statement