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.
- Host: GitHub
- URL: https://github.com/jinjinov/openhabittracker
- Owner: Jinjinov
- License: gpl-3.0
- Created: 2023-11-14T20:21:27.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-28T20:01:08.000Z (3 months ago)
- Last Synced: 2025-03-28T20:23:43.520Z (3 months ago)
- Topics: 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
- Language: C#
- Homepage: https://openhabittracker.net
- Size: 5.35 MB
- Stars: 155
- Watchers: 4
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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, SlovenianKey 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_2_note.png)
[](OpenHabitTracker.Web/images/desktop_3_notes.png)
[](OpenHabitTracker.Web/images/desktop_4_task.png)
[](OpenHabitTracker.Web/images/desktop_5_tasks.png)
[](OpenHabitTracker.Web/images/desktop_6_habit.png)
[](OpenHabitTracker.Web/images/desktop_7_habits.png)
[](OpenHabitTracker.Web/images/desktop_8_backup.png)## Phone screenshots:
[](OpenHabitTracker.Web/images/phone_1_empty.png)
[](OpenHabitTracker.Web/images/phone_2_notes.png)
[](OpenHabitTracker.Web/images/phone_3_markdown.png)
[](OpenHabitTracker.Web/images/phone_4_task.png)
[](OpenHabitTracker.Web/images/phone_5_habit.png)
[](OpenHabitTracker.Web/images/phone_6_search.png)
[](OpenHabitTracker.Web/images/phone_7_settings.png)
[](OpenHabitTracker.Web/images/phone_8_backup.png)