I reached a milestone with citrusdb today after my most recent cvs commit, the 14 requirements that I started with are finally all working.

  1. modular functions to allow new pieces to work along side base functions</p>
  2. security and password access to database on a per user level
  3. track modifications to customer records made by the database user
  4. keep general info, mailing address, billing address, and billing info about each customer
  5. able to assign multiple (unlimited?) services or products to a customer record
  6. add custom fields for services/product information
  7. trouble tickets / individual and department notifications
  8. import / export feature to send billing data back and forth to card processing software
  9. import from online order data (or online order component)
  10. search by specified fields
  11. easy to add and modify services/products
  12. ability to invoke remote commands to talk to other servers for billing queries, user lookups, etc.
  13. bill credit card and invoice for monthly, setup fee, onetime charges, 6 month, yearly, etc. billing cycles
  14. ability for different billing types to be assigned to each product or service that one customer has

Now there are many specific things that it needs for Galaxy to use it and probably still bugs and things I can make more clear, but at version 0.8.1 it finally does everything I set out for it in the beginning.