When you want to implement a feature in your bot, you start asking these questions:
The WHO?
- Who is going to use this feature? Should they be allowed to use all the features?
The WHAT?
- Under what conditions should I allow this feature?
- Should the message have a photo? A document? Oh, maybe a callback query?
The HOW?
- If my bot crashes, how can I resume my operation?
- Should I utilize a DB?
- How can I separate logic execution of different features?
- How can I unit-test my feature outside of Telegram?
Every time you write a command or a feature, you will need to answer these questions and ensure that your feature logic works.
This group of questions is really great!