aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Filip Ignacy Bartosik <jbartosik@gmail.com>2011-08-03 11:01:06 +0200
committerJoachim Filip Ignacy Bartosik <jbartosik@gmail.com>2011-08-03 17:29:37 +0200
commit030bf52531710c1e70401fbd1328a2df30a07686 (patch)
treebf49b978f229d550b9daedb587365a1ae2d1d9a7
parentCustom doodle-like feature (diff)
downloadcouncil-webapp-030bf52531710c1e70401fbd1328a2df30a07686.tar.gz
council-webapp-030bf52531710c1e70401fbd1328a2df30a07686.tar.bz2
council-webapp-030bf52531710c1e70401fbd1328a2df30a07686.zip
README for the applicationHEADmaster
-rw-r--r--README.md164
-rw-r--r--site/doc/sample_configs/deploy.rb18
-rw-r--r--site/doc/sample_configs/sample_apache_vhost.conf18
3 files changed, 200 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e8b79e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,164 @@
+# About the project
+This project has three parts:
+
+ * Website written in Ruby (using Rails and Hobo). This site helps to prepare
+ meetings, collect ideas and feedback from community.
+ * Modified MeetBot (MeetBot is supybot plugin). This plugin handles meetings.
+ You can use
+
+ #commands
+
+ to list available commands and
+
+ #command <command>
+
+ to view help for each command.
+
+ * Reminder plugin. This supybot plugin pulls reminder information from
+ the website and sends messages to all council members to remind them about
+ upcoming meeting.
+
+## Copyright
+
+### Website
+Website is distributed under terms of AGPL3 or later.
+
+### Modified MeetBot plugin
+The plugin is distributed on the same terms as original MeetBot.
+
+### Reminder plugin
+Reminder plugin is distributed under BSD-style license (you can do with it
+anything you want but you must use the same license and don't use my name for
+advertising).
+
+# Usage
+What you can do depends on your role. You can be guest or a registered user.
+Once you register administrators can give you administrator and council member
+roles.
+
+### Guest
+As guest you can only view:
+
+ * Current and past agendas
+ * Items for agendas
+ * Voting results
+ * Meeting summaries approved by council
+ * Council attendance
+
+### Registered user
+Once you register you can do everything a guest can and:
+
+ * Suggest items for council
+ * Participate in community vote
+
+### Council member
+When administrator will give you a council member role you will be able to do
+everything a regular registered user can and:
+
+ * Change agendas states (available states are open, submissions closed, meeting\_ongoing, old)
+ * Add suggested items to agenda
+ * Reject suggested items
+ * Vote during meetings (IRC bot handles voting)
+
+### Administrator
+As administrator you can manage users - give them new roles and take away old roles.
+
+## Configuration
+The application users following (untracked) configuration files:
+
+ * site/config/bot.yml
+ * site/config/council\_term.yml
+ * site/config/database.yml
+ * site/config/reminders.yml
+
+database.yml is regular rails database configuration file. Samples for other
+configuration files are available in
+
+ site/doc/sample_configs/
+
+directory.
+
+# Installation
+## Manual
+1. Install bundler, rails, git and database you want to use.
+2. Obtain sources
+
+ git clone git://github.com/ahenobarbi/Gentoo-Council.git
+
+3. Go to directory with webapp (site/ subdirectory inside directory created in
+ the previous step) sources and install required gems
+
+ bundle install
+
+4. Configure application
+5. Start server by running the following command
+
+ bundle exec rails server
+
+## With passenger
+1. Clone git repository
+2. Configure install and configure MySQL, Apache, passenger (sample vhost config
+in site/doc/sample\_configs/ ). Remember that the web app is in
+
+ $(repo\_directory)/site
+
+3. In
+
+ $(repo\_directory)/site
+
+run
+
+ bundle install
+ bundle exec rails g hobo:rapid
+ touch tmp/restart.txt
+
+4. Check if everything works fine.
+
+If you want to use capistrano I can write instructions for that.
+
+## Use capistrano
+1. Install capistrano and git on your machine
+2. Clone repository
+2. Run
+
+ cd /path/to/your/clone/site && capify .
+
+3. Customise
+
+ config/deploy.rb
+
+see site/doc/sample\_configs/deploy.rb for reference.
+
+use attached file as base.
+
+4. Install git and bundler on host on which you will deploy
+5. Configure passenger on target host
+6. Run (on you development machine)
+
+ cap deploy:setup
+ cap deploy
+
+7. (reason why you might like to go through previous steps) When you want to
+update application just run
+
+ cap deploy
+
+#How to use supybot plugins
+1. Install supybot
+2. Get those sources
+3. Copy or link bot/MeetBot and bot/Reminder directories to supybot plugins
+ directory. On my system it's
+
+ /usr/lib64/python2.7/site-packages/supybot/plugins/
+
+4. Copy or link bot/ircmeeting to some directory you have in your PYTHONPATH
+ Or to directory fromwhich you will run supypot.
+5. Create directory for supybot config and logs.
+6. In this directory run
+
+ supybot-wizard
+
+ it will create *.conf file.
+7. Run
+
+ supybot file_created_in_previous steps
diff --git a/site/doc/sample_configs/deploy.rb b/site/doc/sample_configs/deploy.rb
new file mode 100644
index 0000000..8d0543d
--- /dev/null
+++ b/site/doc/sample_configs/deploy.rb
@@ -0,0 +1,18 @@
+# Do not change those
+require 'bundler/capistrano'
+
+set :repository, "git://git.overlays.gentoo.org/proj/council-webapp.git"
+set :scm, "git"
+set :branch, "master"
+set :deploy_subdir, "site"
+
+# Capistrano will ssh to those hosts
+role :web, "localhost"
+role :app, "localhost"
+role :db, "localhost"
+
+# and will use this user name
+set :user, 'joszi'
+
+#and will put site in subdirectory of
+set :deploy_to, "/home/joszi/app.git/"
diff --git a/site/doc/sample_configs/sample_apache_vhost.conf b/site/doc/sample_configs/sample_apache_vhost.conf
new file mode 100644
index 0000000..fe1f6ad
--- /dev/null
+++ b/site/doc/sample_configs/sample_apache_vhost.conf
@@ -0,0 +1,18 @@
+<IfDefine DEFAULT_VHOST>
+Listen 80
+
+NameVirtualHost *:80
+<VirtualHost *:80>
+ ServerName mydomain.com
+ DocumentRoot /var/www/localhost/rails/council/site/public
+ RailsBaseURI /var/www/localhost/rails/council/site
+ RailsMaxPoolSize 1
+ RailsPoolIdleTime 3600
+ RailsEnv 'production'
+ <Directory /var/www/localhost/rails/council/site/public>
+ Options FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+ </Directory>
+</VirtualHost>