For (web/ICT) designers
WaihonaPedia is a wiki-based platform where 'normal' people should be able to maintain personal and community information base (the encyclopedia). But this requires user-friendliness.
Expected support
From our partners we expect the following types of support (not all at the same time)
- Web design, ability to make web-pages look good, behave user friendly
- Webdesign, create a design that can be implemented
- Implement the above designs
- Forms design, ability to create web-forms to allow people to capture data in the XWiki database
XWiki
The platform WaihonaPedia is based on is XWiki. XWiki is developed by a open-source community. If the partner is active in that community (e.g. has experience to develop in that community on the XWiki) it is helpful especially in form-designs (application development).
We realize that these partners are scarce and mostly we work with partners that do not have that experience.
This guide aims to help the partner with XWiki experience to startup.
Applications
WaihonaPedia heavily relies on the XWiki capability to develop Applications. So we use the 'XWiki' definition for an application (this might be debatable, but that discussion is elswhere).
A application is web-based tool to maintain data on the XWiki platform. It consists of Data-Classes, Code stored in XWiki pages within a code-macro (velocity-macro, groovy-macro, html-macro) to maintain that data (create, read, edit and delete = CRUD), stylesheets (Less or CSS3) also stored in XWiki pages, in a special object in that page and Javascript for better user experience.
A XWiki application will typically result in Web-pages that can be accessed in a number of action-modes that will be related to access rights of the page-visitor: VIEW (read), EDIT (create and modify), ADMIN.
- Applications developped in WaihonaPedia:
- Dashboard
- Ask the Expert (privat)
- Ask the Expert (public)
- Questionnaires
- Scorecards
- Themeroom
- Invite people
- Approve new participants
- Welcome
- Profile
- ...
Data model
Each application requires a connection to one or more of the WaihonaPedia Data-classes, see our datamodel.
Applications can use classes in a few way;
- Primary class that will be used for data-entry
- Child classes; only in so called parent-child forms. Linked to primary class by a key attribute
- Referential classes for lookup lists
Application development guide
We want to be 'maintainable'. This means we will put constraints on the number of ways we do something by using patterns for development. We develop something based on 1 pattern even if there could be slightly smarter ways of achieving some tasks. But by the pattern the code becomes repeating tricks. Our goal is to use as few as possible Methods from the XWiki API guide
We choose to use long-variables names written in camelCase to improve readability of the code; the code should be self-documenting itself as much as possible without using to much comment blocks in the code
We have written a few patterns (work in progress)