PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED
Inboxes
Inboxes is a young messaging system for Rails app. It:
- provides 3 models for developers: Discussion, Message and Speaker
- read/unread discussions counter
- any user can be invited to discussion by the member of this discussion, so you can chat with unlimited number of users
- have configurable behavior via CanCan Ability
Getting Started
Prerequisites
Inboxes requires Rails 3.x and Devise for user identification (surely, messaging system is not possible without users). We recommend to use Inboxes with Faye, because it's really sexy with it.
Remember that unfortunately, Inboxes reserve 3 resources names: Discussion, Message and Speaker.
Since version 0.2.0, it is possible to add has_inboxes
option to any model. For instance, it can be Person
or Teacher
.
Installation
Make sure that Devise and CanCan are already installed and configured in your app!
- Add
gem "inboxes", "~> 0.2.0"
to theGemfile
and runbundle install
- Execute
rails generate inboxes:install
. This command will generate migration for messaging system. Don't forget to run migrations:rake db:migrate
- Add
has_inboxes
to your User model like here. - Add CanCan abilities to manage Inboxes models:
can [:index, :create], Discussion
can :read, Discussion do |discussion|
discussion.can_participate?(user)
end
- Now Inboxes are ready to use. Open
http://yoursite.dev/discussions
to see the list of discussions. You can start new one.
Default Inboxes views are ugly, so you can copy into your app and make anything with them: rails generate inboxes:views
If you have problems with installation, you can check code of demo app
Usage
I18n
By default, the gem provides localized phrases for Russian and English languages. You can easily override any of them. Here is list of all I18n phrases.
Integration with Faye
You can watch the demo of integration on YouTube
-
Add
gem "faye"
to your Gemfile and runbundle install
. Install Faye by the screencast -
Create
messaging.js
inapp/assets/javascripts/
with this line://= require inboxes/faye
-
Copy or replace 2 views from Inboxes example app to your application: app/views/inboxes/messages/_form and app/views/inboxes/messages/create
-
Add config parameters to your application config (last 2 are not necessary):
config.inboxes.faye_enabled = true
config.inboxes.faye_host = "inboxes-app.dev" # localhost by default
config.inboxes.faye_port = 9292 # 9292 by default
- Faye installation is finished. If you have any troubles, check the example app
While running Inboxes with Faye, don't forget to run Faye worker it: rackup faye.ru -s thin -E production
You can read more about that on it's official page.
Hints
- If you want to add breadcrumbs to Inboxes pages, we recommend you to use crummy gem. It allows to define breadcrumbs in views.
- Add Pusher capability
- Email notifications and the ability to answer received emails like in Github issues (#7)
Running the tests
Finalize RSpec tests (are located in rspec branch)
Contributing
Please read Code of Conduct and Contributing Guidelines for submitting pull requests to us.
Changelog
The changelog is here.
Authors
- Kir Shatrov (Evrone Company)
- Nikolay Seskin (Evrone Company)
- Andrey Ognevsky (Evrone Company)
- Alexander Brodyanoj
- Dmitriy Kiriyenko
- Alexey Poimtsev ([http://progress-engine.ru/](Progress Engine))
- isqad88
- Chris Sargeant
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License.