Giter VIP home page Giter VIP logo

astrology-back's Introduction

Документация для проекта "Astrology Backend"

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

Проект "Astrology Backend" представляет собой бэкендную часть астрологического веб-приложения. Бэкенд отвечает за обработку запросов, расчет планетных позиций, систем домов и других астрологических данных, а также взаимодействие с внешними API для получения координат местоположения.

Установка и настройка

Требования

Для корректной работы проекта необходимо удостовериться, что на вашем компьютере установлены Python версии 3.9 и выше, а также инструмент Poetry для управления зависимостями.

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

  1. Склонируйте репозиторий проекта на свой компьютер:

  2. Перейдите в папку проекта:

    cd astrology-backend
  3. Установите зависимости с помощью Poetry:

    poetry install

Настройка окружения

  1. Создайте файл .env в корневой папке проекта.

  2. В файле .env укажите необходимые переменные окружения:

    SECRET_KEY='<ваш_секретный_ключ>'               # ключ для шифрования данных (случайный набор символов)
    MAP_API_KEY='<ключ_для_вашего_Yandex_Maps_API>' # (api-ключ для Яндекс.Карт, получается по ссылке ниже)
    EPH_PATH='<путь_к_эфемеридам_Swiss_Ephemeris>'  # (путь до файлов Эферидам, в проекте уже есть: app/services/eph/s999980s.se1)
    

    Получите ключ API от Yandex по этой ссылке.

Запуск приложения

Чтобы запустить веб-приложение в режиме разработки, выполните следующие шаги:

  1. В папке проекта выполните команду:

    poetry shell
  2. Запуск тестов:

    python manage.py tests

    Если тесты прошли успешно, то можно запускать приложение, если нет - проверьте зависимости.

  3. Затем запустите приложение:

    flask run
  4. Веб-приложение будет доступно по адресу http://127.0.0.1:5000/.

Как использовать

Основная страница

После запуска приложения перейдите по адресу http://127.0.0.1:5000/ в вашем веб-браузере. На данной странице вы сможете ввести необходимые данные, такие как дата и местоположение, для расчета астрологических параметров.

Результаты

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

API

Введение

API предоставляет возможность получения информации о позициях планет и информации о домах на основе заданных параметров.

Базовый URL API: http://127.0.0.1/api

Эндпоинты

Получение позиций планет

Запрос

  • Метод: POST
  • Путь: /planet/planet_positions
  • Формат данных: JSON

Пример тела запроса:

{
    "year": 2023,
    "month": 8,
    "day": 24,
    "hours": 15,
    "minute": 30,
    "place": "Moscow"
}

Ответ

  • Статус: 200 OK
  • Формат данных: JSON

Пример ответа:

[
    {
        "planet": "Sun",
        "longitude": 150.456
    },
    {
        "planet": "Moon",
        "longitude": 220.987
    },
    ...
]

Получение информации о домах

Запрос

  • Метод: POST
  • Путь: /house/house_info
  • Формат данных: JSON

Пример тела запроса:

{
    "year": 2023,
    "month": 8,
    "day": 24,
    "hours": 15,
    "minute": 30,
    "place": "Moscow"
}

Ответ

  • Статус: 200 OK
  • Формат данных: JSON

Пример ответа:

[
    {
        "system": "Placidus",
        "name": "Placidus",
        "info": {
            "ascendant": 30.456,
            "2nd": 45.789,
            ...
        }
    },
    {
        "system": "Koch",
        "name": "Koch",
        "info": {
            "ascendant": 30.123,
            "2nd": 60.987,
            ...
        }
    },
    ...
]

Ошибки

Если произошла ошибка при обработке запроса, API вернет соответствующий статус ошибки и описание ошибки в формате JSON.

Пример ошибки:

{
    "error": "Invalid input data",
    "message": "The provided date is not valid",
    "status": 400
}

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

Проект разработан с использованием следующих технологий и библиотек:

  • Python 3.9+
  • Flask 2.0.1
  • Flask-Bootstrap 3.3.7.1
  • python-dotenv 1.0.0
  • requests 2.31.0
  • ymaps 1.1
  • pyswisseph 2.00.00

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

.
├── app
│   ├── api
│   │   ├── house_api.py
│   │   ├── __init__.py
│   │   └── planet_api.py
│   ├── author.py
│   ├── __init__.py
│   ├── routes.py
│   ├── services
│   │   ├── eph
│   │   │   ├── s999980s.se1
│   │   │   ├── se35967s.se1
│   │   │   └── seas_18.se1
│   │   ├── houses.py
│   │   ├── __init__.py
│   │   ├── maps_api.py
│   │   ├── planet.py
│   │   └── time_convert.py
│   ├── static
│   └── templates
│       ├── index.html
│       └── result.html
├── LICENSE
├── manage.py
├── pyproject.toml
├── README.md
└── tests
    ├── __init__.py
    └── test_app.py

Лицензия

Проект "Astrology Backend" распространяется под лицензией MIT. Подробную информацию о лицензии можно найти в файле LICENSE.

Автор

Автор бекенда: Адриан Макриденко | GitHub: lyaguxafrog / Telegram: @adrian_makridenko

astrology-back's People

Contributors

lyaguxafrog 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.