https://github.com/acupofjose/supasharp-todo
A Things 3 inspired Todo Application built leveraging Supabase C# and Blazor/Maui
https://github.com/acupofjose/supasharp-todo
example-app example-project postgrest supabase supabase-cs things3 todoapp
Last synced: 20 days ago
JSON representation
A Things 3 inspired Todo Application built leveraging Supabase C# and Blazor/Maui
- Host: GitHub
- URL: https://github.com/acupofjose/supasharp-todo
- Owner: acupofjose
- Created: 2023-09-04T15:35:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-16T14:43:30.000Z (over 1 year ago)
- Last Synced: 2025-03-27T22:12:45.010Z (about 1 month ago)
- Topics: example-app, example-project, postgrest, supabase, supabase-cs, things3, todoapp
- Language: CSS
- Homepage: https://todo.acupofjose.com/
- Size: 31.2 MB
- Stars: 15
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
A Blazor WASM implementation of a Things3 inspired todo list showcasing Supabase C# features.
![]()
A [live version of this project](https://todo.acupofjose.com) is hosted through Github Pages.
---
## Current Project State
- [x] Authentication using 3rd Party Providers (Github)
- [x] Realtime, Responsive Models
- [ ] (In Progress) Offline Support
- [ ] Store application state offline (cross platform)
- [ ] Sync application state after returning online
- [x] Responsive Routing
- [x] Keyboard Shortcuts
- [ ] Gesture Support
- [ ] Drag-and-drop Support
- [x] Light Mode / Dark Mode
- [ ] Todos
- [x] Create, Update, Trash, and Delete Todos
- [ ] Views for different Todo States
- [x] Inbox
- [ ] Today
- [ ] Upcoming
- [x] Trash
- [x] Set a Due Time / Due At
- [ ] Add/Remove todo from a list
- [ ] Add/Remove labels from a todo
- [ ] Reorder Todos using Drag and drop## Integration with Supabase
Most of the code, where possible, has been placed into the [SupasharpTodo.Shared project](/SupasharpTodo.Shared/) and leverages Dependency Injection to handle cross-platform implementations.
The interfaces are specified in [SupasharpTodo.Shared.Interfaces](/SupasharpTodo.Shared/Interfaces/).
What will likely interest most developers using this repo as an example of Supabase's features are the files found in:
- [ServiceCollectionExtensions.cs](/SupasharpTodo.Shared/Extensions/ServiceCollectionExtensions.cs) - handles registering Supabase in the App Builder.
- [SupabaseAuthenticationStateProvider.cs](/SupasharpTodo.Shared/Providers/SupabaseAuthenticationStateProvider.cs) - registers with Blazor's built-in authentication
- [SupabaseSessionProvider.cs](/SupasharpTodo.Shared/Providers/SupabaseSessionProvider.cs) - handles storing the session locally (platform dependent)## For Developers
This project is built using Tailwind as the CSS framework, which requires compiling on a css change. The fastest way to develop is within the `SupasharpTodo.BlazorWASM` project.
You'll need to do an `npm install` in the root of the project to install Tailwind and its dependencies.
Two commands need to be running simultaneously for development:
```bash
# Either using `concurrently`
npm run dev:wasm# Or in separate terminals...
# In root of repo
npm run dev:tailwind:wasm# In `SupasharpTodo.BlazorWASM`
dotnet watch
```