Skip to content

Flutter приложение для систематического отслеживания вакансий, собеседований и технических заданий в процессе поиска работы.

Notifications You must be signed in to change notification settings

i-panov/job_pool

Repository files navigation

Job Pool 🎯

Job Pool — это Flutter приложение для систематического отслеживания вакансий, собеседований и технических заданий в процессе поиска работы.

Flutter Dart License

✨ Основной функционал

🎯 Отслеживание вакансий

  • Автоматический парсинг вакансий с 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_pool

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

flutter 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+)

🎨 Дизайн и UI

Приложение использует Material Design 3 с кастомными цветовыми схемами:

  • Грейды: серый (intern) → зеленый (junior) → синий (middle) → фиолетовый (senior) → оранжевый (lead)
  • Типы событий: синий (собеседования), оранжевый (ожидание), фиолетовый (задания), красный (провал), зеленый (оффер)
  • Адаптивный интерфейс с плавными анимациями
  • Интуитивная навигация с tab-based интерфейсом

🔧 Конфигурация

Настройка парсинга HeadHunter

Приложение настроено для работы с HeadHunter. Для парсинга других сайтов потребуется модификация функций в lib/core/parse.dart.

Настройка базы данных

База данных создается автоматически при первом запуске. Для миграций используется система Drift.

About

Flutter приложение для систематического отслеживания вакансий, собеседований и технических заданий в процессе поиска работы.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages