Проект "Astrology Backend" представляет собой бэкендную часть астрологического веб-приложения. Бэкенд отвечает за обработку запросов, расчет планетных позиций, систем домов и других астрологических данных, а также взаимодействие с внешними API для получения координат местоположения.
Для корректной работы проекта необходимо удостовериться, что на вашем компьютере установлены Python версии 3.9 и выше, а также инструмент Poetry для управления зависимостями.
-
Склонируйте репозиторий проекта на свой компьютер:
-
Перейдите в папку проекта:
cd astrology-backend
-
Установите зависимости с помощью Poetry:
poetry install
-
Создайте файл
.env
в корневой папке проекта. -
В файле
.env
укажите необходимые переменные окружения:SECRET_KEY='<ваш_секретный_ключ>' # ключ для шифрования данных (случайный набор символов) MAP_API_KEY='<ключ_для_вашего_Yandex_Maps_API>' # (api-ключ для Яндекс.Карт, получается по ссылке ниже) EPH_PATH='<путь_к_эфемеридам_Swiss_Ephemeris>' # (путь до файлов Эферидам, в проекте уже есть: app/services/eph/s999980s.se1)
Получите ключ API от Yandex по этой ссылке.
Чтобы запустить веб-приложение в режиме разработки, выполните следующие шаги:
-
В папке проекта выполните команду:
poetry shell
-
Запуск тестов:
python manage.py tests
Если тесты прошли успешно, то можно запускать приложение, если нет - проверьте зависимости.
-
Затем запустите приложение:
flask run
-
Веб-приложение будет доступно по адресу http://127.0.0.1:5000/.
После запуска приложения перейдите по адресу http://127.0.0.1:5000/ в вашем веб-браузере. На данной странице вы сможете ввести необходимые данные, такие как дата и местоположение, для расчета астрологических параметров.
После отправки данных на странице основного интерфейса, вы будете перенаправлены на страницу с результатами, где будут отображены планетные позиции и информация о системах домов для выбранной даты и местоположения.
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