Welcome to hitobito
hitobito is an open source web application to manage complex group hierarchies with members, events and a lot more.
Hitobito is a Ruby on Rails application that runs on Ruby >= 2.2 and Rails 4. It might run with minor tweaks on older Rubies, but is not tested against those versions.
To get going, after you got a copy of hitobito and at least one wagon with an organization structure setup as described below, issue the following commands in the main directory:
sudo yum install sqlite memcached sphinxsearch imagemagick # install system dependencies bundle # install gem dependencies rake db:create # create a development database (Sqlite3) rake db:setup:all # run migrations and load seed data of the app and all wagons rails server # start the rails server
To start the search server, run background jobs or the development mail catcher, run:
rake ts:start rake jobs:work mailcatcher -v -f
The architecture documentation in German can be found in doc/architecture.
Two topics shall be mentioned here explicitly:
hitobito provides a powerful meta-model to describe group structures. Groups are always of a specific type and are arranged in a tree. Each group type may have several different role types.
This core part of hitobito does not provide any specific group or role types. They have to be defined in a separate plugin, specific to your organization structure.
An example group type definition might look like this:
class Group::Layer < Group self.layer = true children Group::Layer, Group::Board, Group::Basic class Role < Leader self.permissions = [:layer_full, :contact_data] end class Member < Role self.permissions = [:group_read] end roles Leader, Member end
A group type always inherits from the class
It may be a layer, which defines a set of groups that are in a common permission range.
All subgroups of a layer group belong to this range unless a subgroup is a layer itself.
Then all possible child types of the group are listed. When creating subgroups, only these types will be allowed. As shown, types may be organized recursively.
For the ease of maintainability, role types may be defined directly in the group type. Each role type has a set of permissions. They are general indications of what and where. All specific abilities of a user are derived from the role permissions she has in her different groups.
hitobito is built on the plugin framework Wagons. With Wagons, arbitrary features and extensions may be created for hitobito. As mentioned above, as there are no group types coming from hitobito itself, at least one wagon is required to define group types in order to use hitobito.
hitobito is released under the GNU Affero General Public License. Copyright 2012-2015 by Jungwacht Blauring Schweiz, Puzzle ITC GmbH, Pfadibewegung Schweiz, CEVI Regionalverband ZH-SH-GL, Insieme Schweiz. See COPYING for more details.
hitobito was developed by Puzzle ITC GmbH.
The hitobito logo is a registered trademark of hitobito LTD, Switzerland. Please contact KunoKunz if you want to use the logo and be part of our community.