OmniTaskBot is a task tracker that syncs with Telegram and uses RabbitMQ for background processing.
It works locally with Docker and can be deployed in production environments.
This is mostly a project for learning new technologies and having fun while building something useful.
- 🧾 Create and store tasks using MongoDB
- 🐇 Use RabbitMQ for async background task handling
- 🤖 Send daily tasks, words, or phrases to Telegram
- Basic functionality (store tasks in MongoDB, use RabbitMQ to queue task sending)
- Send daily language-learning content to Telegram
- Build a React MongoDB UI manager
- Extend task model (priorities, long-running tasks)
- Process Telegram feedback (e.g. mark task as completed)
- Add logger, auth, validation, error handling...
OmniTaskBot/
├── OmniTaskBot.Infrastructure/ # Core entities and integrations
│ ├── MongoDb/ # MongoDB repository
│ ├── RabbitMq/ # Message publisher & consumer logic
│ └── Telegram/ # Telegram API integration
│
├── OmniTaskBot.Web/ # .NET Web API for managing tasks
│
├── OmniTaskBot.Worker/ # Background service that listens to RabbitMQ and Telegram
│
├── OmniTaskBot.Tests/ # Unit and integration tests
│
└── docker-compose.yml # MongoDB and RabbitMQ setup
-
Start MongoDB and RabbitMQ with Docker:
docker-compose up -d
-
Run both apps (separately):
# Terminal 1 cd OmniTaskBot.Web dotnet run # Terminal 2 cd OmniTaskBot.Worker dotnet run