50 lines
2.3 KiB
Markdown
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
|