← Все кейсы
Проект в разработке — ссылка появится скоро

Личный проект

Talbina — трекер времени чтения

Talbina: текущая книга, прогресс чтения, кнопка начать читать

Приложение для читающих. Помнит, что прочитал, показывает движение в текущей книге и помогает не забыть то, что хочу прочитать.

Как появился проект

В нашей семье любят читать. Нам захотелось фиксировать время чтения, понимать сколько времени уходит на каждую книгу, оставлять заметки, оценивать и загружать конкретную обложку. Но подходящего решения так и не нашли. Поэтому решили создать свое.

Раскрытая книга на столе у домашней библиотеки, рядом лежит кот
Книжные полки семьи: классика и современная проза по цветам обложек
Кот лежит на полке перед рядом книг

Интерфейс и решения

Главный экран Talbina: книги, которые читаю сейчас, с прогрессом

Что читаю сейчас

Я открываю приложение и сразу вижу, где остановился. Беру в руку книгу, стартую таймер и начинаю читать.

Таймер чтения Talbina: текущая сессия, пауза, завершение с вводом страницы

Пока читаю

Приложение отслеживает время чтения. Если мне нужно срочно отлучиться — нажимаю на паузу. Так сессия не прервется. А когда закончил, нажимаю на стоп. Приложение спрашивает: «сколько страниц прочитано?» Я ввожу цифру, и прогресс обновляется.

Карточка книги Talbina: дневник сессий, скорость чтения, заметки

Прогресс по каждой книге

У каждой книги своя карточка: дневник сессий по датам, заметки, а для текущей книги — скорость чтения и сколько примерно сессий осталось до конца.

Прочитанное в Talbina: книги сгруппированы по месяцам, как фотоальбом

Прочитанное

Прочитанные книги собраны по месяцам. Листаю и вспоминаю: вот что читал в марте, вот что в мае.

Месяц можно сохранить картинкой и поделиться. Картинку рисует сам код на Canvas.

Прогресс в Talbina: тепловая карта за 30 дней, итоги недели и месяца

Общий прогресс

Календарь показывает активные дни, и дни когда не читал. А интенсивность цвета зависит от количества сессий - чем больше садился читать, тем будет темнее цвет.

Огонёк показывает текущий стрик: сколько дней подряд не пропускаю чтение.

На чем сделано

Интерфейс — React 18, TypeScript, Vite
Стиль — Tailwind CSS, Material Design 3
Локальное хранилище — IndexedDB через idb
Облако — Supabase: PostgreSQL, Auth, RLS; свой движок синхронизации
Офлайн и установка на телефон — PWA, Workbox
Картинки для шеринга — Canvas API
Инфраструктура — Docker Compose: локальный стек Supabase (PostgreSQL, GoTrue, PostgREST, Kong)
Качество — Vitest, Testing Library