- 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
50 lines
1.1 KiB
Markdown
50 lines
1.1 KiB
Markdown
# Contributing to JIGAIDO
|
|
|
|
## Development Setup
|
|
|
|
```bash
|
|
git clone https://git.fbrns.co/shoko/jigaido.git
|
|
cd jigaido
|
|
|
|
# Create virtual environment
|
|
python -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# Install dependencies
|
|
pip install -r apps/telegram-bot/requirements.txt
|
|
|
|
# Run tests
|
|
pytest
|
|
|
|
# Run bot
|
|
export JIGAIDO_BOT_TOKEN="your_bot_token"
|
|
python -m apps.telegram-bot.bot
|
|
```
|
|
|
|
## Architecture
|
|
|
|
JIGAIDO follows hexagonal architecture:
|
|
|
|
- **Core** (`core/`): Pure domain logic - models, ports (interfaces), and services
|
|
- **Adapters** (`adapters/`): Infrastructure implementations - storage adapters
|
|
- **Apps** (`apps/`): CLI applications - Telegram bot
|
|
|
|
## Code Style
|
|
|
|
- Python 3.10+ with type hints
|
|
- Async/await for Telegram handlers
|
|
- Docstrings for public functions
|
|
- Follow existing code patterns
|
|
|
|
## Pull Request Workflow
|
|
|
|
1. Branch from `main`
|
|
2. Make changes
|
|
3. Test locally with `pytest`
|
|
4. Open PR with description of what changed and why
|
|
5. Someone reviews and merges
|
|
|
|
## Issues
|
|
|
|
Use GitHub Issues for bugs and feature requests. Please be specific — include error messages, steps to reproduce, and your environment.
|