As outlined, the requirements seem to be pretty much those of any major Open Source development project. Keeping this in mind might yield a generic template usable by other projects in future.
Solving generic problems rather than specific ones does involve a little more thought, (it's possible to get into an infinite regression of abstractions), but the effort could be repaid by lower maintenance burdens. -- Email and shopping with the feelgood factor! 55% of income to good causes. http://www.ippimail.com