Coder Social home page Coder Social logo

emp_track's Introduction

Emp Track

Трекер вакансий для работодателя

EmpTrack Workflow

Описание проекта

Внутренний сервис найма студентов.

Предоставляет возможность партнерам работать с базой заинтересованных кандидатов и отбирать не только текущих студентов, но и выпускников уровня middle и выше.

Сервис с открытой базой из кандидатов для трудоустройства в компании-портнеры Практикума. Интерфейс помогает более качественно презентовать и рекомендовать студентов Практикума на вакантные, партнерские позиции в IT-компании России, а так же помочь быстрее отбирать кандидатов на специфические позиции с дополнительными требованиями.

Стек технологий

Python Django DjangoREST Swagger Docker Postgres Nginx

Структура проекта

Структура базы данных

Структура репозитория

Специфика ендпойнтов в Swagger

Документация Redoc


Адрес проекта

(запускается локально)

http://127.0.0.1:8000/

(запуск на сервере)

https://51.250.74.42:8000/

/admin/ # Адрес админки проекта

/swagger/ # Документация

Handlers

api/auth/users/  # регистрация пользователя
api/auth/token/login/  # вход из системы
api/auth/token/logout/  # выход в систему

api/employer/  # Профиль нанимателя(HR)
api/employer/vacancy/  # Описание вакансии
api/employer/create/step-1/ # Первый шаг создания вакансии
api/employer/create/step-2/ # Второй шаг создания вакансии

api/resume/  # Резюме кандидата

api/tracker/  # Трекер вакансий
api/tracker/<vacancy_id>/comparison/  # Сравнение подходящих вакансий
api/tracker/<vacancy_id>/favorite/  # Избранные вакансии кандидатов
api/tracker/<vacancy_id>/invitation/  # Приглашенные кандидаты

Подготовка проекта к запуску

3 пункт для локального запуска. 4 пункт для ведения разработки

  1. Склонируйте репозиторий и перейдите в него:

    git clone https://github.com/Oskalovlev/emp_track.git
    cd YaTrack-backend/

  1. Для работы с PostgreSQL:

    • Создайте в директории infra/ файл .env командой:

      touch infra/.env

      Заполните переменные по примеру файла .env.example


  1. Создайте и активируйте виртуальное окружение Poetry:

    Установка Poetry(Если не установлено)

    Для Linux, macOS, Windows (WSL):

    curl -sSL https://install.python-poetry.org | python3 -

    Для Windows (Powershell):

    (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
    • В macOS и Windows сценарий установки предложит добавить папку с исполняемым файлом Poetry в переменную PATH. Сделайте это, выполнив следующую команду (не забудьте поменять {USERNAME} на имя вашего пользователя):

      • macOS:
        export PATH="/Users/{USERNAME}/.local/bin:$PATH"
      • Windows:
        $Env:Path += ";C:\Users\{USERNAME}\AppData\Roaming\Python\Scripts"; setx PATH "$Env:Path"

      Проверить установку: bash poetry --version

      • Установка автодополнений bash (опционально):
        poetry completions bash >> ~/.bash_completion

    Запуск виртуального окружения

    • Создать файл .toml:
         poetry init

    Соглашаясь на все стандартные значения, если нет другого варианта

    • Создание виртуального окружения:
          poetry env use python
    • Установка зависимостей:
          poetry install --with dev,test
    • Запуск оболочки и активация виртуального окружения (из папки проекта):
          poetry shell
    • Проверка активации виртуального окружения:
          poetry env list

    Потенциальные проблемы

    a. виртуальное окружение Poetry недоступно при выборе интерпретатора

    С высокой вероятностью виртуальное окружение создалось вне папки проекта. Командой ниже можно удостовериться, что окружение будет создано внутри пути проекта:

    poetry config virtualenvs.in-project true

    Если проект уже был создан, придется пересоздать окружение:

    poetry env list  # вывести имя текущего окружения
    poetry env remove <current environment>  # удалить текущее окружение
    poetry install  # создаст новое окружение с уже с учетом нового конфига virtualenvs.in-project true

    b. путь к Poetry не прописан / приходится указывать заново при переоткрытии проекта в редакторе

    В зависимости от типа используемой оболочки, найдите и откройте bashrc / zshrc файл:

    nano ~/.zshrc

    Если в файле нет этой строки, добавьте ее и сохраните изменения (не забудьте указать свой {USERNAME}):

    export PATH="/Users/{USERNAME}/.local/bin:$PATH"

  1. Настройте pre-commit: pre-commit установится автоматически, после ввода команды зависимостей, можно проверить:

      pre-commit --version

    Для работы нужно ввести команду:

      pre-commit install

    Теперь pre-commit рабатывает автоматически при коммитах.

    Исправленные black'ом файлы нужно добавить:

      git add .

Для запуска в Docker-контейнере используйте инструкцию

  1. Запустите сборку контейнеров:

    docker compose -f infra/docker-compose.yaml up -d --build
  2. Для остановки контейнеров:

    docker compose -f infra/docker-compose.yaml stop
  3. Для удаления контейнеров:

    docker compose -f infra/docker-compose.yaml down (-v опционально, удалит связи)

Для локального запуска используйте инструкцию

  1. Выполните миграции:

    • Инициализируйте миграции (опционально)

      python src/backend/manage.py migrate
    • Создайте миграции

      python src/backend/manage.py makemigrations user
      python src/backend/manage.py makemigrations tracker
    • Примените миграции

      python src/backend/manage.py migrate

  1. Создайте суперюзера:

    python src/backend/manage.py createsuperuser

    Для примера, данные суперюзера:

     username: admin
     mail: [email protected]
     password: admin
     password (again): admin
    

    При входе логин указывать с большой буквы Admin


  1. Соберите статику:
    python src/backend/manage.py collectstatic --noinput

  1. Локальный запуск:

    python src/backend/manage.py runserver

PS Это побочная версия из хакатона, в котором я учавствовал в роли backend-разработчика. Доработал на свой взгляд, добавил фронтенд.

ссылка на сертификат участника: Сертификат хакатона Трекер

Автор

emp_track's People

Contributors

oskalovlev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.