hitobito
About this project
Hitobito is an open source web application to manage organisation and communities with complex group hierarchies with members, events, courses, mailings, communication and a lot more.
User Guide
A generic user guide in German is available.
Development
Check out our development kit
More detailed development documentation can be found in doc/developer.
This is where you also find some Deployment Instructions.
More information about interfaces, api, oauth and oidc is also avaible.
Architecture
The architecture documentation in German can be found in doc/architecture.
Two topics shall be mentioned here explicitly:
Group Hierarchy
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 Group
.
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 mai