Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Tasker

A simple task-management web app (Notion / Monday / ToDoist style) with Workspaces, Projects, Tasks, Subtasks, assignee support, and task comments.

Built as an MVP with ASP.NET Core 10 Blazor Web App (server-rendered), Entity Framework Core, and ASP.NET Core Identity. Designed to run locally with SQLite and deploy to SmarterASP.NET (or any IIS / SQL Server host).

Features

  • Auth — email + password sign-in, plus Google OAuth (when configured).
  • Workspaces — multiple shared workspaces per user.
  • Members — invite other users to a workspace by their email.
  • Projects — create / edit / delete projects inside a workspace.
  • Tasks — title, description, status, priority, due date, assignee.
  • Subtasks — nest tasks (one level).
  • Comments — discussion thread on each task.
  • Task View — flat list of your open tasks across workspaces.
  • Mobile-friendly — responsive off-canvas sidebar; works in any modern phone browser.

Tech Stack

  • ASP.NET Core 10 (Blazor Web App, Server render mode)
  • Entity Framework Core 10
  • ASP.NET Core Identity (cookie auth) + Google OAuth
  • SQL Server (production / hosted) — switchable to SQLite (local dev) via configuration
  • Bootstrap 5

Project Layout

Tasker/
  Tasker.sln
  src/
    Tasker.Web/             # The single web project
      Data/                 # AppDbContext + entities
      Services/             # WorkspaceService, ProjectService, TaskService, CommentService
      Components/
        Pages/              # Razor pages
        Layout/             # MainLayout, NavMenu
      Pages/Account/        # ExternalLogin Razor Pages (Google OAuth callback)
      Migrations/           # EF Core migrations
      wwwroot/              # Static files (CSS, JS)

Local Development (SQLite)

dotnet run --project src/Tasker.Web

The app boots on https://localhost:5001 (or http://localhost:5000) by default, creates a tasker.db SQLite file in src/Tasker.Web/, and runs migrations on startup.

Configuration

src/Tasker.Web/appsettings.json keys:

Key Purpose Default
DatabaseProvider Sqlite or SqlServer Sqlite
ConnectionStrings:DefaultConnection SQLite file path Data Source=tasker.db
ConnectionStrings:SqlServerConnection SQL Server connection string (set per environment)
Authentication:Google:ClientId Google OAuth client ID empty
Authentication:Google:ClientSecret Google OAuth client secret empty

When the Google keys are empty, the "Continue with Google" button is hidden. When populated, Google sign-in is wired through /account/external-login.

Switching to SQL Server (Production / SmarterASP.NET)

  1. Set DatabaseProvider to SqlServer in appsettings.json (or use appsettings.Production.json).
  2. Update ConnectionStrings:SqlServerConnection to your host's SQL Server connection string.
  3. On first run, EF migrations create the schema automatically. If migrations need to be applied manually:
dotnet ef database update --project src/Tasker.Web --startup-project src/Tasker.Web

Google OAuth Setup

  1. Visit https://console.cloud.google.com/ and create a project.
  2. APIs & Services → Credentials → Create OAuth client ID (type: Web application).
  3. Authorized redirect URI: https://<your-host>/account/external-login?returnUrl=/ (the callback handled by /account/external-login?handler=Callback).
  4. Copy the Client ID + Client Secret into appsettings.json (or environment variables).

Deploy to SmarterASP.NET

SmarterASP.NET supports .NET 8+ on Windows with SQL Server. To deploy:

  1. Build the project in Release mode:
    dotnet publish src/Tasker.Web -c Release -o publish
  2. Upload the contents of publish/ via FTP / Web Deploy to your SmarterASP.NET site root.
  3. Create a SQL Server database in the SmarterASP.NET control panel and update the SqlServerConnection connection string.
  4. Set DatabaseProvider=SqlServer for that environment.
  5. Open the deployed site once so EF migrations create the schema.

For GitHub deploy, the build command is dotnet publish src/Tasker.Web -c Release -o publish.

Roadmap (Post-MVP)

  • Kanban board view with drag-drop
  • Real-time updates (SignalR)
  • Notifications / activity feed
  • Rich-text descriptions
  • Attachments
  • Workspace-level admin (transfer ownership, remove member)
  • PWA offline mode

License

Private / MVP.

About

Tasker — a simple workspace/project/task manager (Blazor Server + EF Core)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages