# JIGAIDO > Named after Nanami Kento's Cursed Technique restriction. Suppresses power during normal hours, exerts it during overtime. A bounty tracking platform. Currently ships with a Telegram bot for managing and tracking bounties in groups and DMs. ## Apps - **[Telegram Bot](./apps/telegram-bot/)** — Group and personal bounty tracking via Telegram commands, with due date reminders ## Overview - **Group bounties**: Each Telegram group has its own bounty list - **Personal bounties**: Private DM bounty list for individuals - **Admin-only posting**: Only group admins can add/update/delete bounties - **Universal tracking**: Any member can track bounties to their personal list - **Due date reminders**: Daily cron notifies users when bounties are due within 7 days - **Free-form dates**: Natural language due dates (`"tomorrow"`, `"in 3 days"`, `"april 15"`) - **Link deduplication**: No duplicate links within the same group ## Project Structure ``` jigaido/ ├── core/ # Domain layer (pure Python, no external deps) │ ├── models.py # Domain dataclasses (Bounty, Tracking) │ ├── ports.py # Port interfaces │ └── services.py # Domain services ├── adapters/ # Infrastructure adapters │ └── storage/ │ └── json_file.py # JSON file storage implementation ├── apps/ │ └── telegram-bot/ # Telegram bot CLI application │ ├── bot.py # Bot entry point │ └── commands.py # Command handlers ├── tests/ # Unit tests ├── config.py # Configuration management └── SPEC.md # Full design specification ``` ## Quick Start ```bash # Install dependencies pip install -r apps/telegram-bot/requirements.txt # Set bot token export JIGAIDO_BOT_TOKEN="your_bot_token" # Run bot python -m apps.telegram-bot.bot ``` ## License MIT