Before you begin:
- This project is powered by Kotlin, TelegramBotAPI, Koin, Skija, and GraphQL technologies, AWS services and CDK with TypeScript, and GitHub Actions.
- Have you read the code of conduct?
- Check out the existing issues.
- Discuss your plans in the chat or in an issue. Open one if needed.
Touching the code? Make sure to add some tests demonstrating the use cases or solved issues.
Try to stay modular. We split the code in modules based on features.
When adding a new entity / table, don't put any DB-specific code in the same module. Create an interface for the DAO and define the entity in the main module. Then create a DB-specific submodule with the DAO implementation and entity mappers.
Try to stay serverless. Stick to the technologies that can fit into AWS free tier: this is a non-commercial bot and it should not cost a lot to host it. Examples are Lambda, DynamoDB, S3 - they are cheap.
Don't forget to describe the resources you need in the CDK scripts. If you don't know how to do that - leave it to the owners.
When you're done making changes and you'd like to propose them for review, open your PR (pull request).
You can use the GitHub user interface ✏️ for small changes, like fixing a typo or updating a README. You can also fork the repo and then clone it locally, to view changes and run your tests on your machine.
- Once you submit your PR, it will be reviewed.
- After that, there may be questions, check back on your PR to keep up with the conversation.
- Did you have an issue, like a merge conflict? Check out this git tutorial on how to resolve merge conflicts and other issues.
Congratulations!
Labels can help you find an issue you'd like to help with.
- The
help wanted
label is for problems or updates that anyone in the community can start working on. - The
good first issue
label is for problems or updates we think are ideal for beginners. - The
CI/CD
label is for problems or updates in the testing, releasing & publishing process. These will usually require some knowledge of TypeScript and Github Actions to fix.