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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|