Data stores - OfficeDev/microsoft-teams-apps-timetally GitHub Wiki
The app uses the following data store:
All these resources are created in your Azure subscription. None are hosted directly by Microsoft.
- Azure SQL Database
- [ProjectEntity] to store all the project related data added by manager.
- [TaskEntity] to store all the tasks added by manager in a project.
- [TimesheetEntity] to store all the daily timesheet related data added by user.
- [UserProjectMappingEntity] to store user and project mapping.
- [ConversationEntity] to store conversation details of user to send reminders.
Azure SQL Storage tables
1. ProjectEntity
The table has following rows:
Attribute | Comment |
---|---|
Id (PK) | Runtime generated random GUID |
Title | Title of project |
ClientName | Client's name of project |
BillableHours | Number of billable hours for project |
NonBillableHours | Number of non-billable hours for project |
StartDate | Project start date |
EndDate | Project end date |
StartDateInUtc | Project start date in UTC |
EndDateInUtc | Project end date in UTC |
CreatedInTimezone | User's timezone while creating project |
CreatedBy | AAD Id of logged-in user |
CreatedOn | Datetime of project creation |
2. TaskEntity
The table has following rows:
Attribute | Comment |
---|---|
Id (PK) | Runtime generated random GUID |
Title | Title of task |
IsRemoved | True if task is deleted, else False |
ProjectId | Runtime generated random GUID |
3. TimesheetEntity
The table has following rows:
Attribute | Comment |
---|---|
Id (PK) | Runtime generated random GUID |
TaskId | Runtime generated random GUID |
TaskTitle | Title of task |
UserId | AAD Id of logged-in user |
TimesheetDate | Date in UTC for which timesheet is filled |
HoursFilled | Hours filled for task |
Status | Timesheet status – Saved, Submitted, Approved, Rejected |
ManagerComments | Comments added by manager on rejecting timesheet |
SubmittedOn | DateTime of timesheet submission |
LastModifiedOn | DateTime of recent timesheet modification |
4. UserProjectMappingEntity
The table has following rows:
Attribute | Comment |
---|---|
ProjectId | Runtime generated random GUID |
UserId | AAD Id of logged-in user |
IsBillable | True if logged-in user is billable, else false |
IsRemoved | True if logged-in user is removed from project, else false |
5. ConversationEntity
The table has following rows:
Attribute | Comment |
---|---|
UserId | AAD Id of logged-in user |
ConversationId | Bot conversation Id for sending notifications |