You may have heard of Google's Summer of Code project. This saw Google sponsor a number of programmers to author code for various opensource projects. Unfortunately we became fully aware of this too late in the day. However we decided to do our version. Let me say straight away that we cannot offer money as the Google programme did!
So, what is this about, how will it work, etc. Let me explain and please do make sure you read and understand the following before contemplating becoming involved.
There are various "mini-projects" phpBB has had an intention to complete for inclusion in phpBB3. As you know things are slow at present and thus these projects are generally on the back back burner. It is these projects for which we'll be seeking contributions (and these projects only!). They are:
- Unified/centralised event system - A trigger based system whereby admin definable "events" are fired upon specific conditions. This will allow for a good system for adding/removing users to groups upon certain post counts, changing/allowing/disallowing avatars, sigs, etc. etc. Such a system must overridingly be sensitive to performance (this could easily eat processor time if done badly) while being comprehensive in scope and capability. Good use of the caching and cron systems should help here. A well defined/designed admin interface is also essential which re-uses code wherever applicable to reduce complexity. Let me say this is a tough project to get right and we're obviously going to be quite tough when it comes to implementation.
- Syndication system - One of the most popular requests for phpBB is a method to syndicate information. This project is intended to implement such a system. We're looking for full (and valid!) support of RSS/RSS2/ATOM. It needs to be able to syndicate various feeds, e.g. given forum/s perhaps even certain topics, limit access by IP, etc. This project should be relatively straightforward.
- Canned moderator responses - In phpBB3 there exists an ability to save draft messages. This allows you to save a message for later completion. We are looking to extend this functionality to include canned responses for moderators. This would allow permitted moderators to write and save messages via the MCP (Moderator Control Panel) which other moderators could then use to send to members of the community. It should be written as an MCP module (which should strictly adhere to the current module implemention to enable easy transferal to the new module setup in future). This is again a relatively straightforward project.
- Authentication system - At present phpBB3 uses a simple but reasonably capable authentication system (the source used to verify your username/password, not permissions which is entirely different). However it's not good enough We are looking to change this system to a proper "module system". There are difficulties involved here in that we do and wish to continue to support alternative authentication schemes (other than the user/password stored in the users table) such as LDAP, Apache auth, other CMS/board/etc (Gallery, Wordpress, etc.). systems. This project should also examine and where possible introduce or propose the introduction of changes to the UCP system to allow "two-way" communication between the UCP and auth module. For example changing details in the UCP should offer (via the auth module) a way of altering those details in the source authentication system (if you get my drift!). This later area may require significant thought in terms of altering what already exists in the UCP without requiring a complete rewrite. Also I'd suggest you be or find someone with a good level of LDAP expertise.
- Karma - This is a bane for us Firstly what is Karma? Well karma for this implementation is a method of rewarding helpful members of the community. Such a system could allow for automatic (perhaps via the event system above) group addition for useful members, ability to use avatars/sigs/etc., ability to post in certain fora, etc. Some have suggested an ability to tag posts ala Slashdot may be useful too (in addition/instead of this pure "numerial system"). There is an ongoing topic on this to be found here, you may want to look at modularising the system too to allow multiple algorithms to suit the many varied uses to which phpBB is put. This is a complex project that will require significant thought in implementation. Like events performance is king here.
- Backup/restore with modular file transfer system - The current backup system deployed in phpBB3 is a step beyond what phpBB2 offered. However it would be nice to take it further still with support for all databases phpBB itself supports, further options ala phpMyAdmin (but without resorting to canabalising phpMyAdmin!). It would also be nice to allow users to upload/download backups via methods other than http. For example, ftp, scp, etc. Going further still a modularised system for file upload/download could be examined and utilised elsewhere within phpBB. Of prime concern here is security and compatability.
- WYSIWYG editor - We are often asked for this funtionality but we've shied away. There are several issues with a WYSIWYG editor the two greatest of which are; wide cross-browser support (not just the top two but all the majors) and parsing of the submitted post text. The former is a very important issue which is now being addressed by various implementations but still problems remain. The second issue is important in terms of XSS and even just basic implementation. You'd be expected to find solutions to both problems here and ones in which performance (server and client side) doesn't suffer. Simply supplying one of the existing opensource standalone WYSIWYG solutions won't be enough to fulfill this mini-project!
- Security and performance test suite - Although we do code with performance and security in mind (no matter what some may say!) it would be nice to have a suite of scripts which could test phpBB3 in an automated manner. This project is entirely external to phpBB3 itself (although coding standards must still be followed) and is intended purely for internal useage. Therefore it has the widest scope in terms of implementation. Personally I suggest only those familiar with security and/or performance testing look at this project.
Stop reading now if you've just started with PHP, SQL, phpBB, etc. because you simply will not have the skills to complete these projects (no offence). This is not intended as a home learning series in programming! Okay, so you're confident with PHP/SQL/etc., you know phpBB and are willing to get up to speed (quickly) with phpBB3 source and you want to contribute. Before going further read and re-read the above project list and the rules below. If you still wish to continue pick a project. Don't be overly ambitious! Pick something you'll be confident doing. If you wish to work as a team that's fine but again be sure to read the rules below.
I should state quite clearly here that we are not looking for Mod(ifications) though Mod authors are very much encouraged to take part in this project. These mini-projects should lead to code which is fully integrated within phpBB rather than being "bolt ons" or after thoughts.
We are initially (an approximate two week window) looking for people/groups to submit their outline proposals. This is simply a written outline of your background and how you may procede with the given project. No need for lots of coding examples, etc. We're simply trying to guage which person/group is likely to have the best grasp of the project and thus most likely to deliver the goods. We may suggest in some cases people team up. I should say here we know some other opensource projects are a free for all and whomever submits first "wins". I think that's a waste of time and resources. One tip I'd suggest you follow is look over phpBB3 source and functionality if you haven't already. That way you are less likely to suggest something which is either impossible to implement into large chunks of existing source or which already exists.
You should send your proposals to Meik (Acyd Burn) here via private message. We'll then relay these to the other team leaders.
Once we have selected people/groups for projects you can go ahead. We will open a special forum for this project (as a whole and/or individually as required) at area51. You'll also be updated where appropriate on any "internal" roadmaps/discussions. You'll be expected to stay in regular contact with phpBB to ensure progress is indeed being made. You'll also be expected to raise any issues which impact phpBB source as it already exists (so as not to do something to the core source which we may find unacceptable for various reasons). Please ensure that your code adheres strictly to phpBB's coding guidelines. We will not accept source which doesn't (for example) use phpBB's DBAL layer, template system, session code, etc. We have these guidelines for a reason, they work
Assuming all goes well the chances are very high your mini-project will make it into phpBB3. As an aside we will be using this project as a whole to gauge your potential as development team members (good team working, good internal communication, committment, ability to work within phpBB's team/source framework, etc.).
Please be absolutely, positively sure you read and understand these. That way there will be no misunderstandings!
- All original work submitted must be Copyright phpBB Group. We cannot and will not accept material submitted under your own copyright/s. If you need to include (small sections of) copyrighted third party material licenced under the LGPL or GPL you may of course do so but must include an appropriate copyright. You must not include any non-L/GPL material in your contribution. We will refuse any contributions containing third party material which fail to recognise that material. Unless fundamentally required and agreed with by us your contributions should be largely your own work and not that of others (irrespective of including appropriate copyright notices).
- It is your responsibility to maintain your contribution inline with phpBB3 CVS (HEAD branch) source. If you submit code written with older CVS source in mind it will be refused until you update it.
- We will only accept material for the projects listed above. We will not accept "other" suggestions or work for those suggestions. Equally we will refuse further contributions which start to waiver in scope from the listed projects.
- You must contribute all aspects of a project. This means UI, source, DB schemas, etc. We will not accept contributions for just one part or other. While the final style for phpBB3 will differ from CVS it is essential our designer has something to work from! We will not do "bits" for you (it defeats the whole point!).
- We reserve the right to not include (in part or full) any part of your proposals or submitted work.
- We promise wherever we do include your submitted work or proposals to include your details in the author/information files distributed with phpBB and all similar material on this or future sites.
- If you wish to submit as a "group" you must have a "team leader" through which all communication can be done. Choose someone responsible who will be available. We will not referee disputes within groups so choose your team mates well.
- We reserve the right to remove from this project any person/group who fails to adhere to these guidelines in an ongoing manner (we can do without time wasting!).
- You will be expected if selected to adhere to our internal "unofficial" NDA.
- There is at this stage no "dead line" for final submissions other than progress on phpBB3 itself (to which you'll be kept updated if/as necessary)