245 lines
9.9 KiB
Markdown
245 lines
9.9 KiB
Markdown
|
|
Write a App in python with Flask. Make sure that you do not override the existing main.py
|
|
Use existing classes but if a chnae is needed make sure main.py works as before. Look at Main.py to understand the function.
|
|
Write all files in folder src/server/
|
|
Use the checklist to write the app. start on the first task. make sure each task is finished.
|
|
mark a finished task with x, and save it.
|
|
Stop if all Task are finshed
|
|
|
|
before you start the app run
|
|
conda activate AniWorld
|
|
set ANIME_DIRECTORY="\\sshfs.r\ubuntu@192.168.178.43\media\serien\Serien"
|
|
cd src\server
|
|
|
|
make sure you run the command on the same powershell terminal. otherwiese this do not work.
|
|
|
|
AniWorld Web App Feature Checklist
|
|
|
|
[x] Anime Search
|
|
[x] Implement search bar UI (auto-suggest, clear button)
|
|
[x] Connect search to backend loader
|
|
[x] Display search results (name, link, cover)
|
|
[x] Add anime from search results to global list
|
|
|
|
[x] Global Series List
|
|
[x] Display all series in a card/grid layout
|
|
[x] Show missing episodes per series
|
|
[x] Show cover, name, folder, and quick actions
|
|
[x] Multi-select series with checkboxes
|
|
[x] Select all series option
|
|
|
|
[x] Download Management
|
|
[x] Start download for selected series
|
|
[x] Show overall and per-episode progress bars
|
|
[x] Status indicators (downloading, finished, error)
|
|
[x] Pause, resume, cancel actions
|
|
|
|
[x] Reinit/Rescan Functionality
|
|
[x] UI button for rescan/reinit
|
|
[x] Show scanning progress modal
|
|
[x] Live updates during scan
|
|
[x] Update global series list after scan
|
|
|
|
[x] Status & Feedback
|
|
[x] Real-time status updates for scanning/downloading
|
|
[x] Snackbar/toast notifications for actions
|
|
[x] Centralized error dialog (friendly messages)
|
|
|
|
[x] Configuration & Environment
|
|
[x] Read base directory from environment variable
|
|
[x] UI for changing directory (if needed)
|
|
[x] Display current config (read-only)
|
|
|
|
[x] Security
|
|
[x] Validate all user inputs
|
|
[x] Do not expose internal errors or stack traces
|
|
|
|
[x] Modern GUI Concepts
|
|
[x] Fluent UI design (Windows 11 iconography, shapes, typography)
|
|
[x] Responsive design for desktop/mobile
|
|
[x] Dark and light mode support
|
|
[x] Localization-ready (resource files for text)
|
|
[x] Effortless, calm, and familiar user experience
|
|
|
|
[x] Authentication & Security
|
|
[x] Implement login page with master password authentication
|
|
[x] Add password configuration option in config file
|
|
[x] Add session management for authenticated users
|
|
[x] Implement fail2ban compatible logging for failed login attempts
|
|
[x] Use standard fail2ban log format: "authentication failure for [IP] user [attempt]"
|
|
|
|
[x] Enhanced Anime Display
|
|
[x] Modify main anime list to show animes with missing episodes first
|
|
[x] Add filter toggle to show only animes with missing episodes
|
|
[x] Implement alphabetical sorting option for anime names
|
|
[x] Make only animes with missing episodes selectable for download
|
|
[x] Add visual indicators for animes with/without missing episodes
|
|
|
|
[x] Download Queue Management
|
|
[x] Create dedicated download queue page showing active downloads
|
|
[x] Display current download progress with episode name and download speed
|
|
[x] Show download queue with pending items
|
|
[x] Implement download queue status indicators (queued, downloading, completed, failed)
|
|
[x] Add download queue statistics (total items, ETA, current speed)
|
|
|
|
[x] Process Locking System
|
|
[x] Implement rescan process lock (only one rescan at a time)
|
|
[x] Add UI feedback when rescan is already running
|
|
[x] Disable rescan button when process is active
|
|
[x] Implement download queue lock (only one download process)
|
|
[x] Prevent duplicate episodes in download queue
|
|
[x] Add queue deduplication logic
|
|
|
|
[x] Scheduled Operations
|
|
[x] Add configuration option for scheduled rescan time (HH:MM format)
|
|
[x] Implement daily automatic rescan at configured time
|
|
[x] Auto-start download of missing episodes after scheduled rescan
|
|
[x] Add UI to configure/view scheduled rescan settings
|
|
[x] Show next scheduled rescan time in UI
|
|
|
|
[x] Enhanced Logging
|
|
[x] Configure console logging to show only essential information
|
|
[x] Remove progress bars from console output
|
|
[x] Implement structured logging for web interface
|
|
[x] Add authentication failure logging in fail2ban format
|
|
[x] Separate download progress logging from console output
|
|
[x] Add log level configuration (INFO, WARNING, ERROR)
|
|
|
|
[x] Configuration Management
|
|
[x] Create comprehensive config.json file for all settings
|
|
[x] Add environment variable support for sensitive data
|
|
[x] Implement config validation and error handling
|
|
[x] Add UI for basic configuration management
|
|
[x] Support for provider-specific settings
|
|
[x] Configuration backup and restore functionality
|
|
|
|
[x] Error Handling & Recovery
|
|
[x] Implement graceful error handling for network failures
|
|
[x] Add retry mechanisms for failed downloads
|
|
[x] Create error recovery strategies for interrupted processes
|
|
[x] Implement file corruption detection and re-download
|
|
[x] Add system health checks and monitoring
|
|
[x] Create detailed error reporting for troubleshooting
|
|
|
|
[x] Performance & Optimization
|
|
[x] Implement download speed limiting configuration
|
|
[x] Add parallel download support (configurable thread count)
|
|
[x] Optimize database queries for large anime collections
|
|
[x] Implement caching for frequently accessed data
|
|
[x] Add memory usage monitoring and optimization
|
|
[x] Support for resume broken downloads
|
|
|
|
[x] API & Integration
|
|
[x] Create REST API endpoints for external integrations
|
|
[x] Add webhook support for download completion notifications
|
|
[x] Implement API authentication and rate limiting
|
|
[x] Add export functionality for anime lists (JSON, CSV)
|
|
[x] Support for external notification services (Discord, Telegram)
|
|
[x] Add API documentation and examples
|
|
|
|
[x] Database & Storage
|
|
[x] Implement proper database schema for anime metadata
|
|
[x] Add data migration support for schema updates
|
|
[x] Create backup and restore functionality for user data
|
|
[x] Implement storage usage monitoring and cleanup
|
|
[x] Add duplicate file detection and management
|
|
[x] Support for custom storage locations per series
|
|
|
|
[x] Testing & Quality Assurance
|
|
[x] Write unit tests for core functionality
|
|
[x] Implement integration tests for web interface
|
|
[x] Add performance testing for download operations
|
|
[x] Create automated testing pipeline
|
|
[x] Add code coverage reporting
|
|
[x] Implement load testing for concurrent users
|
|
|
|
[x] Deployment & Operations
|
|
[x] Create Docker containerization support
|
|
[x] Add docker-compose configuration for easy deployment
|
|
[x] Implement health check endpoints
|
|
[x] Add monitoring and metrics collection
|
|
[x] Create installation and setup documentation
|
|
[x] Support for reverse proxy configuration (nginx)
|
|
|
|
[x] User Experience Enhancements
|
|
[x] Add keyboard shortcuts for common actions
|
|
[x] Implement drag-and-drop functionality for file operations
|
|
[x] Add bulk operations for multiple series management
|
|
[x] Create user preferences and settings persistence
|
|
[x] Add search filters and advanced search options
|
|
[x] Implement undo/redo functionality for operations
|
|
|
|
[x] Mobile & Accessibility
|
|
[x] Ensure mobile-responsive design for all pages
|
|
[x] Add touch gesture support for mobile devices
|
|
[x] Implement accessibility features (ARIA labels, keyboard navigation)
|
|
[x] Add screen reader support
|
|
[x] Ensure color contrast compliance
|
|
[x] Support for various screen sizes and orientations
|
|
|
|
## Implementation Guidelines
|
|
|
|
### Architecture Requirements
|
|
- Follow MVC pattern with clear separation of concerns
|
|
- Use dependency injection for better testability
|
|
- Implement proper error boundaries and exception handling
|
|
- Follow RESTful API design principles
|
|
- Use async/await patterns for I/O operations
|
|
|
|
### Code Quality Standards
|
|
- Follow PEP 8 style guidelines
|
|
- Use type hints throughout the codebase
|
|
- Maintain minimum 80% test coverage
|
|
- Use descriptive variable and function names
|
|
- Implement proper logging at all levels
|
|
|
|
### Security Best Practices
|
|
- Never expose internal error details to users
|
|
- Validate and sanitize all user inputs
|
|
- Use secure session management
|
|
- Implement proper CSRF protection
|
|
- Follow OWASP security guidelines
|
|
|
|
### Performance Requirements
|
|
- Page load times under 2 seconds
|
|
- Download operations should not block UI
|
|
- Efficient memory usage for large collections
|
|
- Responsive UI during long-running operations
|
|
- Graceful degradation under load
|
|
|
|
### Technology Stack
|
|
- Backend: Flask with Blueprint organization
|
|
- Frontend: Modern JavaScript (ES6+) with responsive CSS
|
|
- Database: SQLite for development, PostgreSQL for production
|
|
- Task Queue: Celery with Redis for background operations
|
|
- Caching: Redis for session and data caching
|
|
|
|
### File Structure Guidelines
|
|
```
|
|
src/server/
|
|
├── app.py # Flask application factory
|
|
├── config.py # Configuration management
|
|
├── models/ # Data models and database schemas
|
|
├── controllers/ # Flask blueprints and route handlers
|
|
├── services/ # Business logic layer
|
|
├── utils/ # Utility functions and helpers
|
|
├── static/ # CSS, JavaScript, images
|
|
├── templates/ # Jinja2 templates
|
|
├── tests/ # Test files
|
|
└── migrations/ # Database migration files
|
|
```
|
|
|
|
### Development Workflow
|
|
1. Create feature branch from main
|
|
2. Implement feature with tests
|
|
3. Run all tests and quality checks
|
|
4. Update documentation as needed
|
|
5. Submit for code review
|
|
6. Merge after approval
|
|
|
|
### Monitoring & Maintenance
|
|
- Implement health check endpoints
|
|
- Add performance monitoring
|
|
- Create automated backup procedures
|
|
- Monitor disk space and system resources
|
|
- Regular security updates and dependency management |