# MyProject

## Как развернуть для разработки

### Делаем несколько простых шагов:

- Клонируем репу

    - ``` git clone https://github.com/wide-devs/WideGameBot ```
- Устанваливаем зависимости
    -  ``` pip install -r requirements.txt ```
- Заполняем env.env
- Создаем бд с Tortoise ORM
    - ```aerich init-db```
- По нужде делаем миграции
    - ```aerich migrate```
    - ```aerich upgrade```

___

## Для разработчиков:

### Красивый трейсбек

Создайте файл по данному пути (у вас может отличаться) `venv/Lib/site-packages/sitecustomize.py`

Поместите туда следующий код
```python
from rich.traceback import install
install(show_locals=True)
```

Запускайте проект в терминале и наслаждайтесь удобным выводом

### У бота есть некоторые правила, чтобы было легче работать в команде:

- Придерживаться PEP8
- Расчленять файлы по пакетам, чтобы не было файла больше 1000 строк кода, чтобы недопустить макаронного кода, в котором сложно разобраться.
- Нормальные нейминги обязательны, слова разделять _ (right_naming) в функциях и переменных, в классах слова разделять строчными и с заглавными буквами MyClass
- Никогда не менять сигнатуры функций, перемен, классов и тд

### Архитектура:

- Мы используем aiogram3.0.0b
- Для http запросов используем fastapi
- Наш друг это TORTOISE ORM

### Что с коммитами?
- Коммиты строго оформлять по [шаблону](https://www.conventionalcommits.org/en/v1.0.0/), чтобы было легче найти проблемный код и исправить
- Для лучшего деплоя и разработки бота, у нас 2 ветки, dev и main.
При разработке делаем все в ветку dev и только при деплое бота мы сливаем все в ветку main. Соответственно в dev нет функционала деплоя, а в main он есть.
- Я закатаю вас в асфальт, если вы будете пушить форсом. "push -f" никогда не делаем
- Во избежании конфликтов кода не трогаем куски кода, которые не принадлежат нам, а выдвигаем требования к автору кода или надо убедиться что вы не вызовите проблем конфликтов. Желательно разделять по файлам области влияния программистов.

___

## Почетные разрабы

### Если ты читаешь это, то ты наш новичок:

- ### [Bulka](https://github.com/BulatXam "The best search engine for privacy")
