Thank you for your interest in contributing to MovieDex! This document provides guidelines and information about contributing to the project.
MovieDex/
├── lib/
│ ├── api/ # API related code
│ │ ├── class/ # Data models and classes
│ │ ├── contentproviders/ # Streaming providers implementation
│ │ ├── models/ # Database models
│ │ └── utils.dart # Common utilities
│ ├── components/ # Reusable UI components
│ ├── pages/ # Application screens
│ │ ├── auth/ # Authentication screens
│ │ └── ... # Other screens
│ ├── providers/ # State management
│ ├── services/ # Business logic services
│ ├── utils/ # Helper functions
│ └── main.dart # Application entry point
├── assets/ # Static assets (images, fonts)
├── android/ # Android specific files
├── ios/ # iOS specific files
└── test/ # Unit and widget tests
-
API Layer (
/lib/api/
)contentproviders/
: Implements different streaming sourcesclass/
: Core data modelsmodels/
: Database models for local storageutils.dart
: Common API utilities
-
UI Components (
/lib/components/
)- Reusable widgets
- Custom UI elements
- Player components
-
Services (
/lib/services/
)firebase_service.dart
: Authentication handlingcache_service.dart
: Local cachingwatch_history_service.dart
: History trackingproxy_service.dart
: Proxy management
-
State Management (
/lib/providers/
)- Theme management
- State providers
- Fork the repository
- Clone your fork:
git clone https://github.com/kodify-js/MovieDex.git
- Set up development environment:
flutter pub get
flutter pub run build_runner build
- Create a feature branch:
git checkout -b feature/your-feature-name
-
Code Style
- Follow Flutter/Dart style guidelines
- Use meaningful variable names
- Add documentation for public APIs
- Keep methods focused and concise
-
Commit Messages
- Use clear, descriptive commit messages
- Format:
type(scope): description
- Example:
feat(player): add quality selection
-
Testing
- Add tests for new features
- Ensure existing tests pass
- Test on multiple devices
-
Documentation
- Update README if needed
- Add inline documentation
- Include example usage
- Update your fork with the latest changes
- Ensure tests pass locally
- Create a pull request with:
- Clear description
- Screenshots/videos if UI changes
- List of changes
- Tests if applicable
- Changes will be reviewed by maintainers
- Address review comments
- Keep discussions constructive
- Be patient and respectful