Android client for Fizzy - the card-based project management tool from 37signals
Find a file
Paweł Orzech 6c0b502630
Add missing NOT NOW and DONE swimlanes to Kanban view
- Add indexed_by parameter to FizzyApiService.getCards() to fetch cards
  by status (all, closed, not_now)
- Modify CardRepositoryImpl to fetch all card states in parallel and
  combine results
- Update KanbanViewModel.distributeCardsToColumns() to create virtual
  swimlanes for NOT NOW, Triage, and DONE - always visible
- Add distinct styling for virtual swimlanes in KanbanScreen:
  - NOT NOW: purple color, Schedule icon
  - Triage: orange color, Inbox icon
  - DONE: green color, CheckCircle icon
- Hide Edit/Delete menu and Add Card button for virtual columns
2026-01-19 09:30:18 +00:00
app Add missing NOT NOW and DONE swimlanes to Kanban view 2026-01-19 09:30:18 +00:00
gradle/wrapper Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
.gitattributes Initial commit 2026-01-18 22:08:41 +00:00
.gitignore Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
build.gradle.kts Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
gradle.properties Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
gradlew Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
LICENSE Initial commit 2026-01-18 22:08:41 +00:00
README.md Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00
settings.gradle.kts Fix Fizzy API integration to match official documentation 2026-01-19 08:48:46 +00:00

Fuzzel

Fuzzel is an Android client for Fizzy, the card-based project management tool from 37signals.

Building

./gradlew assembleDebug

Architecture

The app follows Clean Architecture with the following layers:

  • Domain - Business logic, models, and repository interfaces
  • Data - API services, DTOs, and repository implementations
  • Presentation - ViewModels and Compose UI

API Integration

The app integrates with the Fizzy API using the following key endpoints:

Authentication

  • POST /session - Request magic link
  • POST /session/magic_link - Verify magic link code
  • Personal Access Token support via GET /my/identity.json

Resources

  • Boards: CRUD operations at /boards
  • Cards: Operations use card number (not ID) at /cards/{cardNumber}
  • Card Actions: Separate endpoints for close (/closure), triage (/triage), priority (/goldness), watch (/watch)
  • Tags: Account-level tags at /tags, card taggings at /cards/{cardNumber}/taggings
  • Comments: Nested under cards at /cards/{cardNumber}/comments
  • Steps: Nested under cards at /cards/{cardNumber}/steps
  • Notifications: Mark read via POST /notifications/{id}/reading

Tech Stack

  • Kotlin
  • Jetpack Compose
  • Hilt (DI)
  • Retrofit + Moshi
  • Coroutines + Flow