Tasque is a task tracking system that unites all the good parts of the common task tracking systems and adds something of it's own on a top
-
Backend — Tasque backend. .NET 6, PostgreSQL, Amazon DynamoDB.
-
Frontend — Tasque frontend. Angular 14, rxjs
- NodeJS (16.10.x);
- TypeScript (4.8.x);
- RxJS (7.4.x);
- NPM (8.x.x);
- PostgreSQL (14.2)
erDiagram
Users {
integer Id
text Password
text Salt
text Email
timestamp_with_time_zone UpdatedAt
timestamp_with_time_zone CreatedAt
text Name
boolean IsEmailConfirmed
text AvatarURL
}
Projects {
integer Id
text Name
integer AuthorId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
integer OrganizationId
text Key
}
Notifications {
integer Id
text Message
integer UserId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
TaskPriorities {
integer Id
text Name
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
TaskStates {
integer Id
text Name
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
TaskTypes {
integer Id
text Name
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Comments {
integer Id
text Message
integer AuthorId
integer TaskId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Roles {
integer Id
text Name
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
MeetingUser {
integer MeetingsId
integer UsersId
}
BoardColumns {
integer Id
text Name
integer ProjectId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Attachments {
integer Id
text URL
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Sprints {
integer Id
text Name
text Description
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
timestamp_with_time_zone EndAt
integer ProjectId
timestamp_with_time_zone StartAt
boolean IsComplete
integer Order
}
Tasks {
integer Id
text Description
text Summary
integer StateId
integer TypeId
integer PriorityId
timestamp_with_time_zone Deadline
timestamp_with_time_zone FinishedAt
integer AuthorId
integer ProjectId
integer BoardColumnId
integer SprintId
integer LastUpdatedById
integer ParentTaskId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
integer Estimate
}
OrganizationUser {
integer ParticipatedOrganizationId
integer UsersId
}
UserOrganizationRoles {
integer OrganizationId
integer UserId
integer Role
}
Calendars {
integer Id
integer UserId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Organizations {
integer Id
text Name
integer AuthorId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
ProjectUser {
integer ParticipatedProjectsId
integer UsersId
}
TaskUser {
integer ParticipatedTasksId
integer UsersId
}
ConfirmationTokens {
uuid Token
integer UserId
timestamp_with_time_zone ExpiringAt
integer Kind
}
UserProjectRoles {
integer RoleId
integer UserId
integer ProjectId
}
Labels {
integer Id
text Name
integer ProjectId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
Meetings {
integer Id
timestamp_with_time_zone StartingTime
timestamp_with_time_zone EndingTime
integer CalendarId
timestamp_with_time_zone CreatedAt
timestamp_with_time_zone UpdatedAt
}
LabelTask {
integer LabelsId
integer TasksId
}
AttachmentTask {
integer AttachmentsId
integer TasksId
}
TaskPriority ||--o{ Project : projectId_id
TaskPriority {
id int PK
projectId int FK
name string
color string
created_at datetime
updated_at datetime
}
Calendars }o--|| Users : "UserId"
Notifications }o--|| Users : "UserId"
Organizations }o--|| Users : "AuthorId"
Tasks }o--|| Users : "AuthorId"
Tasks }o--|| Users : "LastUpdatedById"
MeetingUser }o--|| Users : "UsersId"
Comments }o--|| Users : "AuthorId"
Projects }o--|| Users : "AuthorId"
ProjectUser }o--|| Users : "UsersId"
TaskUser }o--|| Users : "UsersId"
ConfirmationTokens }o--|| Users : "UserId"
UserProjectRoles }o--|| Users : "UserId"
OrganizationUser }o--|| Users : "UsersId"
UserOrganizationRoles }o--|| Users : "UserId"
Labels }o--|| Projects : "ProjectId"
Tasks }o--|| Projects : "ProjectId"
Projects }o--|| Organizations : "OrganizationId"
ProjectUser }o--|| Projects : "ParticipatedProjectsId"
UserProjectRoles }o--|| Projects : "ProjectId"
Sprints }o--|| Projects : "ProjectId"
BoardColumns }o--|| Projects : "ProjectId"
Tasks }o--|| TaskPriorities : "PriorityId"
Tasks }o--|| TaskStates : "StateId"
Tasks }o--|| TaskTypes : "TypeId"
Comments }o--|| Tasks : "TaskId"
UserProjectRoles }o--|| Roles : "RoleId"
MeetingUser }o--|| Meetings : "MeetingsId"
Tasks }o--|| BoardColumns : "BoardColumnId"
AttachmentTask }o--|| Attachments : "AttachmentsId"
Tasks }o--|| Sprints : "SprintId"
Tasks }o--|| Tasks : "ParentTaskId"
AttachmentTask }o--|| Tasks : "TasksId"
LabelTask }o--|| Tasks : "TasksId"
TaskUser }o--|| Tasks : "ParticipatedTasksId"
OrganizationUser }o--|| Organizations : "ParticipatedOrganizationId"
UserOrganizationRoles }o--|| Organizations : "OrganizationId"
Meetings }o--|| Calendars : "CalendarId"
LabelTask }o--|| Labels : "LabelsId"