NateOffice
Welcome to the NateOffice project. Below you will find links to project information, including
a project roadmap.
GENERAL STUFF
- License:
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- Guarantees
- Absolutely none. Use this at your own risk, feel free to modify it, pass it around, etc.
- What is NateOffice?
- This project started out as a customization of the NetOffice code and quickly turned into a full
fledged rewrite. Initially I was only trying to add a better forum than the built-in system, so I had the bright idea of merging
phpBB with the NetOffice code. Halfway into that, I realized that the display system was a mess, and gutted the entire display code
for both NetOffice and phpBB and replaced it with an XSL-based system. Further use indicated the usefulness of a basic wiki (Tavi)
and the need for a custom call logging system. This eventually led to a rewrite of the tasks/projects from NateOffice and the
implementation of a basic time-tracking system, and that leaves the project where it is now.
- What can you do with NateOffice?
- You can track contacts, projects, calls, bookmarks, etc. You can do very basic document revisions
and tracking. You can optionally create project spaces for collaboration with limited "client-level" user access to those spaces
(although it requires some minor direct database tweaks at the moment to do so). You can do wiki-based collaborative building,
discussions with file attachments, track events, etc. The call logging and task systems have been used in real-world offices for over
a year now, and the time tracking has been in use for a couple of months, so many of the bugs in these areas have been worked
out.
- What needs work in NateOffice?
- Most obviously, the user interface is a mess. While the display code has been entirely rewritten to
be based on XSL-stylesheets, and every page has an underlying XML document now, the interface is essentially a copy-and-paste dump of
the old HTML into an XSL stylesheet and tweaked as little as possible to make it XHTML-compatible. Sometimes this has actually broken
the interface slightly, leaving useless buttons and so-on, but for the most part it is tolerable. Other things that need work are the
user administration, the document management system, the overall security of the code (against things like injections and so on),
re-implementing project phases and more advanced reporting, some of the more arcane CRM-type features like opportunity tracking, and
probably a million other things.
- Some tips for using NateOffice
- Given the messy interface, if you're not sure how to "add" something, try a "plus" button.
- Tech tip: you can add "&debug=1" to any URL string to see a dump of the underlying XML and the XSL
sheet in use. This is useful when working on XSL stylesheets to see what "selects" you can use from a given page in NateOffice.
- If you want to make a project have its own "portal" space, manually edit the database record for that
project (the 'portals' table) and set the "published" field to zero. Counterintuitive but this will eventually be done from within
NateOffice and make more sense.
- The code presumes that the ID in the "members" table matches the ID of a record in CRM_people for the
purposes of determining the user name and so on. Important because right now you need to manually add new _users_ directly to the
database (and user passwords are stored with CRYPT, not PASSWORD). This will be fixed in the next release. It doesn't affect CRM
records or user permissions, just the actual creation of the user account for team members and so on.
- If you get any weirdness with the forum for the 5th project you create, this may be a hangover from
old NetOffice and give you the Support Forum as the forum for your project instead of a forum specifically for your project. This
will be fixed in the next release.
- The "mailing list settings" link for a person in the CRM is a little hack that interfaces with a
Mailman mailing list system and can be used to manage the person's mailing list memberships without needing to go into Mailman for
each list. You can't turn off the link right now, but if you want the feature, it exists.
KNOWN BUGS & MISSING FEATURES
- Not really a bug, but there are a LOT of files from NetOffice which are no longer used and just sit there taking up space.
- Can't add a user from within NateOffice. Have to add a CRM record and then a user with that ID.
- ACL permission checks have not been added everywhere needed
- Merge function needs confirmation and perhaps a "search" based on the currently-typed ID so that you don't need to "guess" as to
what record is being replaced. This applies for anything that can be merged.
- Need ability to add notes to a call itself
- Need to add sales rep fields in CRM that interact with team members.
- Need to add orphan checking for orphaned links/notes/phones/emails/addresses/etc
- Should have the ability to add flags to a user when a call is added
- Should be able to set a "primary address" for a person or an organization with multiple addresses
- Tasks, projects, and time cards need proper field sorting added to the results display.
- Ability to add more than one URL on the call log addition page (Organization Tab)
- "Not at this number" on call log form in case the information is outdated
- Mouseover highlight on phone numbers, addresses, on view contact details
- Can't sort columns on flag search results
Not sure if it's a missing feature or not:
- How to add more than one person at a time to an organization? Perhaps use a table or CSV or something?
- Maybe add notes to user on flag/address/company/etc changes as a sort of logging?
Wishlist
- Add an event registration module. Ideally this will tie in to the events/tasks module so that an 'event' task can take
registrations. Obviously registrations will validate against/update the CRM system. Note that because each event can have sub-events
to be selected by the registrant, and these [seminars, workshops, etc, within a conference, for instance] will differ between events,
some sort of easy-to-use dynamic sub-event system needs to be developed so that a non-technical administrator can configure the event
and sub-events. [*Note: This has actually been written but not yet integrated so I might get around to doing this before someone else
does.]
- Integrate a blogging system - possibly something like wordpress? - into the project. The blog should be XML-ized, and archived
posts should be visible both in blog and forum-style display formats.
- Integrate an OSS accounting package
- Create a user webpage for each individual user if they so desire, with personal Wiki, blog, bookmarks, and a forum - allow
selection/unselection of given modules on homepage, and allow public/private notation of some items possibly?
- Make the modules truly modular; i.e., a given user can choose whether or not to have a particular module [bookmarks, for instance]
displayed to him/her on any given space [personal, portal, site] and users who lack permissions will not even see menu entries for
those spaces.
- [?] Possibly implement a PR module so that permitted groups can publish organization-wide or public internet press release-type
RSS-based news on project/group progress. This may be best done using the blog as a vehicle.
Other Stuff
Visit http://www.sourceforge.net/projects/nateoffice to see the current state of the project (or to download it), give or take a
few weeks.
Someday I'm going to need to check this codebase against the version of NetOffice I started with (2.5.2), so that I can properly
copywrite whatever I've written. Essentially, I've rewritten probably 85% of the entire package so far, and given outside credit
where needed.
Shameless self-promotion: If you're bored, check out my blog: http://www.natesimpson.com/blog - there are links there to my writing
(novels and short stories) and music (trance-influenced electronica) as well.
Sole Developer: Nate Simpson [web]