Thank you for your interest in contributing to Taskaroo! This document provides guidelines and instructions for contributing to the project.
If you find a bug, please create an issue on GitHub with the following information:
- Clear title and description: Explain the bug in detail
- Steps to reproduce: Provide step-by-step instructions
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Platform: Android or iOS, and version
- Screenshots: If applicable
- Environment: Device model, OS version, app version
Feature suggestions are welcome! Please create an issue with:
- Clear description: Explain the feature and its benefits
- Use case: Describe when and why this feature would be useful
- Mockups: If applicable, include UI mockups or diagrams
- Fork the repository and create a new branch from
main - Make your changes following the code style guidelines below
- Test your changes on both Android and iOS if possible
- Commit your changes with clear, descriptive commit messages
- Push to your fork and submit a pull request
- Provide a clear description of the changes
- Reference any related issues
- Ensure all tests pass (if applicable)
- Update documentation as needed
- Follow the existing code style
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Keep functions small and focused on a single responsibility
- Add KDoc comments for public APIs and complex logic
- Use the existing code as a reference for style
- Place shared code in
commonMain - Use
androidMainandiosMainfor platform-specific implementations - Keep screens in the
screens/package - Place reusable components in
common/package - Put data models in
modal/package - Utility functions go in
utils/package
- Use PascalCase for composable function names
- Document parameters with
@paramtags - Hoist state when appropriate
- Keep composables focused and reusable
Follow conventional commits format:
<type>: <description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat: Add task sorting by due date
fix: Resolve calendar date selection issue
docs: Update README with new features
- JDK 17 or higher
- Android Studio (latest stable version recommended)
- Xcode (for iOS development, macOS only)
- CocoaPods (for iOS dependencies)
- Clone your fork:
git clone https://github.com/your-username/Taskaroo.git
cd Taskaroo- iOS Configuration:
cp iosApp/Configuration/Config.xcconfig.template iosApp/Configuration/Config.xcconfig
# Add your Apple Developer Team ID to Config.xcconfig- Install iOS dependencies:
cd iosApp
pod install
cd ..- Open in your IDE:
- Android Studio for Android/multiplatform development
- Xcode for iOS-specific work
- Test your changes on both Android and iOS when possible
- Verify the app builds successfully
- Test on different screen sizes if UI changes are involved
- Check for memory leaks and performance issues
- Ensure offline functionality works correctly
Taskaroo/
├── composeApp/
│ ├── commonMain/ # Shared code
│ │ ├── kotlin/
│ │ │ ├── common/ # UI components
│ │ │ ├── database/ # Database layer
│ │ │ ├── modal/ # Data models
│ │ │ ├── screens/ # Screen composables
│ │ │ └── utils/ # Utilities
│ │ └── sqldelight/ # Database schemas
│ ├── androidMain/ # Android-specific
│ └── iosMain/ # iOS-specific
└── iosApp/ # iOS app wrapper
If you have questions about contributing, feel free to:
- Open an issue for discussion
- Contact the maintainer: Muhammad Ali (Portfolio)
Please be respectful and considerate in all interactions. We aim to maintain a welcoming and inclusive community.
By contributing to Taskaroo, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Taskaroo!