Fuzzel/README.md
Paweł Orzech 101bf72250 Fix Fizzy API integration to match official documentation
- Update auth endpoints: POST /session and /session/magic_link
- Use card number (Int) instead of card ID in API paths
- Add separate card action endpoints: closure, triage, goldness, watch
- Implement wrapped request objects for all create/update operations
- Move tags to account level (GET /tags)
- Update notification endpoints to use /reading suffix
- Change HTTP methods from PATCH to PUT for updates
- Update all DTOs with correct field names and structures
- Update repository implementations for new API structure
2026-01-19 08:48:46 +00:00

1.3 KiB

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