chore: initial commit of TaskTracker project

Existing ASP.NET API with vanilla JS SPA, WindowWatcher, Chrome extension, and MCP server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 22:08:45 -05:00
commit e12f78c479
66 changed files with 5170 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
namespace TaskTracker.Core.Entities;
public class AppMapping
{
public int Id { get; set; }
public string Pattern { get; set; } = string.Empty;
public string MatchType { get; set; } = string.Empty; // ProcessName, UrlContains, TitleContains
public string Category { get; set; } = string.Empty;
public string? FriendlyName { get; set; }
}

View File

@@ -0,0 +1,14 @@
namespace TaskTracker.Core.Entities;
public class ContextEvent
{
public int Id { get; set; }
public int? WorkTaskId { get; set; }
public string Source { get; set; } = string.Empty;
public string AppName { get; set; } = string.Empty;
public string WindowTitle { get; set; } = string.Empty;
public string? Url { get; set; }
public DateTime Timestamp { get; set; }
public WorkTask? WorkTask { get; set; }
}

View File

@@ -0,0 +1,14 @@
using TaskTracker.Core.Enums;
namespace TaskTracker.Core.Entities;
public class TaskNote
{
public int Id { get; set; }
public int WorkTaskId { get; set; }
public string Content { get; set; } = string.Empty;
public NoteType Type { get; set; }
public DateTime CreatedAt { get; set; }
public WorkTask WorkTask { get; set; } = null!;
}

View File

@@ -0,0 +1,22 @@
using TaskTracker.Core.Enums;
namespace TaskTracker.Core.Entities;
public class WorkTask
{
public int Id { get; set; }
public string Title { get; set; } = string.Empty;
public string? Description { get; set; }
public WorkTaskStatus Status { get; set; }
public string? Category { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? StartedAt { get; set; }
public DateTime? CompletedAt { get; set; }
public int? ParentTaskId { get; set; }
public WorkTask? ParentTask { get; set; }
public List<WorkTask> SubTasks { get; set; } = new();
public List<TaskNote> Notes { get; set; } = [];
public List<ContextEvent> ContextEvents { get; set; } = [];
}