General requirements
- open source
- LAMP based (linux, apache, mysql, php)
- strong developer/user community
- actively being developed
- lots of contributions
- easy to install/configure
- easy to use (even our interns can operate it)
Code quality
These are rule-of-thumb, there are exceptions where one of these being missing could actually be a good thing. Suggesting that a technical person do this review.
- Properly abstracted object oriented PHP
- Code well commented and clearly defined over files
- Descriptive variable/function names
- Proper indentation sticking consistently to the same style (which style is as important as consistency)
- Variable names following standard industry practice naming conventions.
- Abstracted API for extensibillity
- Security conscious design: for example not relying on register_globals
- Code/API documentation - as complete as possible.
- Dependency balance: e.g. don't reinvent the wheel, but don't rely on many esoteric libraries either.
Specific requirements
- integrates with joomla
- Order forms for members
- hosting status page from which upgrades/cancellation can be done (see specs)
- integrates with civicrm
- civicrm data
- activity logging
- accessed via civicrm backend
- domain hosting ordering process (from domain whois through to ordering packages and addons - check out this hosting spec for details)
- typical hosting billing features like upgrade/downgrade, add features etc.
- recurring billing - we currently bill on an annual process - with invoices sent out by email with links to payment options. Other typical recurring billing issues like "cancellation" are also not available out of the box.
- free options - we currently offer free hosting packages ("starter" package on a Kabissa subdomain and limited disk space etc) as well as paid ones, but still require an annual renewal process to be completed to keep the domain hosting account active.
- templated emails (see specs)