Skip to content

Latest commit

 

History

History
57 lines (29 loc) · 3.9 KB

CONTRIBUTING.md

File metadata and controls

57 lines (29 loc) · 3.9 KB

Contributing to TimeMates

Welcome to TimeMates, and thank you for considering contributing to our open-source project! Your contributions play a crucial role in making TimeMates better for everyone. Whether you're reporting a bug, suggesting new features, improving documentation, or submitting code changes, we value your efforts and support.

Before you get started, please take a moment to review the guidelines outlined below. These guidelines aim to create a friendly and collaborative environment for our community.

How to Contribute

Issue Tracking

If you encounter a bug or have a new feature idea, please create an issue using GitHub Issues. For broader discussions or questions, you can start a conversation in GitHub Discussions. This allows us to validate ideas, discuss possible solutions, and ensure alignment with the project's goals.

Code Style and Guidelines

TimeMates follows the official Kotlin code style settings, with the only difference being the use of 4 spaces for continuous indentation instead of 8. Additionally, we adhere to domain-driven design principles and Clean Architecture rules. Please ensure that your contributions follow these guidelines to maintain code consistency.

Areas Needing Assistance

We have several areas that could benefit from your expertise and contributions:

  • Desktop Experience Improvements: We need help in improving the experience of our helper app on desktop, particularly addressing issues related to the system tray icon. If you have expertise in desktop development, your contributions are highly valued.

  • Support for Different Platforms: We aim to expand our app's reach by supporting different platforms, such as the web. Contributions to the SDK for web support are open and welcome.

Submitting Code Changes

To submit your code changes, please create a pull request against the master branch. Our team lead, Vadym Yaroshchuk, and other code owners will review your changes before merging. We encourage discussions and iterative development to ensure high-quality contributions.

Testing and Documentation

We emphasize the importance of testing and documentation in TimeMates:

  • Testing: All code changes should be testable and accompanied by appropriate unit tests. We appreciate your efforts in maintaining and expanding our test coverage.

  • Documentation: Clear and comprehensive documentation is essential for the project's success. We strive to have thorough in-code documentation, and we maintain additional non-code documentation in the App Architecture wiki. Please ensure your contributions include relevant updates to the documentation.

Third-party Libraries

To ensure stability and long-term support, we aim to use third-party libraries that are officially maintained by JetBrains or reputable corporations. If you need to introduce new third-party dependencies, please discuss it with the team before proceeding.

Communication

We value communication and collaboration within our community:

  • Telegram Chat: For organization members, we have a dedicated Telegram chat. This is an excellent place to seek help, share ideas, and engage with other contributors.

  • Public Chat: Additionally, feel free to join our public chat to participate in broader discussions and interact with the TimeMates community.

Getting Started

We have prepared a guide on how to get started with contributing to TimeMates. You can find it in our Contributing Guide.

License

By contributing to TimeMates, you agree that your contributions will be licensed under the MIT License used for this project.

Thank you for your interest in TimeMates! We look forward to collaborating with you and building a fantastic productivity tool together!