So, for the last year or so, I’ve been tinkering around with a new client management system for naturalaxis, and even partially coded it at one point before losing the code. Anyway, I took another shot at it, and it’s currently coming along alright. I’m already using it in a production environment to track my active accounts for the company. The current features — which are limited to the consultant’s interface — include:
- Support ticket functionality, including the capacity to add notes on ticket items
- Streamlined timesheet review and posting
- Contact management: each account can have multiple people associated with it
Percentage-wise, the code is probably about 40% complete, at least in terms of being able to use it for both clients and consultants without any bells and whistles. Some things I still need to finish to put this code completely into production:
- Complete the coding for the billing interface, which I haven’t even started yet. This is the really important part of the program, since it sends the bills out and provides me with the up-to-date information on each account’s standing.
- Add e-mail functionality, which I have a component for, but haven’t wired into anything yet. Ideally, the component will be wired into anything that generates output. I’m likely using PHPMailer to save myself a lot of work here.
- Completing the code for account credits and charges.
- Making the generation of some information more dependent on the configuration files to make generalizing the system easier.
- Finish any code I haven’t finished (duh).
That’s the short list, but contains most of the major stuff. There are some things I’m holding off on until the software is initially released:
- E-mail gatewayAbility to e-mail a support address and automatically add a ticket to the system, provided that the originating e-mail address has an account within the system itself. I expect that this article from evolt.org will help quite a lot.
- Client management of multiple accountsOne user in the system should be able to manage multiple accounts within the same system on the client side. The way the code is currently implemented, a single user can only be assigned to a single account unless multiple user names are used.
- System configuration wizardThe skeletal framework for this is there, but probably won’t make it into the initial release. I’d love to be able to change the system configuration without actually using the configuration file.
- System installerThis is an involved component in and of itself. The installer would automatically set up the MySQL databases needed for Pixelary, create the configuration file, create initial users, and populate the databases accordingly.