An open API service indexing awesome lists of open source software.

https://github.com/jinjinov/openhabittracker

C# .NET 9 Blazor habit tracker application. Works on Web, Windows, Linux, Android, iOS and macOS.
https://github.com/jinjinov/openhabittracker

blazor blazor-server blazor-wasm blazor-webassembly cross-platform csharp ef-core efcore google-keep indexeddb markdown maui maui-blazor maui-blazor-hybrid net8 open-source photino photino-blazor winforms wpf

Last synced: 3 months ago
JSON representation

C# .NET 9 Blazor habit tracker application. Works on Web, Windows, Linux, Android, iOS and macOS.

Awesome Lists containing this project

README

        

# OpenHabitTracker

https://openhabittracker.net

## App:

https://pwa.openhabittracker.net

Take Markdown notes, plan tasks, track habits

- Free and Ad-Free
- Open Source
- Privacy Focused: All user data is stored locally on your device
- Available on Windows, Linux, Android, iOS, macOS, and as a web app
- Localized to English, German, Spanish, Slovenian

Key Features:

- Markdown support for notes
- Use categories and priorities to organize your notes, tasks, and habits
- Advanced Search, Filter, and Sort
- Data Export/Import: JSON, YAML, TSV, Markdown
- Import your notes from Google Keep
- Available in 26 themes with Dark and Light modes

## Stores:

Windows:
[](https://apps.microsoft.com/detail/9mwzmlxzzllr)

Linux - Flathub:
[](https://flathub.org/apps/net.openhabittracker.OpenHabitTracker)

Linux - Snap Store:
[](https://snapcraft.io/openhabittracker)

Android:
[](https://play.google.com/store/apps/details?id=net.openhabittracker)

iOS:
[](https://apps.apple.com/us/app/openhabittracker/id6654885470?platform=iphone)

macOS:
[](https://apps.apple.com/us/app/openhabittracker/id6654885470?platform=mac)

Android - APKPure:
[](https://apkpure.com/openhabittracker/net.openhabittracker)

## Docker image contains a Blazor Server app for one user

https://hub.docker.com/r/jinjinov/openhabittracker

https://github.com/Jinjinov/OpenHabitTracker/pkgs/container/openhabittracker

Set your username and password with environment variables:

.env
```
APPSETTINGS_USERNAME=admin
[email protected]
APPSETTINGS_PASSWORD=admin
APPSETTINGS_JWT_SECRET=your-extremely-strong-secret-key
```

Replace `your-extremely-strong-secret-key` in Windows terminal:

```
[System.Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
```

Replace `your-extremely-strong-secret-key` in Linux / macOS terminal:

```
openssl rand -base64 32
```

docker-compose.yml
```
services:
openhabittracker:
image: jinjinov/openhabittracker:latest
ports:
- "5000:8080"
environment:
- AppSettings__UserName=${APPSETTINGS_USERNAME}
- AppSettings__Email=${APPSETTINGS_EMAIL}
- AppSettings__Password=${APPSETTINGS_PASSWORD}
- AppSettings__JwtSecret=${APPSETTINGS_JWT_SECRET}
volumes:
- ./.OpenHabitTracker:/app/.OpenHabitTracker
```

After you login at http://localhost:5000/login you can use the same browser tab to access:
- logs: http://localhost:5000/watchdog
- OpenAPI json: http://localhost:5000/openapi/v1.json
- OpenAPI UI: http://localhost:5000/scalar/v1

## Made with:

* [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor)
* [Bootstrap](https://getbootstrap.com)
* [Bootswatch](https://bootswatch.com)
* [CsvHelper](https://joshclose.github.io/CsvHelper)
* [DnetIndexedDb](https://github.com/amuste/DnetIndexedDb)
* [Markdig](https://github.com/xoofx/markdig)
* [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2)
* [YamlDotNet](https://aaubry.net/pages/yamldotnet.html)

## Runs with:

* [Blazor WASM](https://learn.microsoft.com/en-us/aspnet/core/blazor)
* [Blazor Server](https://learn.microsoft.com/en-us/aspnet/core/blazor)
* [MAUI](https://learn.microsoft.com/en-us/dotnet/maui)
* [Photino.Blazor](https://github.com/tryphotino/photino.Blazor)
* [WinForms](https://learn.microsoft.com/en-us/dotnet/desktop/winforms)
* [Wpf](https://learn.microsoft.com/en-us/dotnet/desktop/wpf)

## Desktop screenshots:

[![](OpenHabitTracker.Web/images/desktop_1_settings.png)](OpenHabitTracker.Web/images/desktop_1_settings.png)
[![](OpenHabitTracker.Web/images/desktop_2_note.png)](OpenHabitTracker.Web/images/desktop_2_note.png)
[![](OpenHabitTracker.Web/images/desktop_3_notes.png)](OpenHabitTracker.Web/images/desktop_3_notes.png)
[![](OpenHabitTracker.Web/images/desktop_4_task.png)](OpenHabitTracker.Web/images/desktop_4_task.png)
[![](OpenHabitTracker.Web/images/desktop_5_tasks.png)](OpenHabitTracker.Web/images/desktop_5_tasks.png)
[![](OpenHabitTracker.Web/images/desktop_6_habit.png)](OpenHabitTracker.Web/images/desktop_6_habit.png)
[![](OpenHabitTracker.Web/images/desktop_7_habits.png)](OpenHabitTracker.Web/images/desktop_7_habits.png)
[![](OpenHabitTracker.Web/images/desktop_8_backup.png)](OpenHabitTracker.Web/images/desktop_8_backup.png)

## Phone screenshots:

[![](OpenHabitTracker.Web/images/phone_1_empty.png)](OpenHabitTracker.Web/images/phone_1_empty.png)
[![](OpenHabitTracker.Web/images/phone_2_notes.png)](OpenHabitTracker.Web/images/phone_2_notes.png)
[![](OpenHabitTracker.Web/images/phone_3_markdown.png)](OpenHabitTracker.Web/images/phone_3_markdown.png)
[![](OpenHabitTracker.Web/images/phone_4_task.png)](OpenHabitTracker.Web/images/phone_4_task.png)
[![](OpenHabitTracker.Web/images/phone_5_habit.png)](OpenHabitTracker.Web/images/phone_5_habit.png)
[![](OpenHabitTracker.Web/images/phone_6_search.png)](OpenHabitTracker.Web/images/phone_6_search.png)
[![](OpenHabitTracker.Web/images/phone_7_settings.png)](OpenHabitTracker.Web/images/phone_7_settings.png)
[![](OpenHabitTracker.Web/images/phone_8_backup.png)](OpenHabitTracker.Web/images/phone_8_backup.png)