Skip to content

Repository files navigation

ChronosDesk

CI

Windows tray app for one-shot, repeating, and burst-interval reminders. Shows Windows toast notifications and persists reminders as local JSON.

I built it to practice layered .NET architecture on a tool I actually run at my desk. Simple "drink water every 30 minutes" reminders were harder to find than they should be, so I made one.

ChronosDesk dashboard

Features

  • One-shot reminders at a specific date and time
  • Repeating reminders inside a daily window (including overnight windows such as 22:00 to 02:00)
  • Burst sessions with short intervals, optional breaks, and cycle limits
  • System tray icon with dashboard and quick add
  • Optional sound with each toast
  • JSON persistence under %AppData%\ChronosDesk\reminders.json

Requirements

Run

dotnet run --project ChronosDesk.Ui -c Release

The app starts in the system tray. Double-click the icon to open the dashboard, or use the tray menu to add a reminder.

Release executable after build:

ChronosDesk.Ui\bin\Release\net10.0-windows10.0.17763.0\ChronosDesk.Ui.exe

Test

dotnet test ChronosDesk.sln -c Release

27 unit tests cover persistence, trigger-time logic, burst state transitions, and scheduler ticks. Details: testing.

Publish

Self-contained single-file Windows build:

.\publish.ps1

Output:

ChronosDesk.Ui\bin\Release\net10.0-windows10.0.17763.0\win-x64\publish\ChronosDesk.Ui.exe

How it works

Four projects: ChronosDesk.Core (domain and scheduler), ChronosDesk.Infrastructure (JSON and Windows toasts), ChronosDesk.Ui (WPF and tray), and ChronosDesk.Core.Tests.

App.xaml.cs is the manual composition root: it wires the repository, notification service, and scheduler, then passes the scheduler into WPF windows by constructor.

More detail: architecture · known limitations

Stack

C# / .NET 10, WPF, WinForms tray icon, xUnit, System.Text.Json, Windows toast APIs

License

MIT

About

Windows tray reminder app with toast notifications and layered .NET architecture

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages