Automated Time Tracking From proposal to production By Chris Gaffney.

15
Automated Time Tracking From proposal to production By Chris Gaffney

Transcript of Automated Time Tracking From proposal to production By Chris Gaffney.

Page 1: Automated Time Tracking From proposal to production By Chris Gaffney.

Automated Time TrackingFrom proposal to production

By Chris Gaffney

Page 2: Automated Time Tracking From proposal to production By Chris Gaffney.

Hi!

Page 3: Automated Time Tracking From proposal to production By Chris Gaffney.

Overview

• The Language Resource Center is a lab specifically for language students

• Students in language courses 202 and below must spend a minimum of 50 minutes per week in the lab

• Summer 2006: Began planning to switch to an all Mac lab

• Need to preserve much of the functionality of our existing system.

Page 4: Automated Time Tracking From proposal to production By Chris Gaffney.

Why build our own?

• The time tracking of the existing system left much to be desired

• There was no preexisting system for OS X that did what we needed

• The new system could be tailored for exactly how we used it

• The chance to try new technologies

Page 5: Automated Time Tracking From proposal to production By Chris Gaffney.

Requirements

• Web interface for students, teachers and admins

• Operation is completely transparent to most students

• Students taking multiple courses would be able to choose which course to track time for

• Works with OS X

Page 6: Automated Time Tracking From proposal to production By Chris Gaffney.

Development Process

• Code is stored in a Subversion repository

• I am the only developer

• Development is done primarily on Linux for OS X and Windows– Required the use of cross platform languages– Lacked the target environment when

development started

• Started with prototyping, becoming an expert in the domain

Page 7: Automated Time Tracking From proposal to production By Chris Gaffney.

Prototyping

• Original concept was that of a web service– http://server/signon/gaffneyc– http://server/signoff/gaffneyc

• Extremely thin client (curl, wget, browser)

• Web service was not a practical solution– Depended too much on the sign off– Browser was not transparent enough

Page 8: Automated Time Tracking From proposal to production By Chris Gaffney.

Prototyping

• Second prototype was a dedicated TCP server

• Written in Ruby for a quick start, flexibility

• TCP allowed for a “tripwire” that alerted the server when the client disconnected, restarted the system, unplugged, etc…

• Required a thicker client that implements a very simple protocol

Page 9: Automated Time Tracking From proposal to production By Chris Gaffney.
Page 10: Automated Time Tracking From proposal to production By Chris Gaffney.

The Server

• Written in Ruby to take advantage of the ActiveRecord ORM library and to reuse code from the web interface

• Two major designs– Original: 3 threads per connection (timer,

saver, and connection thread)– Redesign: No timer thread, single saving

thread (serialize writes), 1 thread/connection

Page 11: Automated Time Tracking From proposal to production By Chris Gaffney.

Clients

• Java Client– This is the actual client that students see– Runs on Windows, Linux, and OS X

• Ruby Client– Console client used for testing, prototyping

protocol variations, etc…

• Objective-C– Coming this summer…?

Page 12: Automated Time Tracking From proposal to production By Chris Gaffney.

Web Interface

• Deployed midway through the semester

• Good response so far from both faculty and students

• Preparing to deploy a redesign in the coming week– Original design was hammered out directly in

HTML and CSS– Redesign went through a prototype / mocking

process before being implemented

Page 13: Automated Time Tracking From proposal to production By Chris Gaffney.

Original Design

Page 14: Automated Time Tracking From proposal to production By Chris Gaffney.

New Design

Page 15: Automated Time Tracking From proposal to production By Chris Gaffney.

Production

• System went live on January 8th

• One minor hiccup during the first week

• Stats (since January)– Sessions: 18298– Logged Time: 588d 6h 25m 0s– Students: 2156