Skip to content

Геймифицированное приложение для автоматизации откликов на HeadHunter. Vue 3 + Socket.IO + Node.js

Notifications You must be signed in to change notification settings

litury/job-tapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job Tapper

Job Tapper - это интерактивное приложение для автоматической отправки откликов на вакансии в форме увлекательной игры. Пользователи должны быстро нажимать на появляющиеся элементы, чтобы отправлять отклики через API HeadHunter.


Назначение комплекса

Job Tapper предназначен для создания увлекательного и эффективного способа поиска работы. Комплекс объединяет игровую механику с реальным процессом отклика на вакансии, что делает поиск работы более интересным и мотивирующим. Основная цель комплекса — упростить и геймифицировать процесс отправки откликов на вакансии, повышая вовлеченность пользователей и эффективность поиска работы.

Состав комплекса

1. Клиентское приложение (Frontend)

Веб-интерфейс, разработанный с использованием Vue 3 и TypeScript, предоставляет пользователю игровой интерфейс для взаимодействия с вакансиями.

2. Серверное приложение (Backend)

Node.js сервер, обрабатывающий запросы клиента, взаимодействующий с API HeadHunter и управляющий игровой логикой.

3. Модуль интеграции с HeadHunter API

Обеспечивает взаимодействие с API HeadHunter для получения вакансий и отправки откликов.

4. Модуль управления игровым процессом

Отвечает за генерацию игровых элементов, подсчет очков и управление уровнями сложности.

5. Модуль аутентификации

Управляет авторизацией пользователей через HeadHunter OAuth.

6. Система реального времени

Использует Socket.IO для обеспечения мгновенных обновлений игрового состояния.

Функциональность и принципы работы

1. Клиентское приложение (Frontend)

Клиентское приложение предоставляет пользовательский интерфейс для игры и взаимодействия с вакансиями.

Основные компоненты:

  • GameView: Основной игровой экран
  • ResumeCard: Отображение информации о резюме
  • GameArea: Игровая область с появляющимися вакансиями

Пример использования игровой области:

<template>
  <GameArea
    @click="handleClick"
    @vacancy-click="handleVacancyClick"
    :start-countdown="startCountdown"
    :get-vacancy-emoji="getVacancyEmoji"
  />
</template>

2. Серверное приложение (Backend)

Сервер обрабатывает запросы клиента, взаимодействует с API HeadHunter и управляет игровой логикой.

Основные модули:

  • vacancyController: Управление вакансиями
  • resumeController: Управление резюме
  • authController: Аутентификация пользователей

Пример обработки запроса на получение похожих вакансий:

handleGetSimilarVacancies: async (socket: Socket, userSessions: Map<string, any>, data: { resumeId: string }) => {
  const userData = userSessions.get(socket.id);
  if (userData) {
    try {
      const vacancies = await vacancyService.getSimilarVacancies(userData.accessToken, data.resumeId);
      socket.emit('similar-vacancies', vacancies);
    } catch (error) {
      console.error('Error fetching similar vacancies:', error);
      socket.emit('error', { message: 'Ошибка при получении похожих вакансий' });
    }
  }
}

Технологии

  • Frontend: Vue 3, TypeScript, Tailwind CSS, DaisyUI
  • Backend: Node.js, Express, Socket.IO
  • API: HeadHunter API

Установка и запуск

Клиент

  1. Перейдите в директорию клиента:

    cd client
    
  2. Установите зависимости:

    npm install
    
  3. Запустите клиент в режиме разработки:

    npm run dev
    
  4. Для запуска через Tuna (или Ngrok):

    tuna http localhost:5173 --subdomain={ваш домен}
    

Сервер

  1. Перейдите в директорию сервера:

    cd server
    
  2. Установите зависимости:

    npm install
    
  3. Запустите сервер:

    npm run dev
    
  4. Для запуска через Tuna (или Ngrok):

    tuna http localhost:3000 --subdomain={ваш домен}
    

Особенности

  • Интеграция с API HeadHunter для получения вакансий и отправки откликов
  • Игровой процесс, стимулирующий быструю реакцию пользователя
  • Система уровней и очков для повышения вовлеченности
  • Реал-тайм обновления с использованием Socket.IO

Разработк�� и расширение

Job Tapper спроектирован с учетом возможности расширения функциональности. Разработчики могут создавать новые модули или расширять существующие для добавления новых возможностей.

Создание нового модуля

  1. Создайте новую директорию в client/src/modules или server/src/modules в зависимости от типа модуля.
  2. Реализуйте необходимую логику и компоненты.
  3. Экспортируйте основные компоненты или функции модуля через index.ts.
  4. Интегрируйте новый модуль в основное приложение.

Вклад в проект

Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с руководством по внесению вклада перед тем, как начать.

Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для подробностей.

About

Геймифицированное приложение для автоматизации откликов на HeadHunter. Vue 3 + Socket.IO + Node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published