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 |