- Delete apps/telegram-bot/storage.py (replaced by adapters/storage/json_file.py) - Delete apps/telegram-bot/__init__.py (empty file) - Delete apps/telegram-bot/requirements-dev.txt (dev deps in pyproject.toml) - Update SPEC.md with new hexagonal architecture (core, adapters, apps) - Update SPEC.md command reference: /update -> /edit - Update README.md with new project structure and quick start - Update CONTRIBUTING.md with new architecture and dev setup
57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# 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
|