Багатофункціональна система управління завданнями, проектами та командами, розроблена з використанням Django.
- Можливості
- Технічний стек
- Архітектура проекту
- Установка та запуск
- Структура проекту
- Моделі даних
- Основні компоненти
- Розширення функціоналу
- Створення, редагування, видалення та перегляд завдань
- Різні статуси завдань (To-do, In Progress, Done)
- Система пошуку та фільтрації завдань
- Встановлення термінів та відстеження дедлайнів
- Позначення пріоритетів завдань
- Створення та управління проєктами
- Об'єднання завдань у проєкти
- Відстеження прогресу проєктів
- Статистика завершених та незавершених завдань
- Редагування та видалення проєктів
- Створення та управління командами
- Призначення завдань учасникам команди
- Спільний доступ до проєктів
- Відстеження активності членів команди
- Редагування та видалення команд
- Додавання тегів до завдань
- Зручне групування та фільтрація за тегами
- Швидкий доступ до пов'язаних завдань
- Персональний дашборд для користувача
- Відображення завдань за терміновістю
- Статистика продуктивності
- Огляд поточних проєктів та команд
- Бекенд: Django 3.2+, Python 3.8+
- База даних: SQLite (для розробки), легко розширюється до PostgreSQL для продакшн
- Фронтенд: HTML, CSS, JavaScript, Bootstrap 5
- UI компоненти: Font Awesome, Bootstrap модальні вікна, форми
- Аутентифікація: Вбудована система Django з розширеннями
- Інструменти розробника: Django Debug Toolbar (опціонально)
Додаток побудовано на основі патерну MTV (Model-Template-View) Django з розширеннями:
- Міксини - для повторного використання коду та логіки
- Class-Based Views - для структурованої обробки запитів
- Модульні шаблони - для повторного використання компонентів інтерфейсу
- Сервісний шар - для відокремлення бізнес-логіки від представлень
- Python 3.8 або вище
- pip (менеджер пакетів Python)
- virtualenv (опціонально, але рекомендується)
-
Клонування репозиторію
git clone <repository-url> cd task_manager
-
Створення віртуального середовища
python -m venv venv
-
Активація віртуального середовища
Для Windows:
venv\Scripts\activate
Для Linux/Mac:
source venv/bin/activate -
Встановлення залежностей
pip install -r requirements.txt
-
Застосування міграцій
python manage.py migrate
-
Створення суперкористувача (опціонально)
python manage.py createsuperuser
-
Запуск сервера розробки
python manage.py runserver
-
Доступ до додатку Відкрийте браузер і перейдіть за адресою: http://127.0.0.1:8000/
task_manager/
│
├── task_manager/ # Основний проєкт Django
│ ├── settings.py # Налаштування проєкту
│ ├── urls.py # Основні URL маршрути
│ ├── wsgi.py # WSGI-конфігурація
│ └── asgi.py # ASGI-конфігурація
│
├── tasks/ # Додаток для управління завданнями
│ ├── migrations/ # Міграції бази даних
│ ├── templates/ # HTML-шаблони
│ ├── templatetags/ # Користувацькі теги шаблонів
│ ├── forms.py # Форми для роботи з даними
│ ├── mixins.py # Міксини для представлень
│ ├── models.py # Моделі даних
│ ├── urls.py # URL-маршрути додатку
│ ├── views.py # Базові представлення
│ ├── task_views.py # Представлення для завдань
│ ├── project_views.py # Представлення для проєктів
│ ├── team_views.py # Представлення для команд
│ ├── auth_views.py # Представлення для аутентифікації
│ └── services.py # Сервісний шар
│
├── templates/ # Загальні шаблони проєкту
│ ├── base.html # Базовий шаблон
│ ├── components/ # Компоненти інтерфейсу, що повторно використовуються
│ ├── layouts/ # Макети сторінок
│ └── ... # Інші шаблони
│
├── static/ # Статичні файли (CSS, JS, зображення)
│ ├── css/ # Стилі
│ ├── js/ # JavaScript
│ └── images/ # Зображення
│
├── manage.py # Скрипт управління Django
├── requirements.txt # Залежності Python
└── README.md # Документація проєкту
- title - Назва завдання
- description - Опис
- status - Статус (to_do, in_progress, done)
- priority - Пріоритет (low, medium, high)
- deadline - Термін виконання
- created_by - Автор
- assigned_to - Виконавець
- project - Проєкт
- tags - Теги
- created_at - Дата створення
- updated_at - Дата оновлення
- name - Назва проєкту
- description - Опис
- created_by - Автор
- created_at - Дата створення
- updated_at - Дата оновлення
- name - Назва команди
- description - Опис
- members - Учасники команди
- projects - Проєкти команди
- created_at - Дата створення
- name - Назва тегу
- color - Колір (для відображення)
Міксини використовуються для повторного використання коду в представленнях. Основні міксини:
- TaskPermissionMixin - Управління правами доступу до завдань
- ProjectAccessMixin - Перевірка доступу до проєктів
- EntityFormMixin - Спільні методи для форм сутностей
- TaskQuerysetMixin - Часто використовувані запити до завдань
- FormUserKwargsMixin - Передача користувача у форми
- OwnershipMixin - Автоматичне призначення автора
- FilterMixin - Обробка фільтрів у ListView
- DeleteConfirmationMixin - Підтвердження видалення об'єктів
- StatsMixin - Додавання статистики в контекст
Проєкт використовує Class-Based Views Django для обробки запитів:
- TaskViews - Представлення для роботи з завданнями
- ProjectViews - Представлення для роботи з проєктами
- TeamViews - Представлення для роботи з командами
- AuthViews - Представлення для аутентифікації
Форми для управління даними:
- TaskForm - Форма створення та редагування завдання
- ProjectForm - Форма проєкту
- TeamForm - Форма команди
- TaskFilterForm - Форма для фільтрації завдань
- RegisterForm - Форма реєстрації користувача
Проєкт використовує модульну систему шаблонів з поділом на компоненти:
- base.html - Основний шаблон
- components/ - Компоненти, що повторно використовуються (breadcrumbs, cards, etc.)
- layouts/ - Макети сторінок
- tasks/ - Шаблони для завдань
- projects/ - Шаблони для проєктів
- teams/ - Шаблони для команд
- auth/ - Шаблони аутентифікації
- Створіть модель у
models.py - Створіть форми у
forms.py - Створіть представлення в новому файлі, наприклад
new_entity_views.py - Додайте URL-маршрути в
urls.py - Створіть шаблони у відповідній папці
- Для загальної логіки використовуйте міксини в
mixins.py - Для бізнес-логіки створіть функції в
services.py - Для користувацьких тегів використовуйте
templatetags/
- Використовуйте
TaskPermissionMixinяк приклад - Для більш складних сценаріїв розгляньте Django Permissions або django-guardian
Task Manager - це потужний та гнучкий додаток для управління завданнями та проєктами. Він підходить як для особистого використання, так і для невеликих команд. Архітектура додатку заснована на кращих практиках Django і дозволяє легко розширювати функціональність за необхідності.
Якщо у вас виникли питання або пропозиції, не соромтеся створювати issues або pull requests у репозиторії проєкту.