Домашни > Време е да помислите за проектите си! > Решения > Решението на Димитър Илиев

Резултати
0 точки от тестове
0 точки от учител

0 точки общо

0 успешни теста
0 неуспешни теста
Код

  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, но отново ако дизайнът ти е достатъчно добър - няма да е безкрайно много код.
История

f1"""f1"""
2[Title/Звание]2[Title/Звание]
33
n4Advanced Task Managern4TaskFlow
55
n6---n6[Description/Обрисовка]
7 
8TaskFlow е настолно приложение, което помага на потребителите да организират задачите си. Приложението предоставя функционалности за добавяне, редактиране, филтриране и следене на напредъка на задачите. Освен това включва допълнителни функции като статистика, потребителски роли и архивиране на стари задачи.
79
8[Functionalities/Надарености]10[Functionalities/Надарености]
911
n101. Управление на задачи:n121. **Добавяне на задачи:**
11   - CRUD операции (Create, Read, Update, Delete) за задачи.13   - Въвеждане на заглавие, описание, краен срок и приоритет на задачата.
12   - Поддръжка на допълнителни атрибути: статус, приоритет, краен срок, категория.
1314
n142. История на действията:n152. **Обновяване на задачи:**
15   - Съхранение на логове за всяко действие (добавяне, редактиране, изтриване).16   - Редактиране на информация за съществуващи задачи, включително промяна на статус (напр. "Изпълнена").
1617
n173. Потребители и роли:n183. **Изтриване на задачи:**
18   - Въвеждане на потребителска система с роли (администратор, потребител).19   - Премахване на задачи от списъка.
1920
n204. Филтри и търсене:n214. **Преглед на задачи:**
21   - Филтриране по статус, категория и приоритет.22   - Визуализация на текущите задачи с възможност за сортиране и филтриране по статус и приоритет.
22   - Търсене по ключови думи в заглавието или описанието.
2323
n245. Уведомления:n245. **Търсачка:**
25   - Автоматично известяване за задачи с изтекъл срок (чрез API или команден ред).25   - Търсене на задачи чрез ключова дума в заглавие или описание.
2626
n276. Отчети:n276. **Уведомления:**
28   - Генериране на отчети в JSON или CSV формат за конкретен потребител или период.28   - Известия за задачи с наближаващ или изтекъл срок.
2929
n307. RESTful API:n307. **Генериране на отчети:**
31   - Реализация на API за взаимодействие с базата данни:31   - Създаване на текстов или PDF отчет за напредъка (напр. брой изпълнени задачи спрямо всички задачи).
32     - CRUD операции за задачи, категории, приоритети и потребители.
33     - Аутентикация и авторизация (JWT).
3432
n358. Тестване:n338. **Архивиране на задачи:**
36   - Написване на модулни тестове за основните функционалности (с pytest).34   - Прехвърляне на изпълнените задачи в отделен архив, за да се поддържа списъкът с текущи задачи подреден.
3735
n38---n369. **Потребителски профили и роли:**
37   - Възможност за създаване на множество потребители с различни роли:
38     - Администратор: Може да управлява всички задачи.
39     - Потребител: Може да управлява само своите задачи.
40 
4110. **Статистика:**
42    - Визуализация на напредъка чрез графики:
43      - Брой изпълнени задачи спрямо всички.
44      - Най-често срещани категории задачи.
45      - Разпределение на задачите по приоритети.
46 
4711. **Повтарящи се задачи:**
48    - Автоматично създаване на задачи, които се повтарят (напр. ежеседмични, ежемесечни).
49 
5012. **Теми за интерфейса:**
51    - Възможност за избор между светла и тъмна тема.
52 
5313. **Експорт и импорт:**
54    - Експорт на данните в CSV формат за архивиране или споделяне.
55    - Импорт на задачи от CSV файл.
3956
40[Milestones/Възлови точки]57[Milestones/Възлови точки]
4158
n421. **Архитектура на базата данни**n591. **Създаване на база данни:**
43   - Дизайн и реализация на релационна база данни с SQLAlchemy.60   - Реализация на база данни със SQLAlchemy, включваща таблици за задачи, категории, приоритети и потребители.
44   - Таблици:
45     - `tasks` (задачи)
46     - `categories` (категории)
47     - `priorities` (приоритети)
48     - `users` (потребители)
49     - `logs` (логове за действия)
5061
n512. **API слой**n622. **Логика за управление на задачи:**
52   - Реализация на RESTful API с Flask:63   - Реализация на CRUD операции (Create, Read, Update, Delete) за задачи.
53     - CRUD операции за всички таблици.64   - Имплементация на логика за архивиране на задачи.
54     - Аутентикация и авторизация (JWT).
5565
n563. **Филтри и търсене**n663. **Графичен интерфейс:**
57   - Поддръжка на query параметри в API за филтриране и търсене.67   - Създаване на интуитивен GUI с Tkinter.
68   - Добавяне на бутони за добавяне, редактиране и изтриване на задачи.
69   - Реализация на функционалност за промяна на тема.
5870
n594. **Уведомления**n714. **Филтриране и търсене:**
60   - Система за известия за задачи с изтекъл срок.72   - Добавяне на функционалности за филтриране по статус и приоритет.
73   - Търсене по ключова дума в заглавие и описание.
6174
n625. **Отчети**n755. **Генериране на отчети:**
63   - Генериране на JSON и CSV отчети за потребителски активности.76   - Реализация на модул за създаване на отчети в PDF и CSV формат.
6477
n656. **Тестване**n786. **Потребителски профили:**
66   - Написване на модулни и интеграционни тестове с pytest.79   - Създаване на механизъм за управление на потребители и роли.
6780
n68---n817. **Статистика:**
82   - Визуализация на напредъка чрез графики с Matplotlib.
6983
nn848. **Повтарящи се задачи:**
85   - Автоматизация за създаване на повтарящи се задачи.
86 
879. **Тестване:**
88   - Тестване на всички функционалности и отстраняване на грешки.
7089
71[Estimate in man-hours/Времеоценка в човекочасове]90[Estimate in man-hours/Времеоценка в човекочасове]
7291
n73 n
74| Етап                                | Време (ч) |92| Етап                                | Време (ч) |
75|-------------------------------------|-----------|93|-------------------------------------|-----------|
n76| Създаване на база данни (SQLAlchemy)|         |n94| Създаване на база данни (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**    |
84104
tt105[Usage of technologies/Потребление на технологии]
106 
1071. **Python (вградени библиотеки):** Основна логика на програмата.
1082. **Tkinter:** За създаване на графичния интерфейс.
1093. **SQLAlchemy:** За управление на базата данни и извършване на CRUD операции.
1104. **Datetime:** За управление на крайните срокове.
1115. **Pandas:** За обработка на данни и генериране на отчети.
1126. **ReportLab:** За създаване на PDF отчети.
1137. **Matplotlib:** За визуализиране на статистиката.
85"""114"""
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

nn1"""
2[Title/Звание]
13
n2"""n4Advanced Task Manager
3Task Manager - Простичко приложение за управление на личните ви задачи
4 
5[Description/Описания]
6 
7Task Manager е приложение за управление на лични задачи. Потребителите могат да добавят нови задачи, 
8да отбелязват задачите като изпълнени, да виждат статистики за прогреса си и дори да филтрират задачи 
9по статус. Приложението е проектирано с простичък интерфейс, който включва текстово поле за търсене, 
10бутон за добавяне на задачи и меню за управление на различни опции.
115
12---6---
137
n14[Functionalities/Функционалности]n8[Functionalities/Надарености]
159
n161. Добавяне на задачи: Потребителят въвежда заглавие и краен срок на задачата.n101. Управление на задачи:
172. Преглед на задачи: Списък на всички задачи, сортирани по статус (изпълнени или неизпълнени).11   - CRUD операции (Create, Read, Update, Delete) за задачи.
183. Редактиране на задачи: Възможност за промяна на заглавие или краен срок на задачите.12   - Поддръжка на допълнителни атрибути: статус, приоритет, краен срок, категория.
194. Маркиране на задачи: Отбелязване на задачи като изпълнени.13 
205. Изтриване на задачи: Премахване на задачи от списъка.142. История на действията:
216. Филтриране: Показване само на изпълнени, неизпълнени или всички задачи.15   - Съхранение на логове за всяко действие (добавяне, редактиране, изтриване).
227. Търсачка: Поле за търсене, което позволява намиране на задачи по ключова дума.16 
238. Уведомления: Изскачащи съобщения за задачи с изтекъл срок.173. Потребители и роли:
249. Експорт на отчет: Генериране на текстов файл с всички задачи, разделени по статус.18   - Въвеждане на потребителска система с роли (администратор, потребител).
2510. Промяна на тема: Възможност за смяна между светла и тъмна тема.19 
204. Филтри и търсене:
21   - Филтриране по статус, категория и приоритет.
22   - Търсене по ключови думи в заглавието или описанието.
23 
245. Уведомления:
25   - Автоматично известяване за задачи с изтекъл срок (чрез API или команден ред).
26 
276. Отчети:
28   - Генериране на отчети в JSON или CSV формат за конкретен потребител или период.
29 
307. RESTful API:
31   - Реализация на API за взаимодействие с базата данни:
32     - CRUD операции за задачи, категории, приоритети и потребители.
33     - Аутентикация и авторизация (JWT).
34 
358. Тестване:
36   - Написване на модулни тестове за основните функционалности (с pytest).
2637
27---38---
2839
29[Milestones/Възлови точки]40[Milestones/Възлови точки]
3041
n311. Създаване на база данни:n421. **Архитектура на базата данни**
32   - Съхранение на данните за задачите в JSON файл.43   - Дизайн и реализация на релационна база данни с SQLAlchemy.
33   - Данните включват: заглавие, краен срок и статус (изпълнена/неизпълнена).44   - Таблици:
45     - `tasks` (задачи)
46     - `categories` (категории)
47     - `priorities` (приоритети)
48     - `users` (потребители)
49     - `logs` (логове за действия)
3450
n352. Логика за управление на задачи:n512. **API слой**
36   - Функции за добавяне, редактиране, изтриване и маркиране на задачи.52   - Реализация на RESTful API с Flask:
53     - CRUD операции за всички таблици.
54     - Аутентикация и авторизация (JWT).
3755
n383. Графичен интерфейс:n563. **Филтри и търсене**
39   - Изграждане на прозорец с бутони, текстово поле за търсене и меню за навигация.57   - Поддръжка на query параметри в API за филтриране и търсене.
4058
n414. Филтриране:n594. **Уведомления**
42   - Опции за показване на всички задачи, само изпълнени или само неизпълнени.60   - Система за известия за задачи с изтекъл срок.
4361
n445. Търсачка:n625. **Отчети**
45   - Поле за въвеждане на текст за търсене на конкретни задачи.63   - Генериране на JSON и CSV отчети за потребителски активности.
4664
n476. Уведомления:n656. **Тестване**
48   - Система за известия за задачи с изтекъл срок (на базата на текущата дата).66   - Написване на модулни и интеграционни тестове с pytest.
49 
507. Експорт:
51   - Генериране на текстов отчет (`report.txt`) със списък на всички задачи.
52 
538. Теми:
54   - Реализация на светла и тъмна тема чрез промяна на цветовете в интерфейса.
55 
569. Тестване:
57   - Проверка на всички функционалности и отстраняване на бъгове.
5867
59---68---
6069
n61[Estimate in man-hours/Оценка на време]n70 
71[Estimate in man-hours/Времеоценка в човекочасове]
72 
6273
63| Етап                                | Време (ч) |74| Етап                                | Време (ч) |
64|-------------------------------------|-----------|75|-------------------------------------|-----------|
n65| Създаване на база данни             | 4         |n76| Създаване на база данни (SQLAlchemy)| 6         |
66| Логика за управление на задачи      | 6         |77| Реализация на API (Flask)           | 10        |
67| Графичен интерфейс                  | 8         |78| Аутентикация и авторизация (JWT)    | 6         |
68| Филтриране                          | 4         |79| Филтриране и търсене                | 6         |
69| Търсачка                            | 4         |
70| Уведомления                         | 4         |80| Уведомления                         | 4         |
t71| Експорт                             | 4         |t81| Генериране на отчети (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 
8584
86"""85"""
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op