Summer of Code

phpGroupWare has appied to become a mentoring organisation for Google's Summer of Code program. We had 1 student participate last year through the GNU Project. Last year Johan implemented a PHP native SyncML engine for phpGroupWare with support for the notes and todo modules.

For more general information about Summer of Code, please visit Google's site.

Below are some of our ideas, please feel to suggest others to us via our developers forum

Ideas

New Template Engine

Background: The project is currently discussing the need for a new template engine. The current phplib template is showing its age and there are performance issues with XSLT.

Proposal: The new template engine should be a modern PHP5 only object orientated widget based implementation. The new engine should allow one definition to be used to output plain HTML and Ajax enhanced HTML, while allowing future expansion to include technologies such as XUL.

References

Improvements to Database Abstraction

Background: The current database abstraction layer used by phpGroupWare simply wraps ADOdb, but doesn't provide much value add.

Proposal Create a new database abstraction layer which is backwards compatiable and will work with all currently supported database engines (MySQL, pgsql, MSSQL). The new layer should also allow easy creation of secure queries with escaping/validation performed easily for the user. Switching to PDO can also be considered

References

Workflow Engine in the API

Background: The new document management module (ged) has a workflow engine in it. Workflow is important in groupware.

Proposal: The current ged workflow engine should be expanded and moved into the API. This would allow all modules to hook into the workflow system and provide proper process handling.

References

Rework Setup

Background: The current setup process is dated and clunky, phpGroupWare really needs something more user (and developer) friendly.

Proposal: The new setup process should minimise the number of clicks and key strokes needed for a user to get a basic phpGroupWare up and running, while allowing more experienced users to enable the more advanced options. The initial setup could use a wizard process.

References

Adding SyncML Support to other Modules

Background: Last year as a Summer of Code project, Johan implemented a syncml interface for phpGroupWare. Some modules still lack SyncML support.

Proposal: Implement SyncML support for the calendar and addressbook modules. A student may also investigate if other modules are suitable for adding SyncML support.

References

Improve Usability of Sitemgr CMS Module

Background: phpGroupWare's CMS module "sitemgr" isn't very user friendly. Although the system is quite powerful, it scares most users with its complexity.

Proposal: Make sitemgr more user friendly. An improved layout and some process improvements would go a long way to making this module a joy to use. It doesn't need to be as fully featured as Drupal or Joomla, it just has to be easier to use.

References

New wiki

Background: The current wiki module is umaintained within the phpGroupWare and almost abandoned by upstream. The current wiki is quite limited. A wiki is a very useful tool in a groupware suite.

Proposal: A new wiki for phpGroupWare should implement ACLs and categories properly and be tightly integrated with phpGroupWare. Markdown provides a great library for handling wiki markup easily.

References

Improved Email Module

Background: phpGroupWare currently has 2 email modules, both of which have limitations. We really only need one complete email module.

Proposal: A student could work with the project to identify the best of both modules and merge them into 1 complete email module. The new module would support multiple POP3 and IMAP accounts and be user friendly.

References