# Aniworld Web Application Features

## Recent Updates

### Enhanced Setup and Settings Pages (Latest)

The application now features a comprehensive configuration system that allows users to configure all settings during initial setup or modify them later through the settings modal:

**Setup Page Enhancements:**

- Single-page setup with all configuration options organized into clear sections
- Real-time password strength indicator for security
- Form validation with helpful error messages
- Comprehensive settings including: general, security, scheduler, logging, backup, and NFO metadata

**Settings Modal Enhancements:**

- All configuration fields are now editable through the main application's config modal
- Organized into logical sections with clear labels and help text
- Real-time saving with immediate feedback
- Configuration validation to prevent invalid settings
- Full control over cron-based scheduler (time, days of week, auto-download), logging options, and backup settings

---

## Authentication & Security

- **Master Password Login**: Secure access to the application with a master password system
- **JWT Token Sessions**: Stateless authentication with JSON Web Tokens
- **Rate Limiting**: Built-in protection against brute force attacks

## Configuration Management

- **Enhanced Setup Page**: Comprehensive initial configuration interface with all settings in one place:
    - General Settings: Application name and data directory configuration
    - Security Settings: Master password setup with strength indicator
    - Anime Directory: Primary directory path for anime storage
    - Scheduler Settings: Enable/disable scheduler, configure daily run time, select days of week, and optionally auto-download missing episodes after rescan
    - Logging Settings: Configure log level, file path, file size limits, and backup count
    - Backup Settings: Enable automatic backups with configurable path and retention period
    - NFO Settings: TMDB API key, auto-creation options, and media file download preferences
- **Enhanced Settings/Config Modal**: Comprehensive configuration interface accessible from main page:
    - General Settings: Edit application name and data directory
    - Anime Directory: Modify anime storage location with browse functionality
    - Scheduler Configuration: Enable/disable, set cron run time (`HH:MM`), select active days of the week, and toggle auto-download after rescan
    - Logging Configuration: Full control over logging level, file rotation, and backup count
    - Backup Configuration: Configure automatic backup settings including path and retention
    - NFO Settings: Complete control over TMDB integration and media file downloads
    - Configuration Validation: Validate configuration for errors before saving
    - Backup Management: Create, restore, and manage configuration backups
    - Export/Import: Export configuration for backup or transfer to another instance

## User Interface

- **Dark Mode**: Toggle between light and dark themes for better user experience
- **Responsive Design**: Mobile-friendly interface with touch support
- **Real-time Updates**: WebSocket-based live notifications and progress tracking

## Anime Management

- **Anime Library Page**: Display list of anime series with missing episodes
- **Library Filters**:
    - "Missing Episodes Only" (shows only series with missing episodes, including series that currently have no downloaded episodes)
    - "No Episodes" (shows series that are present in the library but have zero downloaded episodes)
    - "Show All Series" (overrides other filters to show every series)
- **Database-Backed Series Storage**: All series metadata and missing episodes stored in SQLite database
- **Automatic Database Synchronization**: Series loaded from database on startup, stays in sync with filesystem
- **Series Selection**: Select individual anime series and add episodes to download queue
- **Anime Search**: Search for anime series using integrated providers
- **Library Scanning**: Automated scanning for missing episodes with database persistence
- **Episode Tracking**: Missing episodes tracked in database, automatically updated during scans
- **NFO Status Indicators**: Visual badges showing NFO and media file status for each series

## NFO Metadata Management

- **TMDB Integration**: Automatic metadata fetching from The Movie Database (TMDB)
- **Auto-Create NFO Files**: Automatically generate tvshow.nfo files during downloads
- **Media File Downloads**: Automatic download of poster.jpg, logo.png, and fanart.jpg
- **NFO Status Tracking**: Database tracking of NFO creation and update timestamps
- **Manual NFO Creation**: Create NFO files and download media for existing anime
- **NFO Updates**: Update existing NFO files with latest TMDB metadata
- **Batch Operations**: Create NFO files for multiple anime at once
- **NFO Content Viewing**: View generated NFO file content in the UI
- **Media Server Compatibility**: Kodi, Plex, Jellyfin, and Emby compatible format
- **Configuration Options**: Customize which media files to download and image quality

## Download Management

- **Download Queue Page**: View and manage the current download queue with organized sections
- **Queue Organization**: Displays downloads organized by status (pending, active, completed, failed)
- **NFO Integration**: Automatic NFO and media file creation before episode downloads
- **Manual Start/Stop Control**: User manually starts downloads one at a time with Start/Stop buttons
- **FIFO Queue Processing**: First-in, first-out queue order (no priority or reordering)
- **Single Download Mode**: Only one download active at a time, new downloads must be manually started
- **Download Status Display**: Real-time status updates and progress of current download
- **Queue Operations**: Add and remove items from the pending queue
- **Completed Downloads List**: Separate section for completed downloads with clear button
- **Failed Downloads List**: Separate section for failed downloads with retry and clear options
- **Retry Failed Downloads**: Automatically retry failed downloads with configurable limits
- **Clear Completed**: Remove completed downloads from the queue
- **Clear Failed**: Remove failed downloads from the queue
- **Queue Statistics**: Real-time counters for pending, active, completed, and failed items

## Real-time Communication

- **WebSocket Support**: Real-time notifications for download progress and queue updates
- **Progress Tracking**: Live progress updates for downloads and scans
- **System Notifications**: Real-time system messages and alerts

## Core Functionality Overview

The web application provides a complete interface for managing anime downloads with user-friendly pages for configuration, library management, search capabilities, and download monitoring. All operations are tracked in real-time with comprehensive progress reporting and error handling.

**NFO Metadata Features**: The application now includes full support for generating Kodi/Plex/Jellyfin/Emby compatible metadata files (tvshow.nfo) with automatic TMDB integration. NFO files are created automatically during downloads or can be managed manually through the UI. The system tracks NFO status in the database and provides comprehensive API endpoints for programmatic access. Media files (poster, logo, fanart) are automatically downloaded based on configuration settings.
