Giter Club home page Giter Club logo

how_to_flower's Introduction

How to flower

Приложение поможет вам заботиться о комнатных растениях. Здесь вы можете посмотреть советы по освещению и влажности, а так же настроить оповещения о поливах и опрыскиваниях для каждого вашего любимца в телеграм.

Используемые технологии

  • 🐍 Python 3.9
  • 📨 DRF 3.12.4
  • 📦 PostgreSQL 13.0
  • 📝 SQLite (для локального запуска)

Доступ

Приложение доступно в тестовом режиме по ссылке http://how-to-flower.ru/ В данный момент ведется доработка фронтенда.

REST API:

Регистрация и получение токена:

  • Эндпоинт '/api/users/' принимает POST запрос с указанием username, password, email. Пример запроса:
{
  "username": "DanaX",
  "first_name": "Dana",
  "email": "[email protected]",
  "password": "MulderSucks"
}
  • Чтобы получить токен, нужно отправить POST запрос на '/api/auth/token/login/' Пример запроса:
{
  "email": "[email protected]",
  "password": "MulderSucks"
}

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

{
    "auth_token": "e54d3940c1cff251f9e2a1d3f0b47987b754b554"
}

Полученный токен нужно отправлять при каждом запросе:

KEY Authorization 
VALUE Token e54d3940c1cff251f9e2a1d3f0b47987b754b554
  • POST запрос на '/api/my_flowers/' создает в БД новую запись о цветочке пользователя. Пример запроса:
{
  "flower_type": 1,
  "name": "Игорь"
}

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

{
    "id": 1,
    "flower_type": 1,
    "name": "Игорь",
    "owner": 1,
    "image": "http://127.0.0.1:8000/media/flowers/images/00c6058bb1bf68a8d81e3723d068a9c9.png",
    "notification": false
}
  • Изменить информацию о растении можно передав PATCH запрос на '/api/my_flowers/{id}/'

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

{
"flower_type": 1,
"name": "Олег",
"notification": true
}
  • Чтобы включить уведомления нужно отправить PATCH запрос на '/api/my_flowers/{id}/' Пример запроса:
{
  "flower_type": 1,
  "name": "Игорь второй",
  "notification": true
}
  • Кроме этого, чтобы получить уведомления в телеграм нужно добавить в свой профиль chat id Telegram. Отправим PATCH запрос на 'api/users/me/' с указанием чат id:
{
"chat_id": "488501713"
}

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

  1. Клонировать репозиторий, создать виртуальное окружение, установить зависимости:
git clone [email protected]:Kaydalova/how_to_flower.git
python3 -m venv venv
. venv/bin/activate
cd flower_bot
pip install -r  requirements.txt
  1. Убедитесь, что в настройка в файле flower_bot/flower_bot/settings.py указаны корректные настройки БД для локального запуска:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
  1. Создайте и примените миграции:
python manage.py makemigrations
python manage.py migrate
  1. Создайте телеграм бота и запросите токен к нему в https://t.me/BotFather. Добавьте токен в .env файл:
TOKEN=5706906543:AAHCxReGGxu_uTVD2HodrSsnOooOp-XXX_X
  1. После запуска проекта полная документация к API будет доступна по адресу http://127.0.0.1:8000/redoc/

Над проектом работали

Backend https://github.com/Kaydalova Frontend https://github.com/krokodila888

how_to_flower's People

Contributors

kaydalova avatar krokodila888 avatar

Stargazers

 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.