First off, thank you for considering contributing to ForexSignalBot! It's people like you that make the open-source community such a powerful and innovative place. We are thrilled to welcome contributions from everyone, whether it's reporting a bug, suggesting a new feature, or writing code.
Every contribution is valuable, and we appreciate your willingness to help us build a smarter, more accessible trading ecosystem for everyone.
We are committed to fostering an open, welcoming, and inclusive community. Before contributing, please take a moment to read our Code of Conduct. We expect all contributors to adhere to its principles.
There are many ways to contribute to the project's success. Here are a few ideas:
- 🐞 Reporting Bugs: If you encounter a bug, please open an issue on our GitHub Issues page. Use the "Bug Report" template and provide as much detail as possible.
- ✨ Suggesting Enhancements: Have an idea for a new feature or an improvement? Open an issue using the "Feature Request" template. We'd love to hear your thoughts on everything from new signal indicators to UI/UX enhancements.
- ✍️ Improving Documentation: If you notice areas where the documentation could be clearer or more detailed, don't hesitate to open an issue or a pull request.
- 💻 Writing Code: You can help by writing code to fix bugs or implement new features.
Unsure where to begin? Check out these labels in our issue tracker:
- good first issue - Perfect for newcomers, these issues typically require only a few lines of code.
- help wanted - These are well-defined tasks that are ready for a contributor to pick up.
- feature - Help us build the future of the bot by working on a new feature from our roadmap.
Our goal is to make setting up your development environment as quick and easy as possible. We follow a dotnet ducker 🐳 philosophy, with Docker being the recommended approach.
This is the fastest way to get the entire application stack—API, PostgreSQL database, and Redis cache—running in minutes.
- Clone the repo:
git clone https://github.com/Opselon/ForexTradingBot.git - Configure Secrets: Copy
.env.exampleto.envand fill in your secrets (like theTELEGRAM_BOT_TOKEN). - Run! Execute the
start.sh(Linux/macOS) orstart.bat(Windows) script.
For detailed instructions, please refer to the Getting Started with Docker section in the README.md.
If you prefer a manual setup, you'll need to install the .NET 9 SDK, PostgreSQL, and Redis. Please follow the detailed guide in the Local Development Setup section of the README.md.
- Fork the Repository: Create your own copy of the project to work on.
- Create a Branch: Create a descriptive branch from
master. We suggest the following conventions:feature/your-feature-name(e.g.,feature/add-rsi-indicator)bugfix/issue-123(e.g.,bugfix/fix-rss-deduplication)docs/update-readme
- Make Your Changes: Write your code and make your changes.
- Follow the Architecture: Your contributions should respect the existing Clean Architecture and Domain-Driven Design (DDD) principles. Ensure your logic fits into the correct project layer (Domain, Application, Infrastructure, etc.).
- Add Database Migrations: If you change a domain model (an entity in the
Domainproject), you must create a new migration. Run this command from the root directory:dotnet ef migrations add YourMigrationName --startup-project WebApi --project Infrastructure
- Add Tests: We value quality and reliability. Please add unit tests for any new features or bug fixes. Test projects are located in the
Testsfolder. - Update Documentation: If you've added or changed a feature, please update the
README.mdor other relevant documentation. - Open a Pull Request: Push your branch to your fork and open a PR against the
masterbranch of the main repository. Link the PR to any related issues and provide a clear description of your changes.
We will review your PR as soon as possible and work with you to get it merged. Thank you for helping us make ForexSignalBot better! 🌟