Friday, October 26, 2012

timesheet dotnetnuke module

timesheet dotnetnuke module

Database structure of timesheet module:

Module installs following tables

Projects

Project may have infinite amount of tasks.

TsProject table - this table will contain information about current projects including

Field nameField typeDescription
1idbigintPrimary key
2Namevarchar(max)name of the project
3Descriptionvarchar(max) - contains more detailed information about project
4Fromdatetime date when reporting to this project will be allowed
5Todatetime date when reporting to this project will be closed
6Enabledbool - indicate if project is active and enabled for reporting
7ProjectOwnerUserbigint User responsible for this project , user created project will be assigned by default
8CreatedAtdatetime date when this project was created

Tasks

Task can be organised into hierarchical structure - every task can have parent task or have infinite amount of sub-tasks.

TsTasks - table will contain information about current tasks.

Field nameField typeDescription
1idbigintPrimary key
2ProjectIdbigint - id of the project of the task record belongs to
3ParentTaskIdbigint - id of the parent task
4Namevarchar(max) - contains name of the Task
5Descriptionvarchar(max) - contains more detailed information about task
6Fromdatetime - date when reporting to this task will be allowed
7Todatetime - date when reporting to this Task will be closed
8Enabledbool - indicate if Task is enabled for reporting
9CreatedAtdtetime date when task created
10OwnerUserbigint User responsible for this task, user created task will be assigned by default

Assignments

Assignments must be created in order to indicate assignment of particular user to specific task/project

TsUserAssignments - have information about current users assignments

1idbigintPrimary key
2UserIdbigint
3ProjectIDbigint - project that is assigned to user
4TaskIDbigint - task from project - can be omitted if all tasks from them project are available for current user
5Fromdatetime - date when user started working on particular task/project.Can be omitted and it will be not enforced.
6Todatetime - date when user completed reporting to this Task will be closed.Can be omitted and it will be not enforced.
7Enabledbool - indicate if assignment is enabled for reporting
8CreatedAtdatetime date when assignment created
9OwnerUserbigint User created this assignment

User's Report

TsUserReport - hold information about reported hours

1idbigintPrimary key
2userIdbigint - id of DNN user
3taskIdbigint - id of the task user was working on
4ProjectIDbigint - id of the project
4Datedatetime - reported date
3hoursdecimal(8,2) - amount of hours reported for particular task
4typeOfTheHoursIdint - contains information about type of reported hours : regular hours , overtime hours , sick time
8CreatedAtdatetime date when task created
9Commentvarchar(max) - contains more detailed information about report

Hours Type

tsHoursType - contains information about type of reported hours : regular hours , overtime hours , sick time

1idbigintPrimary key
2HourTypeNamevarchar(max)type of hours , regular, overtime, sick time.