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

2.3 KiB

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