Status
From Project Auriga
Project Auriga has been in constant production use at Freelock Computing since January 2006. Over that time, there have been essentially 4 generations of code, with most of the changes in the JavaScript layer. All of the generations of code listed below are in active production use--different modules are at different stages. Here's a breakdown of these phases, with the most current generation first:
Contents |
[edit] Current development
We currently are using Dojo 1.1.0 for all of the new development and interfaces. This is where the bulk of the work from August 2007 to present has been, much of the time spent simply learning how to make best use of this toolkit.
Our current approach is to create custom data store-backed widgets for new interface components. We started with the Project tab, and this was pretty much completed on 11/23/2007. So here's what's working in generation 4 code:
- General
- http basic authentication through JS, logout
- Open/close tabs
- Open workpane
- Workpane
- Show employee list
- Show employee calendar
- Show employee scheduled time/tasks on particular day
- Unschedule time entries on particular day
- Generate passwords
- Switch to other user (manager only)
- Project tab:
- Search for projects by Mine, Owner, or All.
- Find projects with unapproved time.
- Add new projects/Edit projects
- View all tasks in a project.
- Hide all completed tasks, remember "Hide" setting.
- Start timer on particular task
- Switch timer to particular task
- Mark task complete
- Create new task (but have to refresh after saving, before editing it)
- Edit basic task parameters
- View/Edit task details
- Manager can change project id of task to move to another project
- View time entries associated with task
- Approve unapproved time, with buttons to approve actual, round up, or round down (manager only)
- Change task id associated with time (to move time entry to another task)
- Project Actions
- Schedule task (drag to employee calendar)
- Auto schedule task if over employee capacity
- Time Report tab
- Show current active timers
- Show time report broken down into project types
- Set start/end dates for report
- Group report by user, role, and time period
- Subscriptions tab (special Freelock plugin) - view active subscription entries that are going to expire in next 14 days
- Edit expiration, notes, period, charge, etc
- Save
[edit] Currently broken
Right now, these things are broken, which used to work:
- Manage accounts -- synchronize account settings between SugarCRM, SQL Ledger/LedgerSMB, and Auriga.
- Edit account
These are broken because we've done a lot of refactoring of the base data classes to allow multiple database systems to be specified in a configuration file, and basically to make it okay to put our code in a public repository. These are high priority to get fixed.
[edit] Not yet implemented
- Mileage screen
- Host maintenance screen (plugin)
- Application maintenance screen (plugin)
- Menu framework
- User management - must be done directly in database
[edit] Notes
[edit] Generation 3: dojo 0.4
The previous round of development was done in early 2007, with the focus being on approving time, billing, and paying employees. The interface was developed using Dojo 0.4, which took substantial reworking of the PHP controller system, moving from a custom Ajax request format to more standard HTML or JSON requests, with more controller code moved to the browser.
This code currently works, and therefore will likely not get updated for a while.
- Approve/Pay/Bill screen
- Bill Customers tab
- View all customers with unbilled time as of particular date, including unconfirmed time
- View all projects with unbilled time for a particular customer
- View mini-report of hours in project, broken out by employee or role
- View all unbilled hours, mark billed
- View all unapproved hours, update task times, approve
- View all unconfirmed hours
- View all hours
- Bill Customers tab
- Pay Vendors tab
- View all employees/vendors with confirmed but unbilled time as at a particular date
- Summary table lists simple total of payable time for each employee
- Mark individual employees as paid
- View detailed time entry records for all unpaid time as at date.
- Pay Vendors tab
[edit] Generation 2: Prototype/Scriptaculous
This is the core timeclock screen, and is the next to be moved to the current framework. This code was originally developed in spring 2006, and is largely unchanged since then.
- Today's Time tab
- View all tasks scheduled for today
- View all tasks with "override" set, assigned to user
- View all tasks scheduled for previous days and not marked complete or confirmed, highlighted
- Start a timer on any visible task
- Switch timer to any visible task
- Stop timer on active task
- Task chooser to switch to any task in system, by account/project
- Add/edit note using custom Ajax function
- Edit Time tab
- Edit hours for any unconfirmed time
- View time from any past date, group by day/week/month
- Confirm Time tab
- View all unconfirmed time
- Confirm all unconfirmed time
- View User tab (Manager only)
- Switch all views to marked user
- Time Summary tab
- View time for particular user by project type, grouped by day, week or month (functionality mostly moved to time report tab in current development)
- Schedule Tasks tab
- Much of this works fine, but all of this can be done in Projects tab in current development
- Projects tab
- Much of this works fine, but all of this can be done in Projects tab in current development
[edit] Generation 1: no JS
The original development was done before we were aware of Prototype. We used a simple Ajax library called tw-sack, by the authors of WordPress, but did the vast majority of the development server side. The original Ajax stuff is mixed into the Generation 2 code, or gone.
This code was updated in summer 2007, because the show_invoice code had been broken for about a year, and also to make project reports available to customers.
Interfaces that our customers use have been kept free of JavaScript so far. These include:
- project_report.php - view all customer projects, view individual project report with summary and details
- show_invoice.php - view open invoices, all invoices, pay open invoices through merchant account
- index.php - login page

