GITI Technical Update

My pet project GITI is back under the knife again, but I haven’t really let anyone in on the details of whats been happening, so here we go:
1. GITI now has the capacity to facilitate 1-way invitations to schedule events. I hope to add an outside functionality for people who know me to be able to file an appoinement/schedule request to request a slot on my calendar. In concept this seems like it will be easy, and I suspect it will be, same form, new method for submitting.
2. Invite contacts to existing event. this is a new feature that was created after seeing how simple it was to complete. This feature works on the backend, but I am still working on the details for the front-end and user interface parts.
3. System-wide journaling. This needs a lot of work, especially where the journals may become a little long, but I know have the capability to add journal information to each and every item in GITI. This seems a little odd on the surface, but it really helps with remembering what happened when and being able to get thoughts together, especially on items that are academicly linked.
4. Modules that are inactive DO NOT appear on GITI Summary anymore. I finally got sick of seeing empty boxes saying “no ____ to complete”, so now the unused little shits aren’t appearing. Because of this change I am also considering something else, which I will mention below.
ok, now that ive blabbed about what ive done, now its time to go into my plans for GITI’s future:
1. GITI Command – think like a small text box, at the base of the GITI v1 menu bar, or at the bottom corner of the footer include for v2. This functionality will take advantage of my over-anal addressing scheme that resembles an object-oriented programming structure. I intend to have the box read GITI addresses, and pass them through a SELECT/CASE structure. Im thinking about making it a double-pass possibility, so that I could use full GITI addresses (root.giti.schedule.add) if I want, or I can pass only the local address (schedule.add) and have it to ammend the interface address, so it comes out like this: “root.giti” + “$command”, where $command == “schedule.add” and the whole command comes back as $command = “root.giti.schedule.add”, which would equate to a valid case. Another thing I thought about for v2 is the ability to have it to know what module it is in, so I could be on a schedule page (lets say “schedule.view”) and have it to accept the command “add”, so then $command = “root.giti.$module.$command” or “root.giti.schedule.add”.
2. New GITI v2 navigation concept. I am having an extreamly difficult time keeping things straight in the v2 menu now that I am driving it from the GITI database. One thing I have given thought to is using the above mentioned GITI Command functionality to propel navigation, since all of the tables already include info for the GITI addressing structure. This will be a very firm step towards GITI becoming modular.
3. Change GITI’s menu ownership from ‘system’ to $user – this will ultimately result in a great flexibility in being able to ignore unused modules or turn others on at will. While this will require a slightly higher number of entries in the database, it will in the end make the thing more flexible. With the way I am conservatively writing GITI you would think I was working with a system with 2MB of RAM or so. Keep in mind, GITI still uses under 1MB of database storage, a very tiny database. The server and technology are capable of much more than I throw at them.
4. Modernize Schedule and Todo! – A lot of the new stuff for Schedule had already been written, I just haven’t implemented it, because im waiting to retire the old forms and things, and create them as GITI module files instead of as independant functionality files.
5. Rewrite GITI EMail functionality (this is unlikely to happen) – the GITI email stuff currently will log me into SquirrelMail in an insecure method, not very impressive, and I can also send email from a fairly featureless text-box composition form. This module needs to either be killed or majorly overwritten.
I think I might post some new screenshots soon, now that things work better. At some point I should probably remember to un-neuter v2 (put its scripts that do stuff back in place) so I can test it fully.