Skip to content

komarowski/OmniTaskBot

Repository files navigation

OmniTaskBot

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.

🚀 Features

  • 🧾 Create and store tasks using MongoDB
  • 🐇 Use RabbitMQ for async background task handling
  • 🤖 Send daily tasks, words, or phrases to Telegram

✅ ToDo Checklist

  • 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...

📦 Project Structure

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

🛠 Run Locally

  1. Start MongoDB and RabbitMQ with Docker:

    docker-compose up -d
  2. Run both apps (separately):

    # Terminal 1
    cd OmniTaskBot.Web
    dotnet run
    
    # Terminal 2
    cd OmniTaskBot.Worker
    dotnet run

About

Task tracker with Telegram sync and RabbitMQ jobs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages