SkillHub — платформа для мэтчинга участников и команд на хакатоне. Проект помогает находить тиммейтов, оценивать соответствие по скиллам, шарить профили и управлять заявками в команды. Проект сделан для хакатона «Идея. Код. Релиз» от IT-сообщества МГУ Viribus Unitis.
- AI-скоринг навыков для профилей участников
- поиск участников с фильтрами по роли, стеку, грейду и рейтингу
- лента команд, страницы команд и сценарий заявок
- избранное, голоса и быстрый переход в публичные профили участников
- закрытие набора в командах, удаление участников капитаном и защита от переполнения
- GitHub OAuth с аватаром из профиля и аккуратным fallback-аватаром
- вход через GitHub OAuth
- модель данных на PostgreSQL с seed-данными для демо и smoke-проверок
- интеграция с YandexGPT для оценки профиля
- PRO-режим с расширенной видимостью и инсайтами по профилю
- Frontend: React, Vite, TypeScript, Tailwind CSS, React Router
- Backend: Node.js, Express
- База данных: PostgreSQL
- Авторизация: GitHub OAuth, подписанные session cookies, demo fallback для локальной разработки
- AI: YandexGPT
| Путь | Зона ответственности |
|---|---|
client/ |
Frontend-приложение, UI, роутинг и интеграция с API |
server/ |
Backend API, авторизация, скоринг и интеграция с данными |
scripts/ |
Seed-данные, smoke-тесты и служебные скрипты |
docs/ |
Текущая документация проекта, API и гайды по разработке |
| Автор | Зона ответственности |
|---|---|
| Даниэл | Backend, YandexGPT, деплой и стабильность, GitHub API |
| Денис | Frontend, layout, роутинг, поиск, профиль и экраны команд |
| Дени | Seed data, smoke tests, scripts, documentation support, presentation materials, PostgreSQL, GitHub OAuth |
- Основные продуктовые флоу реализованы: login, profile, search, teams и applications
- Backend может работать с PostgreSQL, если задан
DATABASE_URL - Если база недоступна, сервер может перейти на in-memory demo data для локальной разработки
- GitHub OAuth подключён к backend
- GitHub-аватар и fallback-картинка работают одинаково в API и UI
- GitHub-импорт фильтрует мусорные ссылки и profile README
- Команды поддерживают закрытие набора, удаление участников и контроль свободных слотов
- Избранное и голосование за участников доступны в поиске
- YandexGPT подключён к скорингу профиля
- Для VM предусмотрен
docker compose-путь с Postgres, backend и фронтендом через nginx - Документация и smoke-тесты поддерживаются в
docs/иscripts/ - Legacy-материалы по планированию и питчам вынесены в
../skillhub_docs_archive
cd server
npm install
npm run devcd client
npm install
npm run devСоздай server/.env по примеру из server/.env.example.
Важные переменные:
DATABASE_URLGITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGITHUB_CALLBACK_URLYANDEXGPT_SA_KEY_PATH,YANDEXGPT_IAM_TOKENилиYANDEXGPT_API_KEYYANDEXGPT_MODEL_URIилиYANDEXGPT_FOLDER_IDYANDEXGPT_LLM_ENDPOINTJWT_SECRETCLIENT_URLCOOKIE_SECUREдля включения secure-cookie режима на HTTPS
Если backend работает не на http://localhost:5000, создай client/.env:
VITE_API_URL=http://localhost:5000
VITE_ENABLE_DEMO_AUTH=trueVITE_ENABLE_DEMO_AUTH=true нужен только для локальной разработки и smoke-сборки. В production его не включают.
Для запуска на одной виртуальной машине смотри docs/DEPLOYMENT_GUIDE.md.
Там описан docker compose-путь с PostgreSQL, backend и nginx-контейнером для фронтенда.
- Все backend-маршруты доступны под префиксом
/api/v1 - Вход через GitHub стартует с
/api/v1/auth/github - Данные профиля доступны через
/api/v1/profileи/api/v1/auth/me - Поиск и команды доступны через
/api/v1/usersи/api/v1/teams
Полная документация проекта лежит в docs/.
Рекомендуемые точки входа:
docs/INDEX.mddocs/PROJECT_OVERVIEW.mddocs/ARCHITECTURE.mddocs/API_REFERENCE.mddocs/FEATURES.mddocs/DEPLOYMENT_GUIDE.mddocs/DEVELOPMENT.mddocs/QA_CHECKLIST.md
Legacy-материалы лежат в ../skillhub_docs_archive.
- smoke-тесты:
cd server && npm run smoke - seed и служебные утилиты:
scripts/