Проект JServiceQuestions — Сервис сбора уникальных вопросов с сайта https://jservice.io.
Сервис парсит информацию по вопросам с сайта https://jservice.io и сохраняет их в БД.
- Poetry
Зависимости и пакеты управляются через poetry. Убедитесь, что poetry установлен на вашем компьютере и ознакомьтесь с документацией.
- Устанавливаем Poetry версия 1.4.0
curl -sSL https://install.python-poetry.org | python - --version 1.4.0
- Добавляем Poetry в переменную среды PATH
"$HOME/.local/bin" для Unix.
"%APPDATA%\Python\Scripts" для Windows.
- Docker
- Файлы requirements
Файлы редактировать вручную не нужно. Обновление происходит автоматически через pre-commit хуки. - pre-commit хуки
Документация
При каждом коммите выполняются хуки перечисленные в .pre-commit-config.yaml. Если при коммите возникает ошибка, можно запустить хуки вручную:pre-commit run --all-files
- Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:agatinet31/jservice_questions.git cd jservice_questions
- Убедитесь что poetry установлен. Активируйте виртуальное окружение. Установите зависимости
poetry shell poetry install
- Сделайте миграции
alembic upgrade head
- Установите pre-commit хуки
pre-commit install --all
- Убедитесь, что при запуске используется правильное виртуальное окружение.
Посмотреть путь можно следующей командой:
poetry env info --path
Создать и заполнить файл .env:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_SERVER=localhost
POSTGRES_PORT=5432
POSTGRES_DB=js
PGADMIN_DEFAULT_EMAIL: str = "[email protected]"
PGADMIN_DEFAULT_PASSWORD: str = ""
PGADMIN_LISTEN_PORT: str = "8080"
SECRET=^SUPER@SECRET#
CORS_ORIGINS=["http://localhost:8000"]
В корневом каталоге проекта создайте образы и разверните контейнеры Docker:
docker-compose up -d --build
POST /api/question/ - добавление уникальных вопросов с сайта https://jservice.io
query параметр запроса:
{"questions_num": integer}, где questions_num - количество уникальных вопросов, которые надо получить (не более 100)
Пример ответа сервиса для questions_num=3:
{
"id": 72431,
"answer": "Juvenile Delinquent",
"question": "A J.D., which stands for this type of youth, may come from a broken home -- or just be bored",
"value": 300,
"airdate": "2001-05-18T23:00:00",
"created_at": "2022-12-30T22:09:27.154000",
"updated_at": "2022-12-30T22:09:27.154000",
"category_id": 6903
}
Страница PGAdmin доступна по адресу:
http://127.0.0.1:8080
docker-compose exec server bash
# В контейнере выполнить команду
root@a77f3c35bf5e:/app# $JUPYTER
# Перейти по сформированной ссылке доступа
пример:
http://127.0.0.1:8888/lab?token=6b6898a8cc6b80eb68475b64dd83a48c021b8c7d42f2191b
Страница с документацией сервиса будет доступна по адресу:
http://127.0.0.1/docs и http://127.0.0.1/redoc
Андрей Лабутин