# AniWorld - Anime Download and Management System A comprehensive anime download and management system with web interface and CLI support. ## Project Structure This project follows Clean Architecture principles with clear separation of concerns: ### Core (`src/server/core/`) - **entities/**: Domain entities (Series, Episodes, etc.) - **interfaces/**: Domain interfaces and contracts - **use_cases/**: Business use cases and logic - **exceptions/**: Domain-specific exceptions ### Infrastructure (`src/server/infrastructure/`) - **database/**: Database layer and repositories - **providers/**: Anime and streaming providers - **file_system/**: File system operations - **external/**: External integrations - **caching/**: Caching implementations - **logging/**: Logging infrastructure ### Application (`src/server/application/`) - **services/**: Application services - **dto/**: Data Transfer Objects - **validators/**: Input validation - **mappers/**: Data mapping ### Web (`src/server/web/`) - **controllers/**: Flask blueprints and API endpoints - **middleware/**: Web middleware - **templates/**: Jinja2 templates - **static/**: CSS, JavaScript, and images ### Shared (`src/server/shared/`) - **constants/**: Application constants - **utils/**: Utility functions - **decorators/**: Custom decorators - **middleware/**: Shared middleware ## Quick Start 1. **Setup Environment:** ```bash conda activate AniWorld set ANIME_DIRECTORY="\\sshfs.r\ubuntu@192.168.178.43\media\serien\Serien" cd src\server ``` 2. **Run the Web Application:** ```bash python app.py ``` 3. **Run CLI Commands:** ```bash cd src python main.py ``` ## Development - **Documentation**: See `docs/` directory - **Tests**: See `tests/` directory - **Configuration**: See `config/` directory - **Data**: Application data in `data/` directory ## Architecture The application uses Clean Architecture with dependency injection and clear layer boundaries. Each layer has specific responsibilities and depends only on inner layers.