Aniworld/docs/README.md
Lukas 36acd3999e Complete Phase 9: Final validation for identifier standardization
- Fix search API key extraction from link slugs
- All 1006 tests pass
- All 19 performance tests pass
- Manual end-to-end testing verified
- Key lookup performance: O(1) ~0.11μs per lookup

Phase 9 tasks completed:
- Task 9.1: Full test suite validation
- Task 9.2: Manual end-to-end testing
- Task 9.3: Performance testing

All identifier standardization phases (1-9) now complete.
2025-11-28 18:46:35 +01:00

346 lines
8.5 KiB
Markdown

# Aniworld Documentation
Complete documentation for the Aniworld Download Manager application.
## Quick Start
- **New Users**: Start with [User Guide](./user_guide.md)
- **Developers**: Check [API Reference](./api_reference.md)
- **System Admins**: See [Deployment Guide](./deployment.md)
- **Interactive Docs**: Visit `http://localhost:8000/api/docs`
## Documentation Structure
### 📖 User Guide (`user_guide.md`)
Complete guide for end users covering:
- Installation instructions
- Initial setup and configuration
- User interface walkthrough
- Managing anime library
- Download queue management
- Configuration and settings
- Troubleshooting common issues
- Keyboard shortcuts
- Frequently asked questions (FAQ)
**Best for**: Anyone using the Aniworld application
### 🔌 API Reference (`api_reference.md`)
Detailed API documentation including:
- Authentication and authorization
- Error handling and status codes
- All REST endpoints with examples
- WebSocket real-time updates
- Request/response formats
- Rate limiting and pagination
- Complete workflow examples
- API changelog
**Best for**: Developers integrating with the API
### 🚀 Deployment Guide (`deployment.md`)
Production deployment instructions covering:
- System requirements
- Pre-deployment checklist
- Local development setup
- Production deployment steps
- Docker and Docker Compose setup
- Nginx reverse proxy configuration
- SSL/TLS certificate setup
- Database configuration (SQLite and PostgreSQL)
- Security best practices
- Monitoring and maintenance
- Troubleshooting deployment issues
**Best for**: System administrators and DevOps engineers
## Key Features Documented
### Authentication
- Master password setup and login
- JWT token management
- Session handling
- Security best practices
### Configuration Management
- Application settings
- Directory configuration
- Backup and restore functionality
- Environment variables
### Anime Management
- Browsing anime library
- Adding new anime
- Managing episodes
- Search functionality
### Download Management
- Queue operations
- Priority management
- Progress tracking
- Error recovery
### Real-time Features
- WebSocket connections
- Live download updates
- Status notifications
- Error alerts
## Series Identifier Convention
### Understanding Series Identifiers
The application uses two identifiers for anime series:
| Identifier | Purpose | Example | Used For |
| ---------- | ------------------------ | -------------------------- | ---------------- |
| `key` | **Primary identifier** | `"attack-on-titan"` | All API lookups |
| `folder` | Filesystem metadata only | `"Attack on Titan (2013)"` | Display purposes |
### Key Format
- Lowercase letters and numbers only
- Words separated by hyphens (`-`)
- No spaces, underscores, or uppercase letters
- Examples: `"one-piece"`, `"86-eighty-six"`, `"re-zero"`
### Usage Guidelines
```python
# ✅ Correct: Use 'key' for API operations
GET /api/anime/attack-on-titan
POST /api/queue/add {"serie_id": "attack-on-titan", ...}
# ❌ Deprecated: Folder-based lookups (backward compatibility only)
GET /api/anime/Attack%20on%20Titan%20(2013) # Will work but deprecated
```
### Backward Compatibility
For existing integrations, folder-based lookups are still supported but deprecated:
- API endpoints check `key` first, then fall back to `folder`
- New code should always use `key` as the identifier
- Deprecation warnings will be added in future versions
## Documentation Examples
### API Usage Example
```bash
# Setup
curl -X POST http://localhost:8000/api/auth/setup \
-H "Content-Type: application/json" \
-d '{"master_password": "secure_pass"}'
# Login
TOKEN=$(curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"password": "secure_pass"}' | jq -r '.token')
# List anime
curl http://localhost:8000/api/v1/anime \
-H "Authorization: Bearer $TOKEN"
```
### Deployment Example
```bash
# Clone and setup
git clone https://github.com/your-repo/aniworld.git
cd aniworld
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run application
python -m uvicorn src.server.fastapi_app:app --host 127.0.0.1 --port 8000
```
## Interactive Documentation
Access interactive API documentation at:
- **Swagger UI**: `http://localhost:8000/api/docs`
- **ReDoc**: `http://localhost:8000/api/redoc`
- **OpenAPI JSON**: `http://localhost:8000/openapi.json`
These provide:
- Interactive API explorer
- Try-it-out functionality
- Request/response examples
- Schema validation
## Common Tasks
### I want to...
**Use the application**
→ Read [User Guide](./user_guide.md) → Getting Started section
**Set up on my computer**
→ Read [User Guide](./user_guide.md) → Installation section
**Deploy to production**
→ Read [Deployment Guide](./deployment.md) → Production Deployment
**Use the API**
→ Read [API Reference](./api_reference.md) → API Endpoints section
**Troubleshoot problems**
→ Read [User Guide](./user_guide.md) → Troubleshooting section
**Set up with Docker**
→ Read [Deployment Guide](./deployment.md) → Docker Deployment
**Configure backup/restore**
→ Read [User Guide](./user_guide.md) → Configuration section
**Debug API issues**
→ Check [API Reference](./api_reference.md) → Error Handling section
## Documentation Standards
All documentation follows these standards:
### Structure
- Clear table of contents
- Logical section ordering
- Cross-references to related topics
- Code examples where appropriate
### Style
- Plain, accessible language
- Step-by-step instructions
- Visual formatting (code blocks, tables, lists)
- Examples for common scenarios
### Completeness
- All major features covered
- Edge cases documented
- Troubleshooting guidance
- FAQ section included
### Maintenance
- Version number tracking
- Last updated timestamp
- Changelog for updates
- Broken link checking
## Help & Support
### Getting Help
1. **Check Documentation First**
- Search in relevant guide
- Check FAQ section
- Look for similar examples
2. **Check Logs**
- Application logs in `/logs/`
- Browser console (F12)
- System logs
3. **Try Troubleshooting**
- Follow troubleshooting steps in user guide
- Check known issues section
- Verify system requirements
4. **Get Community Help**
- GitHub Issues
- Discussion Forums
- Community Discord
5. **Report Issues**
- File GitHub issue
- Include logs and error messages
- Describe reproduction steps
- Specify system details
### Feedback
We welcome feedback on documentation:
- Unclear sections
- Missing information
- Incorrect instructions
- Outdated content
- Suggest improvements
File documentation issues on GitHub with label `documentation`.
## Contributing to Documentation
Documentation improvements are welcome! To contribute:
1. Fork the repository
2. Edit documentation files
3. Test changes locally
4. Submit pull request
5. Include summary of changes
See `CONTRIBUTING.md` for guidelines.
## Documentation Map
```
docs/
├── README.md # This file
├── user_guide.md # End-user documentation
├── api_reference.md # API documentation
├── deployment.md # Deployment instructions
└── CONTRIBUTING.md # Contribution guidelines
```
## Related Resources
- **Source Code**: GitHub repository
- **Interactive API**: `http://localhost:8000/api/docs`
- **Issue Tracker**: GitHub Issues
- **Releases**: GitHub Releases
- **License**: See LICENSE file
## Document Info
- **Last Updated**: November 28, 2025
- **Version**: 2.0.0
- **Status**: Production Ready
- **Maintainers**: Development Team
---
## Quick Links
| Resource | Link |
| ------------------ | -------------------------------------------- |
| User Guide | [user_guide.md](./user_guide.md) |
| API Reference | [api_reference.md](./api_reference.md) |
| Deployment Guide | [deployment.md](./deployment.md) |
| Swagger UI | http://localhost:8000/api/docs |
| GitHub Issues | https://github.com/your-repo/aniworld/issues |
| Project Repository | https://github.com/your-repo/aniworld |
---
**For Questions**: Check relevant guide first, then file GitHub issue with details.