Человек всегда стоит на пороге бесконечного — маленькая, но значимая фигура на фоне огромного мира. Его одиночество не есть заброшенность: это пространство для размышлений, где он может услышать себя, не заглушая голос природы и времени. В тишине, среди переменчивых красок жизни, он обретает гармонию не с внешним, а с внутренним — с тем, что остаётся неизменным, несмотря на смену сезонов и обстоятельств.
Время течёт, как облака по небу — неумолимо и свободно. Оно не ждёт, не останавливается, но дарит моменты, когда человек может осознать себя частью чего-то большего. Перемены, как осенние листья, напоминают о цикле жизни: всё начинается и заканчивается, чтобы снова начаться в новом обличье. И именно в этом круговороте рождается мудрость — понимание, что настоящий смысл не в том, чтобы удержать момент, а в том, чтобы прожить его осознанно.
Свобода — это не отсутствие границ, а умение выбрать свой путь среди них. Горизонт всегда останется за пределами досягаемого, но это не ограничение, а приглашение двигаться вперёд. Человек свободен не потому, что у него нет преград, а потому, что он способен их преодолевать, находить новые смыслы и создавать свою реальность.
В конечном счёте, жизнь — это не поиск ответов, а умение задавать правильные вопросы. И иногда достаточно просто остановиться, чтобы услышать, как шепчет ветер сквозь листья, и понять: ты здесь, ты часть этого мира, и этого достаточно.
2) кто хочет разбить крупный проект на множество мелких
3) кто хочет поручить задачу любому человеку, имея лишь его email
4) кто не хочет запоминать пароль, но хочет иметь защищённый доступ
5) кто хочет чтобы история задачи сохранялась
6) кто хочет пользоваться всем функционалом офлайн и в облаке
7) кто любит расставлять приоритеты- все задачи сортируются по важности и срочности, как в матрице Эйзенхауэра.
Теперь реализовано бесшовное подключение телеграм бота, через который будут приходить обновления о ваших общих задачах (если вы их поручили кому- то/ вам их поручил кто- то).
3) Можно дробить дела на мелкие подзадачи. Задачи можно перетаскивать и менять их порядок.
4) Все задачи систематизируются по важности и срочности
5) Вход без пароля, но более надежный, чем с паролем, который придумаете вы.
6) Задачи хранятся на сервере и в кэше приложения, может работать оффлайн.
7) Приложение может работать оффлайн, как PWA приложение.
8) Работают автоподсказки: начинаете вводить исполнителя, с которым у вас были общие проекты, система подсказывает его email
9) Исполнитель автоматически получает логин в системе вместе с письмом.
10) Работает на IOS и Android
11) Сервер находится в РФ.
12) Это бесплатно.
Как работать: записывайте свои задачи, ставьте срок, определяйте важность (я это делаю так: дело важное, если вас могут выгнать с работы или из дома за его невыполнение), и выполняете каждый день начиная с п.1 в табличке (важное и срочное).
Я еще учусь программировать, так что дайте обратную связь, понравилось или нет.
Если вкратце, то получилось полноценное бэкенд-фронтенд веб приложение, при помощи которого можно менеджерить крупный проект, а можно просто привести в порядок мысли в голове, разложив свои идеи по порядку.
Идея была такая: все задачи нужно разложить по важности и срочности, как в матрице эйзенхауэра. Далее, у каждой задачи, очевидно, есть 1 создатель и может быть несколько исполнителей. Эта идея легла в основу реляционной базы данных, где есть сущность задачи и сущность пользователя. База данных была создана на основе MYSQL.
Структура БД
Далее пришлось сделать серверную часть. Немного погуглив, я решил использовать Spring Boot, т.к. у этой платформы большое коммюнити и можно легко найти ответы на свои вопросы в сообществе.
Таким образом, сервер отрабатывает входящие http запросы и синхронизирует их с базой данных. Здесь нужно было создать метод, который корректно обновляет задачи пользователя, не допуская дублирования и перезаписи задачи, которую редактировал другой пользователь.
Кто же шлет эти запросы ? Клиентская часть, для которой я выбрал Angular, т.к. надеялся сделать при помощи него красивый дизайн и анимацию.
Схема приложения planskeeper
Также была идея сделать максимально простой регистрацию в приложении и в то же время максимально безопасной. Без всякого дерьма, типа:
придумайте название организации, придумайте пароль (ой, он слишком короткий, попробуйте еще раз) , придумайте логин, напишите в службу поддержки, чтобы подключить всех своих участников команды
Работает это так: неавторизованный пользователь видит только заглавную страницу, с одним единственным полем - ввода email. После ввода email, сервер создает пользователя в базе данных, для которого генерирует длинный токен, который в отличие от пароля, придуманного человеком, трудно подобрать, легко сбросить и невозможно забыть (т.к. вы его и не знали).
Так работает авторизация
Ссылка, содержащая пару email - токен, приходит пользователю на почту, при нажатии на которую, angular записывает в память устройства. В дальнейшем они используются для всех запросов на сервер. При этом, если кто-то решит подбирать токен , то устанавливается небольшой таймаут, превращающий перебор в бесконечно долгое занятие.
Пользователь создает задачу, и может добавить к ней исполнителя, после чего ему придет письмо с такой же ссылкой на вход в уже его личный кабинет, где будут в свою очередь отображаться эта задача.
Для добавления исполнителя реализованы авто подсказки, которые предлагают выбрать исполнителя из числа тех, кто вам что либо поручал или получал задачи от вас. Забавно, что на этот функционал я потратил день, а ведь обычный пользователь, может этого и не заметит(
Для отправки писем я использовал обычный gmail ящик, а потом переделал на postfix, который к сожалению, работает не стабильно, поэтому пришлось возвращаться обратно на gmail.
Для работы всех этих компонентов я приобрел виртуальный сервер на базе ubuntu, на который установил все необходимое ПО, типа certbot, nginx, и кучу других приложений со сложно произносимыми названиями. Еще пришлось установить ssl сертификаты, чтобы сайт отображался по протоколу https, без него сайты не котируются среди миллениалов.
Такой баннер должен выскакивать перед каждым незащищенным сексом
Дальше я задумался о том чтобы сайт нормально выглядел и на мобильном, на это ушла куча времени. Пришлось поработать с media запросами, а содержимое сайта все пыталось вылезти за границы экрана. К слову, многие мои конкуренты, так и не сделали вменяемого адаптивного дизайна для своих сайтов.
И наконец важный момент -сделать так чтобы все работало и оффлайн. Оказывается это можно сделать при помощи при помощи PWA библиотеки, все данные пришлось кэшировать при помощи IndexedDB.
В итоге приложение сохраняет функциональность без доступа к интернет, а при появлении сети можно синхронизировать изменения/новые задачи. Удобно же?
Говорят что за PWA приложениями - будущее, ведь не надо тратить время на разработку отдельно на андроид, и на яблоко.
На андроид PWA приложение работает сразу, а на яблоке придется самостоятельно вставить ссылку из письма в специальное поле. Это связано с "особой" политикой разработчиков браузера Safari с нетрадиционными ценностями .
Вот и все, заходим, тестируем. Кто мне подскажет, как лучше продвигать мое приложение или найти на него инвестора, тому большое спасибо!
Бывает ли у вас, что кажется вы что - то не успели, забыли сделать. Ощущение бесцельно прожитого дня немного фрустрирует, хотя на самом деле весь день был наполнен какими-то делами? У меня да.
Я много об этом задумывался, и постепенно из разрозненной информации в инете у меня сложилась картина. Во всем виноват дофамин - такой гормон, который отвечает за удовольствие от достижения цели, да и в целом за радость в жизни. Его легко сломать, алкоголем, запрещенными веществами, да и просто думскроллингом ленты, и сложно починить - для этого нужно много спорта и хорошего сна, ну и правильного образа жизни.
Позвольте поделиться моими идеями как улучшить дофаминовый баланс. Где -то я читал, что у скандинавских народов есть такой прием: берешь глобальную цель, дробишь ее на множество мелких, и каждый день делаешь по одной. Потом еще наткнулся на исследование, что дофамин лучше выделяется в процессе достижения цели, а не когда она глобально уже достигнута.
Так я понял что по сути ведение списка дел, и зачеркивание выполненных задач позволят в конце дня понять что он прожит не зря.
Ещё хотелось бы знать, что ты занимался чем то действительно важным. А не просто делал все подряд. Для этих целей Эйзенхауэр придумал табличку, где все дела делятся на 4 категории по признаку важности и срочности. У этой таблички неочевидная для многих идея, что сначала надо делать важные и срочные дела, а все остальные -потом.
А потом я подумал, почему бы не объединить все эти идеи, и не написать веб приложение, которое бы помогло людям вести их задачи, ранжировать их по срочности и важности, а может быть и делиться ими со своими коллегами и друзьями (ставить задачи)? И чтобы все это хранилось в облаке и не терялось?
Сервис пока в процессе допиливания, но уже реализовано:
1) простой доступ без пароля как для создателя задачи так и для ее исполнителя. Логин происходит по ссылке из письма.
2) задачи можно бесконечно дробить и поручать их разным исполнителям (для этого достаточно email). При этом каждый пользователь наглядно воспринимает какие задачи являться именно для него важными и срочными.
3 ) нормальное отображение на мобиле
4) возможность работы офлайн и установки pwa приложения, даже на iOS.
В общем, буду рад если вы зайдёте и попробуете мое приложение для планирования задач. Ещё раз ссылка: https://www.planskeeper.com/
Всем хорошего дофамина!
Ps.Кстати приложение размещено на отечественном сервере так что оно, можно сказать, санкционноустойчиво.
Приложение сделано на технологиях angular, spring, mysql если это вам о чем то говорит.
Кто из вас любит списки дел? Как приятно записывать что - то а потом зачеркивать как выполненное. А что если эти дела можно было бы поручать кому-то еще? А если представить, что задачу можно разбить на множество мелких, а их в свою очередь тоже? Каждой задаче назначить срок и важность, а потом посмотреть все в матрице Эйзенхауэра?
Есть гугл кип, но там такой функционал не реализован. Все свалено в кучу, ориентироваться сложно, поручить задачу тоже затруднительно.
PS я делал этот проект из личного энтузиазма, чтобы попрактиковаться в коде. Использовались технологии Angular, Spring Boot, MySQL. Если у кого-то есть идеи, как продвигать дальше проект, а может быть идеи новых проектов, пишите мне в комментах. Я чувствую себя в силах сделать что угодно, хоть объявления, хоть знакомства, а может службу аренды квартир посуточно.