worldhopper/.serena/memories/project_overview.md
2026-01-27 00:56:46 +01:00

50 lines
2.3 KiB
Markdown

# Worldhopper Project Overview
## Purpose
An Android application to read OPDS-PS feeds (Open Publication Distribution System - Publication Server). The app allows users to:
- Browse and connect to OPDS catalog servers
- View publication feeds and details
- Download and read EPUB publications
- Track reading progress across devices
## Tech Stack
- **Framework**: Flutter (Dart SDK ^3.5.1)
- **State Management**: Riverpod (flutter_riverpod ^2.5.1)
- **Routing**: GoRouter (^14.0.0)
- **HTTP Client**: Dio (^5.4.0) with authentication support
- **Database**: SQLite via sqflite (^2.3.2)
- **XML Parsing**: xml package (^6.5.0) for OPDS feed parsing
- **EPUB Reader**: flutter_epub_viewer (^1.2.2) - Epub.js with WebView integration
- **Image Loading**: cached_network_image (^3.3.1) with flutter_cache_manager
- **Models**: Freezed (^2.4.7) for immutable data classes
- **UI**: Material Design 3 with theme support
- **Target Platforms**: Android (primary), with support for iOS, web, macOS, Windows, and Linux
## Key Features
- **OPDS Server Management**: Add, edit, and manage multiple OPDS catalog servers with authentication
- **Feed Browsing**: Navigate through OPDS feeds (navigation and acquisition feeds)
- **Publication Details**: View detailed information about publications
- **EPUB Reading**: Integrated EPUB reader with reading progress tracking
- **Reading Progress**: Persistent reading progress stored in local SQLite database
- **Image Caching**: Efficient image loading and caching for cover images
- **Authentication**: Support for HTTP basic auth and other authentication methods
## Project Status
Active development with core features implemented:
- ✅ OPDS feed parsing and navigation
- ✅ Server management with authentication
- ✅ SQLite database for servers and reading progress
- ✅ EPUB reader integration
- ✅ Material Design 3 theming
- ✅ Routing with GoRouter
- ✅ State management with Riverpod
## Architecture
- **Clean Architecture**: Separation of concerns with models, services, repositories, and providers
- **State Management**: Riverpod with code generation for type-safe providers
- **Data Layer**: SQLite database with structured tables and repositories
- **Service Layer**: Dedicated services for OPDS operations, authentication, and EPUB handling
- **UI Layer**: Screen-based navigation with reusable widgets
## Version
1.0.0+1