aboutsummaryrefslogtreecommitdiff
blob: e8b79e573d4dbd7a87741667b2954f9cb436105d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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