Chronos - Time Reporting for Programmers


Chronos - Time Reporting for Programmers

Chronos is a new proposed project, and Jayway is going to allocate some resources to work on this near full-time.


Core System
1.1 The system deals with Accounts.
1.2 Each Account correspond to a customer, consultancy firm or other entity.
1.3 Each Account has one or more Users.
1.4 Same User can belong to more than Account.
1.5 User has one or more Roles.
1.6 The Roles of a User is assigned per Account.
1.7 User authentication and role management in LDAP server.
1.8 Operation is something the application want to perform.
1.9 The Operations that a Role is allowed to do is assigned per Account.
1.10 The User has; Name, Title, Started (optional), Ended (optional), Salary (optional), Base Rate(optional).
1.11 The system handles Projects.
1.12 The Project has a Project Owner, which is a standard Role.
1.13 A Project has; Name, Customer Account, Vendor Account, Started, Finished, Estimated Finish, Estimated Time Required, Time Spent, Rate Schedule.
1.14 A Rate Schedule is a table of Project Role vs Rate.
1.15 Each Project has a Rate Schedule.
1.16 Each Account has one or more standard Rate Schedules.
1.17 Each Account can have one or more Rate Schedules per customer Account.
1.18 The Rate Schedule assigned to a project is a modifiable copy of a standard Rate Schedule.
1.19 A User is assigned a Project Role when placed in a Project.
1.20 A User can be working on many Projects at the same time.
1.21 Each User can be assigned an individual Rate for a project.
1.22 Each User can start/stop WorkPerformed on a Project.
1.23 Each User can manually modify WorkPerformed on a Project.
1.24 A Jira project key can be associated to the Project.
1.25 The Jira key is used to link Jira and Subversion to the Project.

2. Reports are generated from templates, which can be branded per Account.
2. Primary output format is PDF.
2. Invoicing Report.
2. User Work Report.
2. Account Summary

Web Interface
3. User login via Single Sign-On, for instance CAS.
3. Primary page will bring up all Projects in a list to the left, with the ability to start/stop and fill in time worked on it during the week and previously.

JIRA integration

IDEA/Eclipse Integration
3. Each IDEA/Eclipse project can be associated with a Project.
3. Automatic detection when programmer is working on a Project and updating the server.
3. Updating the WorkPerformed details with subversion commit texts.