Contributing
NotallyX is an open-source project, and contributions from the community are welcome and appreciated. This guide explains how you can contribute to the project, whether you're a developer, translator, or user.
Ways to Contribute
There are many ways to contribute to NotallyX, regardless of your technical skills:
For Everyone
- Report bugs: If you find a bug, report it on GitHub Issues
- Suggest features: Have an idea for a new feature? Share it on GitHub Issues
- Improve documentation: Help improve this documentation by suggesting changes or additions
- Spread the word: Share NotallyX with others who might find it useful
- Translate the app: Help make NotallyX available in more languages, see
Contributing Translationsbelow
For Developers
- Fix bugs: Pick an open issue and submit a pull request to fix it
- Implement features: Work on new features that have been approved
- Improve performance: Help optimize the app's performance
- Write tests: Improve test coverage to ensure reliability
Getting Started with Development
If you want to contribute code to NotallyX, follow these steps:
Setting Up the Development Environment
-
Fork the repository: Go to NotallyX on GitHub and click the "Fork" button
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/NotallyX.git -
Set up Android Studio:
- Download and install Android Studio
- Open the cloned project in Android Studio
- Let Gradle sync the project dependencies
-
Configure an emulator or device:
- Set up an Android emulator through AVD Manager in Android Studio, or
- Connect a physical Android device with USB debugging enabled
Making Changes
-
Create a new branch:
git checkout -b feature/your-feature-nameor
git checkout -b fix/issue-you-are-fixing -
Make your changes: Implement your feature or fix the bug
-
Follow coding standards:
- Write code in Kotlin
- Follow the project's coding style
- Run
./gradlew ktfmtFormatbefore committing to ensure proper formatting
-
Test your changes:
- Run existing tests:
./gradlew test - Test on different Android versions if possible
- Ensure your changes don't break existing functionality
- Run existing tests:
-
Commit your changes:
git add .
git commit -m "Brief description of your changes" -
Push to your fork:
git push origin feature/your-feature-name -
Create a pull request:
- Go to your fork on GitHub
- Click "New pull request"
- Select your branch and submit the pull request
- Provide a clear description of what your changes do
Contributing Translations
To contribute translations:
- Download the current translations.xlsx file
- Open it in Excel/LibreOffice and add missing translations
- Missing translations are marked in red
- You can filter by key or any language column values
- Non-translatable strings are hidden and marked in gray, do not add translations for them
- For plurals, some languages need/have more quantity strings than others
- Open an Update Translations Issue
- The project maintainer will create a Pull Request to add your updated translations
Bug Reports and Feature Requests
Reporting Bugs
When reporting a bug, please include:
- Steps to reproduce the issue
- What you expected to happen
- What actually happened
- Your device information (Android version, device model)
- Screenshots if applicable
Use the bug report template when creating a new issue on GitHub.
Requesting Features
When suggesting a new feature:
- Clearly describe the feature and its purpose
- Explain how it would benefit users
- Provide examples of how it might work
- Consider potential implementation challenges
Use the feature request template when creating a new issue on GitHub.
Code of Conduct
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone. This includes:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Getting Help
If you need help with contributing:
- Check the FAQ for common questions
- Ask for help in the GitHub issue you're working on
- Contact the project maintainer through GitHub