{"id":16658025,"url":"https://github.com/smpallen99/ucx_chat","last_synced_at":"2025-03-21T16:32:21.177Z","repository":{"id":141312294,"uuid":"90782234","full_name":"smpallen99/ucx_chat","owner":"smpallen99","description":"UcxUcc is a simple but powerful team collaboration suite of applications designed to improve communications, information sharing and productivity for the businesses small and large.","archived":false,"fork":false,"pushed_at":"2017-05-26T14:29:07.000Z","size":4240,"stargazers_count":54,"open_issues_count":5,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-18T03:13:03.154Z","etag":null,"topics":["chat","chat-application","chatbot","elixir","phoenix-framework"],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smpallen99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-09T19:05:28.000Z","updated_at":"2023-08-23T03:19:54.000Z","dependencies_parsed_at":"2024-06-14T17:04:43.678Z","dependency_job_id":null,"html_url":"https://github.com/smpallen99/ucx_chat","commit_stats":{"total_commits":260,"total_committers":2,"mean_commits":130.0,"dds":0.01538461538461533,"last_synced_commit":"0dd98d0eb5e0537521844520ea2ba63a08fd3f19"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smpallen99%2Fucx_chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smpallen99%2Fucx_chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smpallen99%2Fucx_chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smpallen99%2Fucx_chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smpallen99","download_url":"https://codeload.github.com/smpallen99/ucx_chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244829574,"owners_count":20517331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","chat-application","chatbot","elixir","phoenix-framework"],"created_at":"2024-10-12T10:02:51.484Z","updated_at":"2025-03-21T16:32:21.162Z","avatar_url":"https://github.com/smpallen99.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UcxUcc - A Team Collaboration Suite\n\n\u003e \u003ccenter\u003e\u003cb\u003eNOTE\u003c/b\u003e\u003c/center\u003e\n\u003e\n\u003e This is a pre-release verson of this project. The project is being refactored and renamed. Once we get the new project working with feature parity, this project will be removed. \n\u003e\n\u003e Your welcome to submit issues against this project until the new project is posted. However, please don't submit PRs. Development on this project has ended.\n\nUcxUcc is a simple but powerful team collaboration suite of applications designed to improve communications, information sharing and productivity for the businesses small and large.\n\nCheckout the [Live Demo](http://chat.spallen.com). Click on the [Register a new account](http://chat.spallen.com/registrations/new) link on the sign in page to create an account.\n\n![Screen Shoot](priv/images/screen_shot_1.png)\n\nThis innovative suite of tools enhances business productivity with:\n* An enterprise class telephone that is available anywhere your employees have an Internet connection\n* Share important messaging conversations that would normally be hidden in point to point conversations with tools like SMS and Skype.\n* Choose the most effect method of communications a glance at their on-line or on the phone presence.\n* Upload, search and download documents, images, videos, and audio files in chat rooms and share with the rest of your team.\n* Start a private conversations with direct messages\n* Pin important messages for quick access for everyone\n* Star important messages for your quick reference\n* Track popularity of messages with message reactions and see who reacted\n* Never miss an important message with an advanced notification framework that provides audible, desktop, SMS, and email notifications. Control the noise by customizing the notifications on a room by room basis.\n\nAnd the bast part is that the data is safe with encrypted connections between your browser and the server. All the data is stored on your own server, not on someone else's cloud.\n\n\u003cimg src=\"priv/images/screen_shot_2.png\" height=\"400px\"\u003e\n\n## Available Features\n\n* Multiple channel types (public, private, direct messgaes)\n* Favorite channels\n* @mentions with audible and badge notifications\n* Presence with override\n* Message editing, pinning, starring, deleting\n* About 30 slash commands (create room, invite user, ...)\n* Autolink and preview urls\n* Drag and drop file update with image and video preview\n* Emoji support with picker\n* Message reactions\n* Unread message handling\n* Customizable Role and Permission system\n* Some basic Bot experimental support\n* Code syntax highlighting\n* Profile editing and admin pages\n* Very configurable\n* and more ...\n## Feature Roadmap\n\n* Replace the Rock.Chat UI with a new original design\n* Peer to peer Video\n* Peer to peer Audio\n* Presence adapters for on-the-phone presence with Asterisk PBX\n* Mobile clients and Push notifications\n* Email and SMS notifications\n* OTR Conversations\n* Live chat feature\n* 3rd party integration (web hooks, Rest API)\n  * BitBucket\n  * Github\n  * Jira\n  * ...\n* OAuth and LDAP\n* XMPP Integration\n* Internatization (Much of the UI uses gettext already)\n* UI theming\n* Documenation for other databases and flavours of *nix\n* and more ...\n\n\u003cimg src=\"priv/images/screen_shot_3.png\" height=\"400px\"\u003e\n\n## Archtectural Notes\n\n* Elixir \u0026 Phoenix Backend\n* Light JS frontend (jQuery only)\n* After initial page load, channels are used for UI rendering. HTML is renedered on the server and pushed to the client over channel\n* Originally build as a stand-a-lone single app.\n* In the process of refactoring it to be extensible through plugins\n* We will be using it for a client framework with initial support for the chat app and our commerical WebRTC softphone (delerved as a plugin)\n* This is a work in progress and requires a lot of clean up before production release\n* I've experiemented with serveral diffent approaches of channel -\u003e JS rendering, channel message routing, etc. I still need to pick an approach and refactor the other areas for consistency. \n\n\u003cimg src=\"priv/images/screen_shot_4.png\" height=\"400px\"\u003e\n\n## Other Notes\n### Backup Database\n\n```bash\nmysqldump --add-drop-database --add-drop-table -u user --password=secret --databases ucx_chat_prod \u003e ucx_chat.sql\n```\n\n### Restore Database\n\n```bash\nmysql -u user -psecret \u003c ucx_chat.sql\n```\n\n### Install Dependencies\n\n#### ffmpeg\n\n```bash\nrpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro\nrpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm\nyum install ffmpeg ffmpeg-devel -y\n```\n#### ImageMagick\n\n```bash\nyum install -y ImageMagick ImageMagick-devel\n```\n\n### Running Migrations on Dev\n\n```\niex\u003e Ecto.Migrator.run UcxChat.Repo, Path.join([Application.app_dir(:ucx_chat) | ~w(priv repo migrations)]), :up, all: true\n```\n\n### Updating Config When there are new entires\n\n```elixir\nalias UcxChat.{Repo, Config.FileUpload, Config}\nconfig = Repo.all(Config) |\u003e hd\nConfig.changeset(config, %{file_upload: %FileUpload{} |\u003e Map.from_struct}) |\u003e Repo.update\n```\n## Contributing\n\nWe appreciate any contribution to UcxChat. Check our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](CONTRIBUTING.md) guides for more information. We usually keep a list of features and bugs [in the issue tracker][1].\n\n  [1]: https://github.com/smpallen99/ucx_chat/issues\n## Acknowlegemets\n\nThe UI for this version of the project is taken (with some modifications) directly from [Rocket.Chat](https://rocket.chat/).\n## License\n\n`UcxChat` is Copyright (c) 2017 E-MetroTel\n\nThe source code is released under the MIT License.\n\nCheck [LICENSE](LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmpallen99%2Fucx_chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmpallen99%2Fucx_chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmpallen99%2Fucx_chat/lists"}