zend-blog-3-backend
/
.todo2
662 строки · 17.4 Кб
1{
2"title": "Zend-blog Backend",
3"tasks": [
4{
5"text": "Tracking #83",
6"priority": "high",
7"creation": 1686425029,
8"completion": 1687000205,
9"tasks": [
10{
11"text": "tracking to archive rework",
12"priority": "medium",
13"creation": 1686425094,
14"completion": 1686736244
15},
16{
17"text": "tracking on dashboard",
18"priority": "medium",
19"creation": 1686425108,
20"completion": 1686584408
21},
22{
23"text": "update views count in articles",
24"priority": "medium",
25"creation": 1686425120,
26"completion": 1686736246
27},
28{
29"text": "Пометить пустой юзер-агент как бот",
30"priority": "medium",
31"creation": 1686583149,
32"completion": 1686731014
33},
34{
35"text": "Обновить ботов в БД",
36"priority": "medium",
37"creation": 1686628730,
38"completion": 1686731016
39},
40{
41"text": "Add geolocation and flags",
42"priority": "medium",
43"creation": 1686736298
44}
45]
46},
47{
48"text": "Update JavaScript verdors #82",
49"priority": "low",
50"creation": 1686425155,
51"tasks": [
52{
53"text": "vendors for assets build",
54"priority": "medium",
55"creation": 1686425179,
56"completion": 1686425208
57},
58{
59"text": "SPA vendors",
60"priority": "medium",
61"creation": 1686425188
62},
63{
64"text": "Node.js",
65"priority": "medium",
66"creation": 1686425194
67},
68{
69"text": "Migrate to Ember.js 3.*",
70"priority": "medium",
71"creation": 1688211065
72}
73]
74},
75{
76"text": "Add filters for list of entities #80",
77"priority": "medium",
78"creation": 1686425235,
79"tasks": [
80{
81"text": "Articles",
82"priority": "medium",
83"creation": 1686425250
84},
85{
86"text": "Comments",
87"priority": "medium",
88"creation": 1686425255
89},
90{
91"text": "Commentators",
92"priority": "medium",
93"creation": 1686425259
94},
95{
96"text": "User agents",
97"priority": "medium",
98"creation": 1686425266
99}
100]
101},
102{
103"text": "CI integration restart #79",
104"priority": "verylow",
105"creation": 1686425284,
106"tasks": [
107{
108"text": "Восстановить тесты",
109"priority": "medium",
110"creation": 1686551269
111},
112{
113"text": "doctrine:schema:validate",
114"priority": "medium",
115"creation": 1686551315,
116"completion": 1687344354
117}
118]
119},
120{
121"text": "Check fake emails in comments before send #78",
122"priority": "high",
123"creation": 1686425301,
124"completion": 1687808467
125},
126{
127"text": "Backups in Dropbox #77",
128"priority": "medium",
129"creation": 1686425321,
130"completion": 1687539418,
131"tasks": [
132{
133"text": "Remove DB dumps, max 14 items",
134"priority": "medium",
135"creation": 1686425348
136}
137]
138},
139{
140"text": "Save article to local storage #76",
141"priority": "medium",
142"creation": 1686425375,
143"tasks": [
144{
145"text": "before save on server",
146"priority": "medium",
147"creation": 1686425395
148},
149{
150"text": "save with timestamp, clear after success save, replace from local storage, if draft is newer",
151"priority": "medium",
152"creation": 1686425409
153}
154]
155},
156{
157"text": "Geolocation rework #74",
158"priority": "veryhigh",
159"creation": 1686425442,
160"completion": 1687005209,
161"tasks": [
162{
163"text": "change logic for unchecked IP",
164"priority": "medium",
165"creation": 1686425458,
166"completion": 1686950444
167},
168{
169"text": "DB refactoring, ip2long as primary key",
170"priority": "medium",
171"creation": 1686510089,
172"completion": 1686950452
173},
174{
175"text": "detect local IP without https://api.ipinfodb.com/",
176"priority": "medium",
177"creation": 1686950425
178}
179]
180},
181{
182"text": "Clear varnish cache (by button) #72",
183"priority": "medium",
184"creation": 1686425497,
185"completion": 1687468704
186},
187{
188"text": "Article and code snippet sync #71",
189"priority": "high",
190"creation": 1686425524,
191"completion": 1686839037,
192"tasks": [
193{
194"text": "update article when code snippet update",
195"priority": "medium",
196"creation": 1686425543
197}
198]
199},
200{
201"text": "Use prebuilded docker image #70",
202"priority": "medium",
203"creation": 1686425561,
204"completion": 1687013924
205},
206{
207"text": "Move boilerplate code in API controllers to BaseController #69",
208"priority": "verylow",
209"creation": 1686425580
210},
211{
212"text": "Flutter Desktop for UI #68",
213"priority": "verylow",
214"creation": 1686425605,
215"completion": 1723302145,
216"tasks": [
217{
218"text": "And remove JavaScript SPA",
219"priority": "medium",
220"creation": 1686425621
221}
222]
223},
224{
225"text": "Messages of validation error #67",
226"priority": "veryhigh",
227"creation": 1686425646,
228"completion": 1686433005,
229"tasks": [
230{
231"text": "russian language",
232"priority": "medium",
233"creation": 1686425673
234}
235]
236},
237{
238"text": "Add more info for comment #66",
239"priority": "medium",
240"creation": 1686425699,
241"completion": 1686986092,
242"tasks": [
243{
244"text": "user agent and other",
245"priority": "medium",
246"creation": 1686425718
247}
248]
249},
250{
251"text": "Select default image #65",
252"priority": "medium",
253"creation": 1686425790,
254"tasks": [
255{
256"text": "and unselect other images",
257"priority": "medium",
258"creation": 1686425812
259}
260]
261},
262{
263"text": "Enable/disable comments on post #62",
264"priority": "high",
265"creation": 1686425833,
266"completion": 1686743778
267},
268{
269"text": "Remove deprecated and unused fields from entities #60",
270"priority": "low",
271"creation": 1686425860,
272"completion": 1723358063,
273"tasks": [
274{
275"text": "users table",
276"priority": "medium",
277"creation": 1686425887
278},
279{
280"text": "commentators",
281"priority": "medium",
282"creation": 1686425893
283},
284{
285"text": "tracking",
286"priority": "medium",
287"creation": 1686425899,
288"completion": 1686736658
289},
290{
291"text": "tracking agent",
292"priority": "medium",
293"creation": 1686425910,
294"completion": 1686736660
295},
296{
297"text": "Удалить timestamp_created после деплоя",
298"priority": "medium",
299"creation": 1686550138,
300"completion": 1686663869
301}
302]
303},
304{
305"text": "Limit of links in pagination",
306"priority": "medium",
307"creation": 1686463894
308},
309{
310"text": "Change page browsertitle",
311"priority": "medium",
312"creation": 1686466586
313},
314{
315"text": "Google Auth",
316"priority": "low",
317"creation": 1686631591
318},
319{
320"text": "500-е ошибки блога в телеграм-уведомлениях",
321"priority": "high",
322"creation": 1686763595,
323"completion": 1686907878
324},
325{
326"text": "Раздел для Telegram-бота",
327"priority": "high",
328"creation": 1687250891,
329"completion": 1687526355,
330"tasks": [
331{
332"text": "запись нового собеседника",
333"priority": "medium",
334"creation": 1687250944,
335"completion": 1687287148
336},
337{
338"text": "раздел в админке",
339"priority": "medium",
340"creation": 1687250962,
341"completion": 1687515430,
342"tasks": [
343{
344"text": "собеседники",
345"priority": "medium",
346"creation": 1687250990,
347"completion": 1687511400
348},
349{
350"text": "сообщения",
351"priority": "medium",
352"creation": 1687250998
353}
354]
355},
356{
357"text": "ответ на сообщение из админки",
358"priority": "medium",
359"creation": 1687251029,
360"completion": 1687524818
361},
362{
363"text": "Notification about new messages",
364"priority": "medium",
365"creation": 1687524844
366}
367]
368},
369{
370"text": "Category page",
371"priority": "medium",
372"creation": 1687519031,
373"tasks": [
374{
375"text": "Work counters",
376"priority": "medium",
377"creation": 1687519061
378},
379{
380"text": "without pagination, sort by left key",
381"priority": "medium",
382"creation": 1687519084
383}
384]
385},
386{
387"text": "Уведомление на почту об ответе на комментарий",
388"priority": "high",
389"creation": 1687795993,
390"completion": 1688077332,
391"tasks": [
392{
393"text": "Нет логотипа",
394"priority": "medium",
395"creation": 1687796021,
396"completion": 1688042142
397},
398{
399"text": "Поломаное сообщение в виде обычного текста",
400"priority": "medium",
401"creation": 1687796069
402}
403]
404},
405{
406"text": "Проверить протухшие ссылки у комментаторов",
407"priority": "high",
408"creation": 1688970428,
409"completion": 1688977645
410},
411{
412"text": "Responsive images",
413"priority": "high",
414"creation": 1689348282,
415"completion": 1690556400,
416"tasks": [
417{
418"text": "Удалять картинки вместе с превью",
419"priority": "medium",
420"creation": 1689348322,
421"completion": 1689365614
422}
423]
424},
425{
426"text": "Featured image not work",
427"priority": "high",
428"creation": 1719346855
429},
430{
431"text": "Update page views counter hourly",
432"priority": "high",
433"creation": 1719389360,
434"completion": 1719418822
435},
436{
437"text": "update PHP-CS-Fixer to v3",
438"priority": "verylow",
439"creation": 1719389500,
440"tasks": [
441{
442"text": "Blocked: friendsofphp/php-cs-fixer ~3.3 require symfony/console ^4.4.20 || ^5.1.3",
443"priority": "medium",
444"creation": 1721971530
445}
446]
447},
448{
449"text": "5 неудачных попыток ввода пароля и блокировка на полчаса",
450"priority": "medium",
451"creation": 1720600619
452},
453{
454"text": "Parse user-agent by https://user-agents.net/parser",
455"priority": "medium",
456"creation": 1720867983
457},
458{
459"text": "Регистрация пользователей для комментариев",
460"priority": "high",
461"creation": 1722973473,
462"tasks": [
463{
464"text": "Add separate tech-user for reprogl API",
465"priority": "medium",
466"creation": 1722973512,
467"completion": 1724700192,
468"tasks": [
469{
470"text": "Set avatar",
471"priority": "medium",
472"creation": 1723113285
473}
474]
475},
476{
477"text": "Добавить роли, закрыть админку от гостей",
478"priority": "medium",
479"creation": 1723053131,
480"completion": 1723270137
481},
482{
483"text": "Login history",
484"priority": "medium",
485"creation": 1723139406
486}
487]
488},
489{
490"text": "Почта",
491"priority": "high",
492"creation": 1723012356,
493"tasks": [
494{
495"text": "Отправлять отчёт об ошибке",
496"priority": "medium",
497"creation": 1723012403,
498"completion": 1723034918
499},
500{
501"text": "Сменить настройки (Yandex PDD -\u003e ?)",
502"priority": "medium",
503"creation": 1723012441,
504"completion": 1723207447,
505"tasks": [
506{
507"text": "https://www.mail-tester.com/",
508"priority": "medium",
509"creation": 1723060297,
510"tasks": [
511{
512"text": "https://www.mail-tester.com/test-so16er4vf",
513"priority": "medium",
514"creation": 1723207337
515}
516]
517},
518{
519"text": "https://stackoverflow.com/questions/52408023/dkim-signature-in-swift-mailer",
520"priority": "low",
521"creation": 1723097007
522},
523{
524"text": "https://knowledge.validity.com/s/articles/DKIM-signature-header-detail",
525"priority": "low",
526"creation": 1723097156
527},
528{
529"text": "https://dkim.org",
530"priority": "low",
531"creation": 1723097209
532},
533{
534"text": "https://www.unisender.com/ru/glossary/dmarc/",
535"priority": "low",
536"creation": 1723105123
537},
538{
539"text": "https://help.mail.ru/developers/notes/dmarc",
540"priority": "low",
541"creation": 1723105139
542}
543]
544},
545{
546"text": "fix telegram for error stacktrace sending",
547"priority": "medium",
548"creation": 1723016691
549},
550{
551"text": "Иконка отправителя в разных почтовых сервисах",
552"priority": "medium",
553"creation": 1723112974
554},
555{
556"text": "Add unsubscribe link",
557"priority": "medium",
558"creation": 1723210211,
559"completion": 1725004417,
560"tasks": [
561{
562"text": "https://postmarkapp.com/support/article/1299-how-to-include-a-list-unsubscribe-header",
563"priority": "low",
564"creation": 1723401395
565}
566]
567}
568]
569},
570{
571"text": "Add created_at to commentators",
572"priority": "medium",
573"creation": 1723306388,
574"tasks": [
575{
576"text": "Remove commentators without comments",
577"priority": "medium",
578"creation": 1723306414
579}
580]
581},
582{
583"text": "Mail Space",
584"priority": "medium",
585"creation": 1725133867,
586"tasks": [
587{
588"text": "https://help.mail.ru/cloud_web/app/webdav/",
589"priority": "low",
590"creation": 1725133954,
591"tasks": [
592{
593"text": "https://github.com/spatie/laravel-backup/discussions/1756",
594"priority": "low",
595"creation": 1729325666
596},
597{
598"text": "https://curl.se/libcurl/c/CURLOPT_SEEKFUNCTION.html",
599"priority": "medium",
600"creation": 1729373031
601}
602]
603},
604{
605"text": "https://github.com/fstanis/awesome-webdav?tab=readme-ov-file",
606"priority": "low",
607"creation": 1725133972
608},
609{
610"text": "Перенести бекапы БД и картинок",
611"priority": "medium",
612"creation": 1726664518
613}
614]
615},
616{
617"text": "Upgrade symfony",
618"priority": "high",
619"creation": 1726340929,
620"tasks": [
621{
622"text": "https://symfony.com/doc/4.x/setup.html",
623"priority": "low",
624"creation": 1726340968
625},
626{
627"text": "https://symfony.com/doc/4.x/setup/flex.html",
628"priority": "low",
629"creation": 1726340982
630},
631{
632"text": "Deploy",
633"priority": "medium",
634"creation": 1726664398,
635"tasks": [
636{
637"text": "Подготовить конфиги",
638"priority": "medium",
639"creation": 1726664430
640},
641{
642"text": "Залить doctrine_migrations в БД",
643"priority": "medium",
644"creation": 1726664455
645},
646{
647"text": "docker-compose.yml on prod",
648"priority": "medium",
649"creation": 1726730317
650}
651]
652}
653]
654},
655{
656"text": "Duplicate entry 'testovaya-zapis' for key 'posts.UNIQ_885DBAFAF47645AE'",
657"priority": "high",
658"creation": 1727511937,
659"completion": 1727983851
660}
661]
662}