Skip to content

pilgrim-nord/python-project-52

Repository files navigation

Менеджер задач

Hexlet tests and linter status:

Actions Status Quality Gate Status Демо: https://python-project-52-nw7g.onrender.com/

Описание

Менеджер задач — это веб-приложение для управления задачами, разработанное на Django. Система позволяет создавать, редактировать и отслеживать задачи с поддержкой статусов, меток и назначения исполнителей.

Основные возможности

👥 Управление пользователями

  • Регистрация новых пользователей
  • Аутентификация и авторизация
  • Просмотр списка пользователей
  • Удаление пользователей

📋 Управление задачами

  • Создание новых задач с подробным описанием
  • Редактирование существующих задач
  • Удаление задач
  • Просмотр детальной информации о задаче
  • Список всех задач с фильтрацией

🏷️ Управление статусами

  • Создание пользовательских статусов для задач
  • Редактирование статусов
  • Удаление статусов
  • Список всех доступных статусов

🏷️ Управление метками

  • Создание меток для категоризации задач
  • Редактирование меток
  • Удаление меток
  • Список всех меток

🔗 Связи и связи

  • Назначение исполнителей на задачи
  • Привязка задач к статусам
  • Добавление меток к задачам
  • Каждая задача имеет автора (создателя)

Технологии

  • Backend: Django 5.2.8
  • Frontend: Bootstrap 5 (через django-bootstrap5)
  • База данных: SQLite (разработка) / PostgreSQL (продакшен)
  • Развертывание: Gunicorn
  • Мониторинг: Rollbar
  • Python: >= 3.11

Установка и запуск

Предварительные требования

  • Python 3.11 или выше
  • pip или uv (рекомендуется)

1. Клонирование репозитория

git clone <repository-url>
cd python-project-52

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

# Используя uv (рекомендуется)
uv sync

# Или используя pip
pip install -r requirements.txt

3. Настройка переменных окружения

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

SECRET_KEY=your-secret-key-here
DEBUG=True
DATABASE_URL=sqlite:///db.sqlite3
ROLLBAR_ACCESS_TOKEN=your-rollbar-token-here

4. Применение миграций

python manage.py migrate

5. Создание суперпользователя (опционально)

python manage.py createsuperuser

6. Загрузка фикстур (опционально)

python manage.py loaddata task_manager/statuses/fixtures/statuses.json
python manage.py loaddata task_manager/users/fixtures/users.json

7. Запуск сервера разработки

python manage.py runserver

Приложение будет доступно по адресу: http://127.0.0.1:8000

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

task_manager/
├── users/           # Управление пользователями
├── statuses/        # Управление статусами задач
├── tasks/          # Управление задачами
├── labels/         # Управление метками
└── templates/      # HTML шаблоны
    ├── base.html   # Базовый шаблон
    ├── users/      # Шаблоны пользователей
    ├── statuses/   # Шаблоны статусов
    ├── tasks/      # Шаблоны задач
    └── labels/     # Шаблоны меток

Модели данных

Задача (Task)

  • name: Название задачи
  • description: Подробное описание
  • author: Автор задачи (ForeignKey к User)
  • executor: Исполнитель задачи (ForeignKey к User, опционально)
  • status: Статус задачи (ForeignKey к Status)
  • labels: Метки задачи (ManyToMany к Label)
  • created_at: Дата создания

Статус (Status)

  • name: Название статуса
  • created_at: Дата создания

Метка (Label)

  • name: Название метки (уникальное)
  • created_at: Дата создания

Основные команды

Разработка

# Запуск сервера разработки
python manage.py runserver

# Создание миграций
python manage.py makemigrations

# Применение миграций
python manage.py migrate

# Создание суперпользователя
python manage.py createsuperuser

Тестирование

# Запуск тестов
python manage.py test

# Запуск тестов с покрытием
coverage run --source='.' manage.py test
coverage report

Развертывание

# Сборка статических файлов
python manage.py collectstatic

# Запуск с Gunicorn
gunicorn task_manager.wsgi:application

Лицензия

Этот проект создан в рамках обучающего курса Hexlet.

Автор

Проект разработан в рамках курса "Python-разработчик" на платформе Hexlet.

Поддержка

Для получения поддержки и вопросов, пожалуйста, создайте issue в репозитории проекта.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages