Initial commit: VoIdeaAI - voice-first AI idea assistant

This commit is contained in:
2026-05-13 12:51:42 +03:00
commit 688d043dad
421 changed files with 47915 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# === Core ===
PROJECT_NAME=
PROJECT_VERSION=1.0.0
PROJECT_ENV=local
# === Server ===
SERVER_HOST=0.0.0.0
SERVER_PORT=8020
# SERVER_EXTERNAL_URL=http://your-domain.com:8020
# === Database ===
# [ASK]: SQLite для dev или PostgreSQL?
# DATABASE_URL=sqlite+aiosqlite:///./app.db
# DATABASE_URL=postgresql+asyncpg://user:pass@localhost/dbname
# === JWT ===
JWT_SECRET_KEY=
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
JWT_REFRESH_TOKEN_EXPIRE_DAYS=30
# === AI (опционально) ===
# AI_PROVIDER_KEY=
# AI_FALLBACK_MODEL=yandex_gpt
# AI_TIMEOUT=10
# === OAuth (опционально) ===
# OAUTH_YANDEX_ID=
# OAUTH_YANDEX_SECRET=
# OAUTH_GOOGLE_ID=
# OAUTH_GOOGLE_SECRET=
# === Email (опционально) ===
# SMTP_HOST=
# SMTP_PORT=587
# SMTP_USER=
# SMTP_PASS=
# === Logging ===
LOG_LEVEL=INFO
# LOG_LEVEL=DEBUG
+38
View File
@@ -0,0 +1,38 @@
# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
*.egg
.venv/
venv/
env/
# Node
node_modules/
webui/dist/
# Environment
.env
.env.local
# IDE
.vscode/
.idea/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# Logs
logs/
*.log
# Database
*.db
*.sqlite3
# Documentation build
docs/_build/
@@ -0,0 +1,16 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.4
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
args: [--maxkb=500]
- id: check-merge-conflict
+12
View File
@@ -0,0 +1,12 @@
# Changelog
Все заметные изменения в этом проекте.
Формат: [Keep a Changelog](https://keepachangelog.com/)
Версионирование: [SemVer](https://semver.org/)
## [1.0.0] - {date}
### Added
- Первый релиз проекта
- Базовая функциональность
+35
View File
@@ -0,0 +1,35 @@
# Conventional Commits — шпаргалка
```
<тип>[optional scope]: <описание>
[optional body]
[optional footer]
```
## Типы
| Тип | Описание | Версия |
|-----|----------|--------|
| `feat` | Новая функция | MINOR |
| `fix` | Исправление бага | PATCH |
| `BREAKING` | Несовместимое изменение | MAJOR |
| `docs` | Документация | — |
| `style` | Форматирование | — |
| `refactor` | Рефакторинг | — |
| `test` | Тесты | — |
| `chore` | Обслуживание | — |
## Примеры
```
feat(auth): add OAuth2 login with Yandex
fix: handle empty list in idea search
BREAKING: change API response format
docs: update README with setup instructions
refactor: extract IdeaService from api/ideas.py
```
+11
View File
@@ -0,0 +1,11 @@
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
FROM builder AS production
WORKDIR /app
COPY . .
EXPOSE 8020
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8020"]
+27
View File
@@ -0,0 +1,27 @@
# {Project Name}
{Одна строка описания проекта}
## Быстрый старт
```bash
cp .env.example .env
# Редактировать .env
pip install -r requirements.txt
uvicorn app.main:app --reload
```
## Разработка
Проект следует правилам, описанным в `docs/`. Обязательно прочитайте:
1. `docs/00-rules.md` — основные правила
2. `docs/03-project-structure.md` — структура проекта
3. `docs/01-architecture.md` — архитектура
## API
- `/docs` — Swagger UI
- `/redoc` — ReDoc
- `/openapi.json` — OpenAPI spec
+43
View File
@@ -0,0 +1,43 @@
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8020:8020"
env_file: .env
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
worker:
build:
context: .
dockerfile: Dockerfile
command: celery -A app.tasks worker -l info
env_file: .env
depends_on:
- db
- redis
db:
image: postgres:14
environment:
POSTGRES_DB: voidea
POSTGRES_USER: voidea
POSTGRES_PASSWORD: ${DB_PASS}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U voidea"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7
volumes:
pgdata: