1"""
2[Title/Звание]
3
4TaskFlow
5
6[Description/Обрисовка]
7
8TaskFlow е настолно приложение, което помага на потребителите да организират задачите си. Приложението предоставя функционалности за добавяне, редактиране, филтриране и следене на напредъка на задачите. Освен това включва допълнителни функции като статистика, потребителски роли и архивиране на стари задачи.
9
10[Functionalities/Надарености]
11
121. **Добавяне на задачи:**
13 - Въвеждане на заглавие, описание, краен срок и приоритет на задачата.
14
152. **Обновяване на задачи:**
16 - Редактиране на информация за съществуващи задачи, включително промяна на статус (напр. "Изпълнена").
17
183. **Изтриване на задачи:**
19 - Премахване на задачи от списъка.
20
214. **Преглед на задачи:**
22 - Визуализация на текущите задачи с възможност за сортиране и филтриране по статус и приоритет.
23
245. **Търсачка:**
25 - Търсене на задачи чрез ключова дума в заглавие или описание.
26
276. **Уведомления:**
28 - Известия за задачи с наближаващ или изтекъл срок.
29
307. **Генериране на отчети:**
31 - Създаване на текстов или PDF отчет за напредъка (напр. брой изпълнени задачи спрямо всички задачи).
32
338. **Архивиране на задачи:**
34 - Прехвърляне на изпълнените задачи в отделен архив, за да се поддържа списъкът с текущи задачи подреден.
35
369. **Потребителски профили и роли:**
37 - Възможност за създаване на множество потребители с различни роли:
38 - Администратор: Може да управлява всички задачи.
39 - Потребител: Може да управлява само своите задачи.
40
4110. **Статистика:**
42 - Визуализация на напредъка чрез графики:
43 - Брой изпълнени задачи спрямо всички.
44 - Най-често срещани категории задачи.
45 - Разпределение на задачите по приоритети.
46
4711. **Повтарящи се задачи:**
48 - Автоматично създаване на задачи, които се повтарят (напр. ежеседмични, ежемесечни).
49
5012. **Теми за интерфейса:**
51 - Възможност за избор между светла и тъмна тема.
52
5313. **Експорт и импорт:**
54 - Експорт на данните в CSV формат за архивиране или споделяне.
55 - Импорт на задачи от CSV файл.
56
57[Milestones/Възлови точки]
58
591. **Създаване на база данни:**
60 - Реализация на база данни със SQLAlchemy, включваща таблици за задачи, категории, приоритети и потребители.
61
622. **Логика за управление на задачи:**
63 - Реализация на CRUD операции (Create, Read, Update, Delete) за задачи.
64 - Имплементация на логика за архивиране на задачи.
65
663. **Графичен интерфейс:**
67 - Създаване на интуитивен GUI с Tkinter.
68 - Добавяне на бутони за добавяне, редактиране и изтриване на задачи.
69 - Реализация на функционалност за промяна на тема.
70
714. **Филтриране и търсене:**
72 - Добавяне на функционалности за филтриране по статус и приоритет.
73 - Търсене по ключова дума в заглавие и описание.
74
755. **Генериране на отчети:**
76 - Реализация на модул за създаване на отчети в PDF и CSV формат.
77
786. **Потребителски профили:**
79 - Създаване на механизъм за управление на потребители и роли.
80
817. **Статистика:**
82 - Визуализация на напредъка чрез графики с Matplotlib.
83
848. **Повтарящи се задачи:**
85 - Автоматизация за създаване на повтарящи се задачи.
86
879. **Тестване:**
88 - Тестване на всички функционалности и отстраняване на грешки.
89
90[Estimate in man-hours/Времеоценка в човекочасове]
91
92| Етап | Време (ч) |
93|-------------------------------------|-----------|
94| Създаване на база данни (SQLAlchemy)| 10 |
95| Логика за управление на задачи | 12 |
96| Графичен интерфейс | 14 |
97| Филтриране и търсене | 8 |
98| Генериране на отчети | 6 |
99| Потребителски профили и роли | 8 |
100| Статистика | 6 |
101| Повтарящи се задачи | 4 |
102| Тестване и отстраняване на грешки | 6 |
103| **Общо** | **74** |
104
105[Usage of technologies/Потребление на технологии]
106
1071. **Python (вградени библиотеки):** Основна логика на програмата.
1082. **Tkinter:** За създаване на графичния интерфейс.
1093. **SQLAlchemy:** За управление на базата данни и извършване на CRUD операции.
1104. **Datetime:** За управление на крайните срокове.
1115. **Pandas:** За обработка на данни и генериране на отчети.
1126. **ReportLab:** За създаване на PDF отчети.
1137. **Matplotlib:** За визуализиране на статистиката.
114"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Виктор Бечев
01.12.2024 00:46Надявам се не съм те подвел, използвайки терминът "API". Сега си писал за "API", но в контекста на Flask. Това значи ли, че си променил идеята към това да е уеб-базирано, а не Tkinter?
Използваните технологии липсват в новата версия.
|
Димитър Илиев
28.11.2024 14:45Благодаря за обратната връзка, ще кача променена документация!
|
Виктор Бечев
28.11.2024 13:47Що се отнася до съхранението на данните - препоръчвам ти да се насочиш към реална база данни, а не към JSON. Разгледай SQLAlchemy, за да си улесниш живота и да не пишеш ръчно заявки към база.
Отвъд това - проектът малее. Ако разделим нещата на back-end и front-end - back-end-ът ти е около 20% от цялото нещо. Замисли се ако нямаш графична репрезентация _(ако го третираш като API, т.е. само обекти и методи към тях)_ - колко трудно би било да имаш всичките останали точки?
На практика ще са един-два класа с по няколко метода, което е повече като за домашно, отколкото за проект. И да, ще имаш занимавка с Tkinter, но отново ако дизайнът ти е достатъчно добър - няма да е безкрайно много код.
|
| f | 1 | """ | f | 1 | """ |
| 2 | [Title/Звание] | 2 | [Title/Звание] | ||
| 3 | 3 | ||||
| n | 4 | Advanced Task Manager | n | 4 | TaskFlow |
| 5 | 5 | ||||
| n | 6 | --- | n | 6 | [Description/Обрисовка] |
| 7 | |||||
| 8 | TaskFlow е настолно приложение, което помага на потребителите да организират задачите си. Приложението предоставя функционалности за добавяне, редактиране, филтриране и следене на напредъка на задачите. Освен това включва допълнителни функции като статистика, потребителски роли и архивиране на стари задачи. | ||||
| 7 | 9 | ||||
| 8 | [Functionalities/Надарености] | 10 | [Functionalities/Надарености] | ||
| 9 | 11 | ||||
| n | 10 | 1. Управление на задачи: | n | 12 | 1. **Добавяне на задачи:** |
| 11 | - CRUD операции (Create, Read, Update, Delete) за задачи. | 13 | - Въвеждане на заглавие, описание, краен срок и приоритет на задачата. | ||
| 12 | - Поддръжка на допълнителни атрибути: статус, приоритет, краен срок, категория. | ||||
| 13 | 14 | ||||
| n | 14 | 2. История на действията: | n | 15 | 2. **Обновяване на задачи:** |
| 15 | - Съхранение на логове за всяко действие (добавяне, редактиране, изтриване). | 16 | - Редактиране на информация за съществуващи задачи, включително промяна на статус (напр. "Изпълнена"). | ||
| 16 | 17 | ||||
| n | 17 | 3. Потребители и роли: | n | 18 | 3. **Изтриване на задачи:** |
| 18 | - Въвеждане на потребителска система с роли (администратор, потребител). | 19 | - Премахване на задачи от списъка. | ||
| 19 | 20 | ||||
| n | 20 | 4. Филтри и търсене: | n | 21 | 4. **Преглед на задачи:** |
| 21 | - Филтриране по статус, категория и приоритет. | 22 | - Визуализация на текущите задачи с възможност за сортиране и филтриране по статус и приоритет. | ||
| 22 | - Търсене по ключови думи в заглавието или описанието. | ||||
| 23 | 23 | ||||
| n | 24 | 5. Уведомления: | n | 24 | 5. **Търсачка:** |
| 25 | - Автоматично известяване за задачи с изтекъл срок (чрез API или команден ред). | 25 | - Търсене на задачи чрез ключова дума в заглавие или описание. | ||
| 26 | 26 | ||||
| n | 27 | 6. Отчети: | n | 27 | 6. **Уведомления:** |
| 28 | - Генериране на отчети в JSON или CSV формат за конкретен потребител или период. | 28 | - Известия за задачи с наближаващ или изтекъл срок. | ||
| 29 | 29 | ||||
| n | 30 | 7. RESTful API: | n | 30 | 7. **Генериране на отчети:** |
| 31 | - Реализация на API за взаимодействие с базата данни: | 31 | - Създаване на текстов или PDF отчет за напредъка (напр. брой изпълнени задачи спрямо всички задачи). | ||
| 32 | - CRUD операции за задачи, категории, приоритети и потребители. | ||||
| 33 | - Аутентикация и авторизация (JWT). | ||||
| 34 | 32 | ||||
| n | 35 | 8. Тестване: | n | 33 | 8. **Архивиране на задачи:** |
| 36 | - Написване на модулни тестове за основните функционалности (с pytest). | 34 | - Прехвърляне на изпълнените задачи в отделен архив, за да се поддържа списъкът с текущи задачи подреден. | ||
| 37 | 35 | ||||
| n | 38 | --- | n | 36 | 9. **Потребителски профили и роли:** |
| 37 | - Възможност за създаване на множество потребители с различни роли: | ||||
| 38 | - Администратор: Може да управлява всички задачи. | ||||
| 39 | - Потребител: Може да управлява само своите задачи. | ||||
| 40 | |||||
| 41 | 10. **Статистика:** | ||||
| 42 | - Визуализация на напредъка чрез графики: | ||||
| 43 | - Брой изпълнени задачи спрямо всички. | ||||
| 44 | - Най-често срещани категории задачи. | ||||
| 45 | - Разпределение на задачите по приоритети. | ||||
| 46 | |||||
| 47 | 11. **Повтарящи се задачи:** | ||||
| 48 | - Автоматично създаване на задачи, които се повтарят (напр. ежеседмични, ежемесечни). | ||||
| 49 | |||||
| 50 | 12. **Теми за интерфейса:** | ||||
| 51 | - Възможност за избор между светла и тъмна тема. | ||||
| 52 | |||||
| 53 | 13. **Експорт и импорт:** | ||||
| 54 | - Експорт на данните в CSV формат за архивиране или споделяне. | ||||
| 55 | - Импорт на задачи от CSV файл. | ||||
| 39 | 56 | ||||
| 40 | [Milestones/Възлови точки] | 57 | [Milestones/Възлови точки] | ||
| 41 | 58 | ||||
| n | 42 | 1. **Архитектура на базата данни** | n | 59 | 1. **Създаване на база данни:** |
| 43 | - Дизайн и реализация на релационна база данни с SQLAlchemy. | 60 | - Реализация на база данни със SQLAlchemy, включваща таблици за задачи, категории, приоритети и потребители. | ||
| 44 | - Таблици: | ||||
| 45 | - `tasks` (задачи) | ||||
| 46 | - `categories` (категории) | ||||
| 47 | - `priorities` (приоритети) | ||||
| 48 | - `users` (потребители) | ||||
| 49 | - `logs` (логове за действия) | ||||
| 50 | 61 | ||||
| n | 51 | 2. **API слой** | n | 62 | 2. **Логика за управление на задачи:** |
| 52 | - Реализация на RESTful API с Flask: | 63 | - Реализация на CRUD операции (Create, Read, Update, Delete) за задачи. | ||
| 53 | - CRUD операции за всички таблици. | 64 | - Имплементация на логика за архивиране на задачи. | ||
| 54 | - Аутентикация и авторизация (JWT). | ||||
| 55 | 65 | ||||
| n | 56 | 3. **Филтри и търсене** | n | 66 | 3. **Графичен интерфейс:** |
| 57 | - Поддръжка на query параметри в API за филтриране и търсене. | 67 | - Създаване на интуитивен GUI с Tkinter. | ||
| 68 | - Добавяне на бутони за добавяне, редактиране и изтриване на задачи. | ||||
| 69 | - Реализация на функционалност за промяна на тема. | ||||
| 58 | 70 | ||||
| n | 59 | 4. **Уведомления** | n | 71 | 4. **Филтриране и търсене:** |
| 60 | - Система за известия за задачи с изтекъл срок. | 72 | - Добавяне на функционалности за филтриране по статус и приоритет. | ||
| 73 | - Търсене по ключова дума в заглавие и описание. | ||||
| 61 | 74 | ||||
| n | 62 | 5. **Отчети** | n | 75 | 5. **Генериране на отчети:** |
| 63 | - Генериране на JSON и CSV отчети за потребителски активности. | 76 | - Реализация на модул за създаване на отчети в PDF и CSV формат. | ||
| 64 | 77 | ||||
| n | 65 | 6. **Тестване** | n | 78 | 6. **Потребителски профили:** |
| 66 | - Написване на модулни и интеграционни тестове с pytest. | 79 | - Създаване на механизъм за управление на потребители и роли. | ||
| 67 | 80 | ||||
| n | 68 | --- | n | 81 | 7. **Статистика:** |
| 82 | - Визуализация на напредъка чрез графики с Matplotlib. | ||||
| 69 | 83 | ||||
| n | n | 84 | 8. **Повтарящи се задачи:** | ||
| 85 | - Автоматизация за създаване на повтарящи се задачи. | ||||
| 86 | |||||
| 87 | 9. **Тестване:** | ||||
| 88 | - Тестване на всички функционалности и отстраняване на грешки. | ||||
| 70 | 89 | ||||
| 71 | [Estimate in man-hours/Времеоценка в човекочасове] | 90 | [Estimate in man-hours/Времеоценка в човекочасове] | ||
| 72 | 91 | ||||
| n | 73 | n | |||
| 74 | | Етап | Време (ч) | | 92 | | Етап | Време (ч) | | ||
| 75 | |-------------------------------------|-----------| | 93 | |-------------------------------------|-----------| | ||
| n | 76 | | Създаване на база данни (SQLAlchemy)| 6 | | n | 94 | | Създаване на база данни (SQLAlchemy)| 10 | |
| 77 | | Реализация на API (Flask) | 10 | | 95 | | Логика за управление на задачи | 12 | | ||
| 78 | | Аутентикация и авторизация (JWT) | 6 | | 96 | | Графичен интерфейс | 14 | | ||
| 79 | | Филтриране и търсене | 6 | | 97 | | Филтриране и търсене | 8 | | ||
| 80 | | Уведомления | 4 | | ||||
| 81 | | Генериране на отчети (Pandas) | 4 | | 98 | | Генериране на отчети | 6 | | ||
| 82 | | Тестване (pytest) | 6 | | 99 | | Потребителски профили и роли | 8 | | ||
| 100 | | Статистика | 6 | | ||||
| 101 | | Повтарящи се задачи | 4 | | ||||
| 102 | | Тестване и отстраняване на грешки | 6 | | ||||
| 83 | | **Общо** | **42** | | 103 | | **Общо** | **74** | | ||
| 84 | 104 | ||||
| t | t | 105 | [Usage of technologies/Потребление на технологии] | ||
| 106 | |||||
| 107 | 1. **Python (вградени библиотеки):** Основна логика на програмата. | ||||
| 108 | 2. **Tkinter:** За създаване на графичния интерфейс. | ||||
| 109 | 3. **SQLAlchemy:** За управление на базата данни и извършване на CRUD операции. | ||||
| 110 | 4. **Datetime:** За управление на крайните срокове. | ||||
| 111 | 5. **Pandas:** За обработка на данни и генериране на отчети. | ||||
| 112 | 6. **ReportLab:** За създаване на PDF отчети. | ||||
| 113 | 7. **Matplotlib:** За визуализиране на статистиката. | ||||
| 85 | """ | 114 | """ |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
| n | n | 1 | """ | ||
| 2 | [Title/Звание] | ||||
| 1 | 3 | ||||
| n | 2 | """ | n | 4 | Advanced Task Manager |
| 3 | Task Manager - Простичко приложение за управление на личните ви задачи | ||||
| 4 | |||||
| 5 | [Description/Описания] | ||||
| 6 | |||||
| 7 | Task Manager е приложение за управление на лични задачи. Потребителите могат да добавят нови задачи, | ||||
| 8 | да отбелязват задачите като изпълнени, да виждат статистики за прогреса си и дори да филтрират задачи | ||||
| 9 | по статус. Приложението е проектирано с простичък интерфейс, който включва текстово поле за търсене, | ||||
| 10 | бутон за добавяне на задачи и меню за управление на различни опции. | ||||
| 11 | 5 | ||||
| 12 | --- | 6 | --- | ||
| 13 | 7 | ||||
| n | 14 | [Functionalities/Функционалности] | n | 8 | [Functionalities/Надарености] |
| 15 | 9 | ||||
| n | 16 | 1. Добавяне на задачи: Потребителят въвежда заглавие и краен срок на задачата. | n | 10 | 1. Управление на задачи: |
| 17 | 2. Преглед на задачи: Списък на всички задачи, сортирани по статус (изпълнени или неизпълнени). | 11 | - CRUD операции (Create, Read, Update, Delete) за задачи. | ||
| 18 | 3. Редактиране на задачи: Възможност за промяна на заглавие или краен срок на задачите. | 12 | - Поддръжка на допълнителни атрибути: статус, приоритет, краен срок, категория. | ||
| 19 | 4. Маркиране на задачи: Отбелязване на задачи като изпълнени. | 13 | |||
| 20 | 5. Изтриване на задачи: Премахване на задачи от списъка. | 14 | 2. История на действията: | ||
| 21 | 6. Филтриране: Показване само на изпълнени, неизпълнени или всички задачи. | 15 | - Съхранение на логове за всяко действие (добавяне, редактиране, изтриване). | ||
| 22 | 7. Търсачка: Поле за търсене, което позволява намиране на задачи по ключова дума. | 16 | |||
| 23 | 8. Уведомления: Изскачащи съобщения за задачи с изтекъл срок. | 17 | 3. Потребители и роли: | ||
| 24 | 9. Експорт на отчет: Генериране на текстов файл с всички задачи, разделени по статус. | 18 | - Въвеждане на потребителска система с роли (администратор, потребител). | ||
| 25 | 10. Промяна на тема: Възможност за смяна между светла и тъмна тема. | 19 | |||
| 20 | 4. Филтри и търсене: | ||||
| 21 | - Филтриране по статус, категория и приоритет. | ||||
| 22 | - Търсене по ключови думи в заглавието или описанието. | ||||
| 23 | |||||
| 24 | 5. Уведомления: | ||||
| 25 | - Автоматично известяване за задачи с изтекъл срок (чрез API или команден ред). | ||||
| 26 | |||||
| 27 | 6. Отчети: | ||||
| 28 | - Генериране на отчети в JSON или CSV формат за конкретен потребител или период. | ||||
| 29 | |||||
| 30 | 7. RESTful API: | ||||
| 31 | - Реализация на API за взаимодействие с базата данни: | ||||
| 32 | - CRUD операции за задачи, категории, приоритети и потребители. | ||||
| 33 | - Аутентикация и авторизация (JWT). | ||||
| 34 | |||||
| 35 | 8. Тестване: | ||||
| 36 | - Написване на модулни тестове за основните функционалности (с pytest). | ||||
| 26 | 37 | ||||
| 27 | --- | 38 | --- | ||
| 28 | 39 | ||||
| 29 | [Milestones/Възлови точки] | 40 | [Milestones/Възлови точки] | ||
| 30 | 41 | ||||
| n | 31 | 1. Създаване на база данни: | n | 42 | 1. **Архитектура на базата данни** |
| 32 | - Съхранение на данните за задачите в JSON файл. | 43 | - Дизайн и реализация на релационна база данни с SQLAlchemy. | ||
| 33 | - Данните включват: заглавие, краен срок и статус (изпълнена/неизпълнена). | 44 | - Таблици: | ||
| 45 | - `tasks` (задачи) | ||||
| 46 | - `categories` (категории) | ||||
| 47 | - `priorities` (приоритети) | ||||
| 48 | - `users` (потребители) | ||||
| 49 | - `logs` (логове за действия) | ||||
| 34 | 50 | ||||
| n | 35 | 2. Логика за управление на задачи: | n | 51 | 2. **API слой** |
| 36 | - Функции за добавяне, редактиране, изтриване и маркиране на задачи. | 52 | - Реализация на RESTful API с Flask: | ||
| 53 | - CRUD операции за всички таблици. | ||||
| 54 | - Аутентикация и авторизация (JWT). | ||||
| 37 | 55 | ||||
| n | 38 | 3. Графичен интерфейс: | n | 56 | 3. **Филтри и търсене** |
| 39 | - Изграждане на прозорец с бутони, текстово поле за търсене и меню за навигация. | 57 | - Поддръжка на query параметри в API за филтриране и търсене. | ||
| 40 | 58 | ||||
| n | 41 | 4. Филтриране: | n | 59 | 4. **Уведомления** |
| 42 | - Опции за показване на всички задачи, само изпълнени или само неизпълнени. | 60 | - Система за известия за задачи с изтекъл срок. | ||
| 43 | 61 | ||||
| n | 44 | 5. Търсачка: | n | 62 | 5. **Отчети** |
| 45 | - Поле за въвеждане на текст за търсене на конкретни задачи. | 63 | - Генериране на JSON и CSV отчети за потребителски активности. | ||
| 46 | 64 | ||||
| n | 47 | 6. Уведомления: | n | 65 | 6. **Тестване** |
| 48 | - Система за известия за задачи с изтекъл срок (на базата на текущата дата). | 66 | - Написване на модулни и интеграционни тестове с pytest. | ||
| 49 | |||||
| 50 | 7. Експорт: | ||||
| 51 | - Генериране на текстов отчет (`report.txt`) със списък на всички задачи. | ||||
| 52 | |||||
| 53 | 8. Теми: | ||||
| 54 | - Реализация на светла и тъмна тема чрез промяна на цветовете в интерфейса. | ||||
| 55 | |||||
| 56 | 9. Тестване: | ||||
| 57 | - Проверка на всички функционалности и отстраняване на бъгове. | ||||
| 58 | 67 | ||||
| 59 | --- | 68 | --- | ||
| 60 | 69 | ||||
| n | 61 | [Estimate in man-hours/Оценка на време] | n | 70 | |
| 71 | [Estimate in man-hours/Времеоценка в човекочасове] | ||||
| 72 | |||||
| 62 | 73 | ||||
| 63 | | Етап | Време (ч) | | 74 | | Етап | Време (ч) | | ||
| 64 | |-------------------------------------|-----------| | 75 | |-------------------------------------|-----------| | ||
| n | 65 | | Създаване на база данни | 4 | | n | 76 | | Създаване на база данни (SQLAlchemy)| 6 | |
| 66 | | Логика за управление на задачи | 6 | | 77 | | Реализация на API (Flask) | 10 | | ||
| 67 | | Графичен интерфейс | 8 | | 78 | | Аутентикация и авторизация (JWT) | 6 | | ||
| 68 | | Филтриране | 4 | | 79 | | Филтриране и търсене | 6 | | ||
| 69 | | Търсачка | 4 | | ||||
| 70 | | Уведомления | 4 | | 80 | | Уведомления | 4 | | ||
| t | 71 | | Експорт | 4 | | t | 81 | | Генериране на отчети (Pandas) | 4 | |
| 72 | | Теми | 4 | | ||||
| 73 | | Тестване | 4 | | 82 | | Тестване (pytest) | 6 | | ||
| 74 | | **Общо** | **40** | | 83 | | **Общо** | **42** | | ||
| 75 | |||||
| 76 | --- | ||||
| 77 | |||||
| 78 | [Technologies/Технологии] | ||||
| 79 | |||||
| 80 | - Python (вградени библиотеки): Основна логика на програмата. | ||||
| 81 | - Tkinter: За създаване на графичния интерфейс. | ||||
| 82 | - JSON: За съхранение и зареждане на данните за задачите. | ||||
| 83 | - Datetime: За работа с дати и откриване на изтекли срокове. | ||||
| 84 | |||||
| 85 | 84 | ||||
| 86 | """ | 85 | """ |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||