Skip to content

Task scheduler like "Todoist" with a simple Telegram bot.

Notifications You must be signed in to change notification settings

altec3/Task_scheduler

Repository files navigation

Планировщик задач

Build Status Scrutinizer Code Quality

Итоговая работа по курсу Python-разработчик.

Стек: python:3.10, Django:4.1.4, Postgres:12.4

Описание


Приложение для планирования целей.
В приложениии реализован следующий функционал:

  1. Вход/регистрация/аутентификация через вк.
  2. Создание целей.
    • Выбор временного интервала цели с отображением кол-ва дней до завершения цели.
    • Выбор категории цели (личные, работа, развитие, спорт и т. п.) с возможностью добавлять/удалять/обновлять категории.
    • Выбор приоритета цели (статичный список minor, major, critical и т. п.).
    • Выбор статуса выполнения цели (в работе, выполнен, просрочен, в архиве).
  3. Изменение целей.
    • Изменение описания цели.
    • Изменение статуса.
    • Возможность менять приоритет и категорию у цели.
  4. Удаление цели.
    • При удалении цель меняет статус на «в архиве».
  5. Поиск по названию цели.
  6. Фильтрация по статусу, категории, приоритету, году.
  7. Комментарии к целям.
  8. Интеграция с Telegram.

Запуск проекта


Проверить работоспособность проекта можно по адресу https://lealvi.ru/.
В проекте реализован простой Telegram бот, который позволяет просмотреть созданные пользователем цели и создать новую цель.
Для проверки данного функционала в приложении Telegram необходимо начать чат с ботом по имени todolist_lesnikov_bot

Локальный сервер:

Запуск проекта на локальном сервере проще всего производить с помощью платформы Docker.
Требования:

  • [обязательно] установленная платформа Docker с Docker Compose;
  • [желательно] созданное приложение в соц.сети ВКОНТАКТЕ - для реализации авторизации через данную соц.сеть;
  • [желательно] созданный бот в приложении Telegram - для подключения бота к проекту.
  1. Произвести настройку переменных окружения - в папке проекта разметить файл .env (см. файл .env.example):

  2. Выполнить команду:

docker compose up --build -d

Фронтенд-часть будет доступна по адресу localhost:80 и будет ваимодействовать с запущенным бэкенд-сервером.

  1. При необходимости, создать администратора для админ-панели
docker compose exec api python manage.py createsuperuser

Staging сервер:

Требования:

  • [обязательно] установленная на сервере платформа Docker с Docker Compose.
  • [желательно] созданное приложение в соц.сети ВКОНТАКТЕ - для реализации авторизации через данную соц.сеть;
  • [желательно] созданный бот в приложении Telegram - для подключения бота к проекту.
  1. Произвести настройку переменных окружения - в папке проекта на сервере разметить файл .env (см. файл .env.example):

  2. Отредактировать файл docker-compose.yaml в папке \deploy - изменить значения параметров в секции environments сервиса front:
    SERVER_NAME - доменное имя для сертификата. Указать URL-адрес, по которому будет доступен проект;
    CERTBOT_EMAIL - email администратора веб-сервера. Служит для получения уведомлений о домене или регистрации. Изменить по желанию.

front:
    image: altec3/thesis-front:https-latest
    (...)
    environment:
      - SERVER_NAME=your_domain.com
      - CERTBOT_EMAIL=admin@mail.ru
    (...)
  1. Скопировать файл docker-compose.yaml из папки \deploy на сервер (в папку проекта).
  2. В папке проекта на сервере выполнить команду:
docker compose up --build -d

Проект будет доступен по адресу SERVER_NAME:80.

Запуск тестов:

  1. Запустить контейнер с PostgreSQL:
docker compose up db -d
  1. Перейти в папку \todolist:
cd todolist
  1. Выполнить команду:
pytest

About

Task scheduler like "Todoist" with a simple Telegram bot.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages