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.

Most Liked

smpallen99

smpallen99

@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 …
smpallen99

smpallen99

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.

peerreynders

peerreynders

In terms of paying the rent that may have been a wise move - however I continually wonder about the wisdom(/benefits) of using something like Angular in the first place. And while Typescript is great for supplying type information to IDEs for coding assistance and while I like static typing support there is this:

Non-goal: Apply a sound or “provably correct” type system. Instead, strike a balance between correctness and productivity.

Sound’s to me that while being “statically typed”, TypeScript is choosing to be “weakly typed” - i.e. the primary motivation behind TypeScript is to bring in the OO baggage that many Java/C# developer’s are already familiar with.

I spent a significant amount of effort to “skill-up” in Angular 1.x, getting to the point where I started to see the wisdom in “How I’ve Improved My Angular Apps by Banning ng-controller” (Tero Parviainen’s “Build Your Own AngularJS” is a great piece of work btw.). Now Angular 2 fixes a lot of issues but by being an “opinionated framework” it’s “view of the world” is the one-and-only “correct view of the world” and ultimately it still feels way too heavy-weight and too OO (in a Java EE type of way).

In my opinion Angular’s adoption was primarily driven by corporations preferring open source backed by “big names” (i.e. Google - even though this also implied that Google is motivated by it’s own agenda and not really motivated to listen to anybody else) and backend OO developer’s wanting to do front-end development while largely staying away from the browser’s DOM.

The other issue with a heavy-weight framework is the temptation to move actual business-domain-logic into the front-end which architecturally speaking is a “bad idea” (a disconnected, browser-based app is a different kettle of fish). While a UI should remain responsive, it should focus on performing “UI-logic”, not business logic.

Working through jQuery, Angular 1.x, Node.js, React.js, and Elm I’ve become more reluctant to invest in frameworks and favour highly focused, small libraries (which compose well with other highly, focused, small libraries).

So it makes me wonder if @OvermindDL1 is onto something with a “plain JavaScript + Polymer (more generally, web components)” approach; maybe that should become the contemporary equivalent of adopting jQuery in 2006-2008 (unless you are adopting a “compile to JavaScript” language that has more going for it than TypeScript).

Where Next?

Popular in Discussions Top

Donovan
Hello everyone, I’m so glad to have discovered this awesome community. Thanks for creating it! This is my second post, and apologies for...
New
pillaiindu
In django there is a cache framework backed by memcached. Rails also puts a lot of emphasis on caching, and even the idea of russian-doll...
New
mbenatti
Following https://github.com/tbrand/which_is_the_fastest |> https://raw.githubusercontent.com/tbrand/which_is_the_fastest/master/imgs...
New
PragTob
Hey everyone, this has been brewing in my head some time and it came up again while reading Adopting Elixir. GenServers, supervisors et...
New
rower687
Hi all, I’ve been reading a lot about the “let it crash” term and how supervising processes and the whole messaging passing make an elixi...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
kostonstyle
Hi all How can I compare haskell with elixir, included tools, webservices, ect. Thanks
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
New

Other popular topics Top

Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

We're in Beta

About us Mission Statement