Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Bushido/kandan
Browse files Browse the repository at this point in the history
  • Loading branch information
kevzettler committed Apr 12, 2012
2 parents f53c6a8 + a73b605 commit a373e32
Show file tree
Hide file tree
Showing 8 changed files with 323 additions and 9 deletions.
8 changes: 5 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ source 'https://rubygems.org'

# Core gems
gem 'rails', '3.2.2'

# Database adapters
gem 'pg'
# Uncomment this is you want to use sqlite locally
# gem 'sqlite3-ruby', :require => 'sqlite3'

# Auth/Bushido gems
gem 'devise'
Expand Down Expand Up @@ -31,12 +35,10 @@ group :assets do
gem 'uglifier', '>= 1.0.3'
end

# gem 'tane', :path => "/remote/tane", :group => :development

# Test gems, obviously
# group :test do
# gem 'rspec-rails'
# gem 'shoulda-matchers'
# gem 'factory_girl_rails'
# gem 'jasmine', :git => "https://github.com/pivotal/jasmine-gem.git", :branch => "1.2.rc1", :group => [:development, :test]
# gem 'jasmine', :git => "https://github.com/pivotal/jasmine-gem.git", :branch => "1.2.rc1", :group => [:development, :test]
# end
185 changes: 185 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

69 changes: 66 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,69 @@
Kandan
=========
Kandan - Modern Open Source Chat
================================
The slickest chat app out there. Open-source and well-supported to boot.

A Bushido chat application
![](http://github.com/Bushido/kandan/raw/master/public/preview.png)

Standard Features
=================
These are features that work out of the box on any provider:

* Easy deploy to CloudFuji, CloudFoundry, Heroku, dotCloud, etc.
* Collaborative team chat
* Unlimited channels
* Embed formats for images and youtube videos with requests for others (twitter, facebook, g+, etc.)
* Synchronized sound player - play any audio-tag compatible url for the whole channel (Pending :P)
* /me command!
* Highly extensible plugin format

CloudFuji Extended Features
===========================
In addition to the standard features above, Kandan can take advantage of CloudFuji features when run on our cloud:

* One-click deploy
* Team-aware: Setup your team once, and have them in every CloudFuji app
* Event-aware: Build widgets that display build status, customer signups, website status, and much more

SHUT UP AND LET ME USE IT
=========================

## CloudFuji
If you're part of the CloudFuji Beta you should already have access to Kandan with all the enhanced features from the app store.

Just click launch on here https://bushi.do/apps/new?app=kandan; you and your team should be all setup.

## Cloud Foundry
Looking for community help here

## Heroku
You'll need to have the [heroku gem](https://github.com/heroku/heroku) installed and to have an existing heroku account. Assuming that, this should work reliably on Heroku:

git clone https://github.com/Bushido/kandan.git
cd kandan
heroku create --stack cedar
git push heroku master
heroku run rake db:migrate kandan:bootstrap && heroku open


Your app should be up and running now. The admin email by default is `admin@kandan.me` with password `kandanadmin`, or you can sign up as another user.

## dotCloud
Looking for community help here.

TODO
====
See the issue tracker

Get Involved!
=============
That's not a question, it's an order! Or more of a friendly offer, really. Kandan is a fully open-source app, so dive in and start adding features, fixing bugs (what bugs?), and cleaning up the code.

* Talk with us on the [mailing list])(https://groups.google.com/forum/?fromgroups#!forum/cloudfuji)
* GitHub [issues tracker](https://github.com/Bushido/Kandan/issues)
* Twitter [@cloudfuji](https://twitter.com/#!/cloudfuji)
* [New-wave open-source meetup](www.meetup.com/San-Francisco-New-Wave-Open-Source-Apps/) - we meetup once a month to share tips on how developers grow business around super high-quality open source software
* ... is there a fifth way? Telegram maybe?

LICENSE
=======
Kandan's code and assets are dual-licensed. Kanda is available generally under the AGPL, and also under a custom license via special agreement. See LICENSE for the AGPL terms, and contact us at [support@cloudfuji.com](mailto:support@cloudfuji.com) if you're interested in development of Kandan under a custom license.
4 changes: 2 additions & 2 deletions app/assets/javascripts/backbone/plugins/link_embed.js.coffee
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class Kandan.Plugins.LinkEmbed
@link_regex: /(http?:\S*)/g
@link_regex: /(http?\S*)/g

@init: ()->
Kandan.Modifiers.register @link_regex, (message, state)=>
message.content = message.content
.replace(@link_regex, '<a target="_blank" href="$1">$1</a>')
return Kandan.Helpers.Activities.build_from_message_template(message)
return Kandan.Helpers.Activities.build_from_message_template(message)
20 changes: 19 additions & 1 deletion app/assets/javascripts/backbone/views/channel_tabs.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,25 @@ class Kandan.Views.ChannelTabs extends Backbone.View
@

createChannel: (event)->
channelName = prompt("What's the channel name?", "New channel")
names = [
"A Dark Place",
"Discotheque",
"Dungeon",
"Garden",
"Lobby",
"Office",
"Palace",
"Park",
"Studio",
"Temple",
"War Room",
"Zork"]

# Inefficient random method but there are only a few names so it's
# not an issue
name = _.shuffle(names)[0]

channelName = prompt("What's the channel name?", name)
channelName = channelName.replace(/^\s+|\s+$/g, '')
if channelName
channel = new Kandan.Models.Channel({name: channelName})
Expand Down
4 changes: 4 additions & 0 deletions dotcloud.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
www:
type: ruby
db:
type: postgresql
42 changes: 42 additions & 0 deletions lib/tasks/kandan.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
namespace :kandan do
desc "Bootstrap an initial install of Kandan. Not strictly necessary, but faster."
task :bootstrap => :environment do
user = User.first

if user.nil?
puts "Creating default user..."
user = User.new
user.email = "admin@kandan.me"
user.first_name = "Admin"
user.last_name = "OfKandan"
user.password = "kandanadmin"
user.password_confirmation = "kandanadmin"
user.save!
end

channel = Channel.first

if channel.nil?
puts "Creating default channel..."
channel = Channel.create :name => "Castle"

["Welcome to Kandan, the slickest chat app out there. Brought to you by the good people of CloudFuji (http://cloudfuji.com) and friends",
"We think you'll really like Kandan, but if there's anything you would like to see, Kandan is fully open source, so you can dive into it or make suggestions on the mailing list.",
"To get started, you can embed images or youtube clips, use the /me command (/me is in proper love with Kandan, innit!), upload files, or of course, just chat with your teammates.",
"Just paste in an image url and type a subtitle http://kandan.me/images/kandan.png",
"http://www.youtube.com/watch?v=Jgpty017CIw Same with youtube videos",
"/me is in proper love with Kandan, innit!",
"If you're the type of person who enjoys hacking on projects, the source to Kandan is at https://github.com/bushido/kandan",
"Well, that's about it. If you have any questions, concerns, or ideas, just shoot us an email support@cloudfuji.com! Have fun!",
"Oh, sorry, one last thing - be sure to join the mailing list at https://groups.google.com/forum/?fromgroups#!forum/cloudfuji so you know there's a new release of Kandan!"
].each do |message|
a = Activity.new
a.content = message
a.channel_id = Channel.first
a.user_id = User.first
a.action = "message"
a.save!
end
end
end
end
Binary file added public/preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a373e32

Please sign in to comment.