Онлайн Дневники
демонстрация веб-разработки
Кейс · full-stack

Онлайн Дневники

Веб-приложение для структурированного самонаблюдения: клиент ведёт дневники по будням, а куратор видит готовую аналитику и формирует PDF-отчёты. Сквозное шифрование, двухфакторная аутентификация, мультиарендность.

Next.js 15 · App Router TypeScript Prisma + PostgreSQL Auth.js v5 Tailwind CSS @react-pdf Docker
Роль
Проектирование и разработка целиком
Тип
Full-stack веб-приложение
Кабинеты
Клиент · Куратор · Релаксолог
Аналитика куратора

Кабинет куратора: автоматическая агрегация записей клиента — частые ситуации, признаки, эффективность пауз (дельта «до → после»), распределение по времени суток и формирование отчёта в PDF.

Что внутри

🧩

Конфиг-driven дневники

Одна декларативная конфигурация задаёт форму, серверную Zod-валидацию, просмотр у куратора, агрегатор и PDF. Новый дневник — это запись в конфиге, без правок кода.

📊

Аналитика для куратора

Сводки по периодам: средние уровни, топ-ситуации и признаки, что помогало при паузах, барьеры, разбивка по частям дня. Плюс отдельные эпизоды.

🔐

Безопасность данных

Шифрование записей AES-256-GCM на уровне приложения, 2FA по TOTP, AuditLog на доступ к чужим данным, rate-limit, строгие cookie и CSP.

🏢

Мультиарендность

Изоляция по организации: куратор видит только клиентов своей организации. Приглашение новых клиентов по одноразовой invite-ссылке.

📄

PDF-отчёты

Серверная генерация отчёта (@react-pdf), сохранение в истории клиента и возможность поделиться с релаксологом по явному доступу.

📱

Адаптив и PWA

Аккуратная вёрстка под десктоп и мобильный, устанавливается как приложение. Окно редактирования записи — 7 дней, чтобы аналитика не «подкручивалась» задним числом.

Экраны

Дневники клиента

Кабинет клиента: список доступных дневников.

Форма дневника

Заполнение записи — форма собирается из конфигурации.

Аналитика эмоций

Куратор: аналитика по дневнику эмоций.

Кабинет релаксолога

Релаксолог: расшаренные куратором отчёты.

И то же самое на мобильном:

Мобильный — дневники
Мобильный — аналитика

Технологии и инженерные решения

⚙️
Next.js 15 (App Router) + TypeScriptСерверные компоненты, route-группы по ролям, middleware с CSP и строгими заголовками.
🗄️
Prisma + PostgreSQLТипобезопасная схема, миграции, сид с демо-данными для всех ролей и дневников.
🛡️
Auth.js v5 + 2FAСессии на JWT (TTL 8 ч, auto-logout), TOTP для куратора и релаксолога.
🔑
Прикладное шифрованиеAES-256-GCM для содержимого записей; логгер маскирует чувствительные поля.
🧪
Качествоtypecheck + lint + автотесты (Vitest) перед коммитом.
🐳
Docker + деплойКонтейнеризация, деплой в облако, health-check эндпоинт.