CLASSE Time Sheet Application (AKA Replicon Replacement)

GitLab Project

This project has been integrated as a collection of feature requests tagged with "timesheet" in the Business Office App Suite project. Please use that page for further feature requests, bug reports, and documentation for this project.


Create a web app that users use to report time spent working on various projects (WBS's).


  • Pay Period
    • For salaried, employees, two pay periods each month, consisting of the first to the 15th, and the 16th to the last day of each month.
    • For hourly employees, each week is a pay period.


  • A "chart" or "spreadsheet" where users enter time spent on each WBS. The rows are WBS's, and each user can have a variable and changing list of WBS's. The columns are days.
  • A total for each day should be calculated and displayed
  • A total for the pay period should be calculated and displayed
  • Users need the ability to add and remove WBS's for each pay period.
  • Users need to be able to save a timesheet.
  • When a timesheet is submitted, it then needs to be approved by the "CAM" (Cost Account Manager) for each WBS that time was charged to.
    • if the CAM rejects the timesheet, it is reopened and sent back to the user.
  • Users need to be able browse to different timesheets so that they can enter and view time for timesheets in the past and in the future.
  • Users need to be able to enter an optional comment for each time entry.

Implementation Details

  • DB server = testdb
  • DB name = timesheet
  • DB user = busoffadmin
  • JDBC Resource = jdbc/timesheet_busoffadmin
  • JDBC Connection Pool = mysql_testdb_timesheet_busoffadmin

Implementation steps.

  1. Create the grid UI, where you can enter a number (including decimals) into each cell.
    1. The columns are days. 1-15 for the first pay period of each month, and 16-28,29,30, or 31 for the second pay period of each month.
    2. The rows are WBS numbers. Each timesheet will have a different number of rows.
  2. Add the ability to delete and add WBS numbers (from the wbs table in the DB).
  3. Update the grid so that when you click on the cell to enter a number, you have an option to add a text description. This could just be a text field that appears below the grid, an "expand" icon that you click on to open up a text field, etc.
  4. Update the grid so that when the user clicks save, entries in the time_charge table will be created or updated based on the current status of their timesheet.


  1. A user logs in through apache. Their classeid is used to match an employee id in the employee table.
  2. When they log in, they are presented with their timesheet for the current pay period. If the timesheet doesn't already exist int he timesheet table, it should be created.
    1. If the timesheet is being created for the first time, it should default to the WBS list the user used most recently.
  3. The user will add or remove WBS's as necessary, and will enter time into the cells on their timesheet. Each entry will have an optional description.
  4. When the user clicks save, entries in the time_charge table will be created or updated based on the current status of their timesheet.

Example UI

  • Example of old UI. Note that this is just an example. The new UI could be simplified as long as it meets the stated specifications.:

Requirements / notes

  • approvers for WBS's
  • WBS totals useful for approvers, not for entering
  • hid weekends by default, with ability to expand?
  • auto-fill holidays, with ability to override?
  • only click approve once - comments only necessary when declining
  • each WBS has a descri[ption, and always order by WBS
  • after viewing and improving an individuals time, automatically see next employees view (not the list of employees)
  • time off = holiday, vacation, or personal
  • some WBS's require a comment (like non LEPP / CHESS)
  • lock timesheet once Bill's processed. important for financial audit.
  • make sure credits / debits in final LLJV match what was in initial KFS report. (done)
  • timestamp approvals
  • Dave Rice use case: export reports to Excel
  • For supervisors: timesheet summary table has breakdown by task (RT #42586)
  • send email when approvals are due

Focus Group Requests

  • When Bill pulls report, everything is locked.
  • Allow supervisor or cam to withdraw approval, and user is notified.
  • Allow users to unsubmit timesheet, even if something has been approved. cams and supervisors are notified
  • Preserve export of raw data to csv. Timesheet (classic). Basically, a line for each entry anyone makes.
  • improve / speed up searches.
  • Easy access for supervisors of what percentage of expected submissions are complete. Or, globally what percentage of timesheets are submitted.
  • For users - listing of accounts, descriptions of accounts, and who is responsible.
  • Maybe adding "notes" field to title, description, and wbs
  • In displays for approvals, show names not just netid's or employee id's. Maybe just show last names for consistency with existing convention.
  • Run a report for charges on a given wbs for a given period, showing hours, cams and/or user,
  • ability to list all users - last name, first name
  • prevent a specific user from charging a specific wbs???
  • give CAM ability to require comments for specific WBS's they're responsible for. Or, minimum time without comments.
  • ??? by default, repeat comments from previous entry ???

  • Electronics group: no complaints!
  • Task list dropdown: option to list alphabetically or numerically
    • Sub-dropdown menus to save a column in the timesheet interface
    • Search will automatically complete WBS or description (like Google)
  • Not clear how important the comments are, depends on the CAM
  • Nate's "lame complaints":
    • Default should be expanded timesheet
    • Checksum to make sure all hours accounted for
    • Approvals: CAM can choose default show whole timesheet or only hours to be approved
  • BKH: vacations correlated with Workday
  • Dropdown menus for task/project not strictly necessary -- people usually use the add/remove tasks button at the bottom
Topic revision: r11 - 07 Feb 2019, AdminDevinBougie
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CLASSE Wiki? Send feedback