PlanYourPlace Class Structure

From stgo
Revision as of 13:00, 5 September 2014 by StefanS (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

>> return to PlanYourPlace


For the project it is necessary to represent entities of the planning reality as plugins in the social network Elgg. Important classes are:

  • pypProject - a class the represents a development project or engagement project.
  • pypCommunity - a class that represents a community, e.g. a neighborhood within the City of Calgary. On registration a user needs to chose a community and hence will always be assigned to it. This is necessary to evaluate reading and writing rights.

The pypProject is an extension of the Group plugin. The pypCommunity acts as a container for pypProject instances and has membership functionality which provides users to join/leave a community.

A pypProject can affect several pypCommunities (e.g. construction of the Calgary middle ring), and a pypCommunity can have several pypProjects. As said earlier, platform users need to assign themselves to a community. They will automatically become members of a project if a community has been defined to participate in a project.

Further important classes are:

  • pypNews - a class that is used for messages to project or community members. The pypNews class will be similar to Elggs "Blog" class/plugin.
  • pypAnnotation - a class that allows to attach comments to pypNews objects or Elgg files, images, or even other comments.
  • pypMapComment - a class that is used for placing comments on a map. Ideally it would be a subclass of the pypNews object, however it can also be a stand alone class.

apart from that we also need to consider different classes of users in Elgg:

  • general users - readers and contributors of comments
  • editors - people who can publish project and community news
  • admins - people who can create new pypProjects and can manage the users for a project.
  • system admin : elgg admins

a class diagram with the properties for each class can be found on LucidChart, see: Elgg plugins (class structure) (login required)