Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Мой Текущий Проект: PrepBro - Платформа для Подготовки к Интервью
Я работаю над платформой PrepBro, которая помогает соискателям готовиться к собеседованиям путем практикования с AI-ассистентом, задающим вопросы и оценивающим ответы.
Описание Проекта
Цель: Создать доступную платформу для подготовки к интервью в различные специальности (System Analyst, Backend Developer, QA, Frontend Developer и т.д.)
Основная функция: Пользователь выбирает профессию, система предлагает вопросы интервью на основе профиля, пользователь дает ответы, AI оценивает качество ответа.
Архитектура Проекта
Backend:
- Язык: Python
- Framework: FastAPI
- База данных: PostgreSQL (Goose для миграций)
- ORM: SQLAlchemy для работы с моделями
- Контейнеризация: Docker
- API версионирование: /api/v1/
Frontend:
- Технология: Next.js 14 (App Router)
- Язык: TypeScript
- Стили: Tailwind CSS
- UI компоненты: shadcn/ui, Magic UI
- Build: SSG (Static Site Generation) с
output: export
CMS:
- Sanity для управления контентом блога
- Интеграция для отображения статей на фронте
AI:
- Claude API для генерации вопросов и оценки ответов
- Система промптов для каждой профессии
Deployment:
- Dokku для развертывания
- Vercel для фронтенда
- PostgreSQL on Dokku
Ключевые Особенности
1. Система Вопросов
Для каждой профессии разработана база вопросов интервью, организованных по тематикам. Система может:
- Получить следующий вопрос для интервью
- Сохранить ответ пользователя
- Оценить ответ на соответствие стандартам индустрии
- Предоставить обратную связь
2. Процесс Интервью
1. Пользователь выбирает профессию
2. Система достает вопрос из очереди
3. Пользователь дает ответ (текст, голос, видео)
4. AI оценивает ответ:
- Полнота (охватывает ли все аспекты)
- Правильность (нет ли ошибок)
- Структурированность (четкость изложения)
- Время ответа (соответствует ли норме)
5. Система дает обратную связь
6. Переходит к следующему вопросу
3. Аналитика
- Отслеживание прогресса пользователя
- Определение слабых мест
- Рекомендации по улучшению
- Сравнение с другими пользователями
Технические Решения
1. Валидация Требований
Мы используем четкий процесс валидации требований:
- Функциональные требования (FR) для каждой фичи
- Нефункциональные требования (NFR) для производительности и безопасности
- User Stories для спринтов
- Acceptance Criteria для проверки готовности
2. Процесс Разработки
Используем TDD (Test-Driven Development):
- Сначала пишем тесты
- Затем реализуем функциональность
- Покрытие тестами >= 90%
- Для бэка: pytest с --reuse-db
- Для фронта: Vitest + Playwright для E2E
3. Архитектура Backend
Следуем Clean Architecture (DDD):
- Domain — бизнес-логика
- Application — use cases
- Infrastructure — БД, интеграции
- Presentation — API endpoints
Зависимости только внутрь: Presentation → Application → Domain
4. API Design
- RESTful endpoints: /api/v1/agent/answering/next
- POST/GET в соответствии с семантикой
- Версионирование API
- Документация через OpenAPI/Swagger
Инструменты и Практики
Code Quality:
- Linting: Ruff (Python), ESLint (TypeScript)
- Formatting: Black (Python), Prettier (TS)
- Pre-commit hooks
- Code review перед каждым PR
Database:
- Migrations: Goose (raw SQL)
- Source of truth: миграции, не ORM
- SQLAlchemy для моделей и типизации
Testing:
- Unit тесты в pytest
- Integration тесты
- E2E тесты с Playwright
- VCR.py для HTTP мокирования
Deployment:
- CI/CD pipeline
- Automated testing
- Docker контейнеризация
- Zero-downtime deployment
Текущие Челленджи
1. Скорость Генерации Вопросов
- Требуется оптимизация API вызовов к Claude
- Кэширование часто задаваемых вопросов
- Асинхронная обработка
2. Качество Оценки Ответов
- Требуется тонкая настройка промптов
- Обратная связь от пользователей
- Частая переоценка критериев
3. Масштабируемость
- При росте пользователей нужна оптимизация БД
- Кэширование и REDIS для sessions
- Horizontal scaling фронта
Что я Вынес из Проекта
Soft Skills:
- Коммуникация с командой и стейкхолдерами
- Приоритизация требований
- Управление техническим долгом
Technical Skills:
- Глубокое понимание Full-Stack архитектуры
- Clean Architecture и DDD принципы
- DevOps и deployment практики
- AI интеграция (LLM, промптинг)
Professional:
- Как организовать процесс разработки
- Баланс между скоростью и качеством
- Значение хорошей документации
- Важность тестов и code review