Job Pool — это Flutter приложение для систематического отслеживания вакансий, собеседований и технических заданий в процессе поиска работы.
- Автоматический парсинг вакансий с HeadHunter по ссылке
- Создание вакансий вручную через удобные формы
- Хранение детальной информации: компания, ссылка, грейд, направления, контакты
- Фильтрация вакансий по компаниям
- База компаний с информацией о IT-аккредитации
- Ссылки на сайты компаний
- Комментарии к компаниям
- Валидация уникальности названий компаний
- Планирование собеседований (HR, техническое, с руководителем)
- Группировка по датам с удобным форматированием ("Сегодня", "Завтра")
- Онлайн/офлайн собеседования с ссылками и адресами
- Цветовая индикация для предстоящих собеседований
- Список активных ТЗ с дедлайнами
- Ссылки на задания с возможностью открытия
- Отслеживание направлений работы
- Группировка по компаниям
- Элементы истории: собеседования, ожидание фидбэка, задания, провал, оффер
- Хронология событий для каждой вакансии
- Детальная информация для каждого типа события
- Автоматическое извлечение данных с HeadHunter
- Поддержка sharing intent (получение ссылок извне)
- Умный парсинг направлений и грейдов из заголовков
- Обработка IT-аккредитации компаний
- Flutter 3.8+ - кроссплатформенная разработка
- Dart 3.8+ - современный язык программирования
- Drift - типобезопасная ORM для SQLite
- Riverpod - управление состоянием приложения
- AutoRoute - типизированная навигация
- Fast Immutable Collections - эффективные неизменяемые коллекции
- Equatable - простое сравнение объектов
Проект построен на принципах Clean Architecture с четким разделением на слои:
📁 lib/
├── 📁 core/ # Общие утилиты, валидация, парсинг
├── 📁 domain/ # Бизнес-логика (модели, репозитории, use cases)
├── 📁 data/ # Работа с данными (репозитории, DTO, база данных)
├── 📁 ui/ # Пользовательский интерфейс
│ ├── 📁 pages/ # Экраны приложения
│ ├── 📁 providers/ # Провайдеры состояния
│ ├── 📁 routing/ # Настройка навигации
│ └── 📁 widgets/ # Переиспользуемые компоненты
└── 📄 main.dart # Точка входа в приложение
- Companies - компании с IT-аккредитацией
- Vacancies - вакансии с грейдами и ссылками
- VacancyDirections - связь вакансий с направлениями
- Contacts - контакты для вакансий
- StoryItems - элементы истории (собеседования, задания, etc.)
- JobDirections - справочник направлений работы
- Flutter SDK 3.8+
- Dart SDK 3.8+
- Android Studio / VS Code
- Git
git clone https://github.com/i-panov/job_pool.git
cd job_poolflutter pub get# Генерация кода для Drift (база данных)
flutter packages pub run build_runner build --delete-conflicting-outputs
# Генерация кода для AutoRoute (навигация)
flutter packages pub run build_runner build# Запуск на Android
flutter run
# Запуск на iOS (требует macOS)
flutter run -d ios
# Запуск в веб-браузере
flutter run -d chrome
# Запуск на desktop
flutter run -d windows # или linux, macos- ✅ Android (API 21+)
- ✅ iOS (iOS 11+)
- ✅ Web (Chrome, Firefox, Safari)
- ✅ Windows (Windows 10+)
- ✅ macOS (macOS 10.14+)
- ✅ Linux (Ubuntu 18.04+)
Приложение использует Material Design 3 с кастомными цветовыми схемами:
- Грейды: серый (intern) → зеленый (junior) → синий (middle) → фиолетовый (senior) → оранжевый (lead)
- Типы событий: синий (собеседования), оранжевый (ожидание), фиолетовый (задания), красный (провал), зеленый (оффер)
- Адаптивный интерфейс с плавными анимациями
- Интуитивная навигация с tab-based интерфейсом
Приложение настроено для работы с HeadHunter. Для парсинга других сайтов потребуется модификация функций в lib/core/parse.dart.
База данных создается автоматически при первом запуске. Для миграций используется система Drift.