Luck to Do
Luck to Do — Стилизованный таск-менеджер с умным кэшированием
Проект представляет собой кастомный Full-stack менеджер задач, стилизованный под уютный бумажный планер с текстурированной разлиновкой. Основной фокус при разработке был сделан на скорость работы интерфейса и оптимизацию бэкенда.
Технический стек: Next.js (App Router), TypeScript, PostgreSQL (Supabase), Prisma ORM, NextAuth, SWR, Tailwind CSS, next-intl.
Что было реализовано:
1. Мгновенный отклик (Optimistic UI): Интегрирована библиотека SWR от Vercel. Состояние чекбоксов и добавление задач обновляются на клиенте без задержек (0 мс), а синхронизация с базой данных происходит в фоне. Это полностью устранило проблему «мигания» старых данных при перезагрузке страниц.
2. Фоновый сборщик мусора: Разработана система умных таймеров в useEffect. После выполнения задачи у пользователя есть 30 минута на отмену. Затем приложение делает один безопасный DELETE-запрос в базу данных. Для защиты бэкенда от спама и гонки условий (race conditions) запросы изолированы через кэширующие структуры Set.
3. Умная сортировка: Написан алгоритм динамического ранжирования по весу приоритетов (high -> medium -> low), при этом выполненные задачи плавно опускаются вниз.
4. Безопасность и i18n: Доступ к REST API строго изолирован на уровне сессий пользователей через NextAuth. Реализована полная мультиязычность приложения (русский и английский языки).