Metadata-Version: 2.4
Name: fit-tech
Version: 0.1.0
Summary: ФитТех: тренировки, питание, рецепты.
Author-email: Екатерина Мелешко <meleshko.katia@gmail.com>, Валерий Гайдеек <vgaydeek@gmail.com>, Валерия Гопкало <valgopkalo@mail.ru>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: fastapi==0.103.1
Requires-Dist: uvicorn==0.23.2
Requires-Dist: sqlalchemy==2.0.20
Requires-Dist: alembic==1.12.0
Requires-Dist: pydantic
Requires-Dist: email-validator
Requires-Dist: pydantic-settings==2.0.3
Requires-Dist: python-jose==3.3.0
Requires-Dist: passlib==1.7.4
Requires-Dist: bcrypt==4.0.1
Requires-Dist: python-multipart==0.0.6
Requires-Dist: psycopg2-binary==2.9.7
Requires-Dist: redis==4.6.0
Requires-Dist: celery==5.3.4
Requires-Dist: aiogram==3.1.1
Requires-Dist: icalendar==5.0.7
Requires-Dist: pytz==2023.3
Requires-Dist: httpx==0.25.0
Requires-Dist: jinja2==3.1.2
Requires-Dist: aiofiles==23.1.0
Requires-Dist: geoalchemy2==0.14.0
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: openai==1.3.0
Requires-Dist: websockets>=10.0
Requires-Dist: asyncpg>=0.27.0
Requires-Dist: geopy
Requires-Dist: requests
Provides-Extra: dev
Requires-Dist: pytest==7.4.2; extra == "dev"
Requires-Dist: pytest-cov==4.1.0; extra == "dev"

# FitTech

# FitTech – Репозиторий фитнес-приложения

**FitTech** — это полный стек на базе FastAPI для трекинга фитнес-данных, управления тренировками, планирования питания, напоминаний и многого другого. Проект предоставляет надёжный backend-API и простой web-интерфейс на Jinja2/Bootstrap.

---

## Возможности

- **Аутентификация пользователей**: регистрация, вход (+ выход по JWT).  
- **Управление тренировками**: CRUD для тренировок и связанных упражнений.  
- **База упражнений**: добавление, редактирование, удаление упражнений.  
- **Управление рецептами**: хранение рецептов с ингредиентами и калориями.  
- **Планирование питания**: создание и управление планами приёма пищи.  
- **Напоминания**: настраиваемые напоминания (Celery + Redis).  
- **Интеграция с календарём**: просмотр событий и напоминаний.
В следующих обновлениях ожидается добавление следующих функций:
- **Чек-ины в залах**: трекинг визитов в зал.  
- **Геопоиск**: поиск ближайших залов (GeoAlchemy2 + Geopy).  
- **Интеграция с ИИ**: чат-бот-тренер на базе OpenAI.  
- **Web-интерфейс**: базовый фронтенд на Jinja2 + Bootstrap.

---
## Установка для пользователя
### 1. Установка пакета
pip install fit-tech

### 2. Создание .env
В корне проекта (или папке с кодом) создайте .env-файл:
``` bash
cat > .env <<EOF
DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/fittech_db
SECRET_KEY=ваш_секрет
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=60
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
# TELEGRAM_BOT_TOKEN=...
# OPENAI_API_KEY=...
EOF
```
### 3. Запуск приложения
```bash
uvicorn fit_tech.main:app --reload --host 0.0.0.0 --port 8000
```
## Локальная разработка

Следуйте этим шагам, чтобы склонировать репозиторий, поднять окружение и установить все зависимости.

### 1. Клонирование репозитория

```bash
git clone https://github.com/your-org/fit-tech.git
cd fit-tech
```

---

### 2. Локальная разработка без Docker

#### 2.1 Виртуальное окружение

```bash
python3 -m venv venv
source venv/bin/activate
```

#### 2.2 Установка зависимостей

* **Runtime-зависимости** (для запуска пакета):

  ```bash
  pip install --upgrade pip
  pip install .
  ```
* **Dev-зависимости** (тесты, линтеры, Alembic и т. д.):

  ```bash
  pip install -e ".[dev]"
  ```

#### 2.3 Переменные окружения
Отредактируйте .env:
#DATABASE_URL, SECRET_KEY, CELERY_BROKER_URL, CELERY_RESULT_BACKEND и т. д.

#### 2.4 Миграции базы данных

```bash
alembic upgrade head
```

Если миграции ещё не инициализированы:

```bash
alembic init alembic
alembic revision --autogenerate -m "Initial migration"
alembic upgrade head
```

#### 2.5 Запуск приложения

```bash
# Терминал 1: FastAPI-сервер
uvicorn fit_tech.main:app --reload

# Терминал 2: Celery-worker
celery -A fit_tech.workers.celery_app worker --loglevel=info
```
---

### 3. Работа через Docker и Docker Compose

Если вы хотите поднять всё окружение в контейнерах (PostgreSQL, Redis, веб-сервис, Celery):

1. **Скопируйте шаблон переменных окружения**
   Создайте `.env` и укажите реальные настройки (пароли, токены и т. д.).
   В `docker-compose.yml` переменные из `.env` будут подхвачены автоматически.

2. **Соберите и запустите контейнеры**

   ```bash
   docker-compose up --build
   ```
3. **Примените миграции**

   ```bash
   docker-compose exec web alembic upgrade head
   ```
4. **Остановка и удаление контейнеров**

   ```bash
   docker-compose down
   ```

---


