Все шаблоны

Вовлечение

Баллы и достижения

Начисления за действия, уровни и награды

Среднийгеймификациябаллыдостиженияуровни

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

Что внутри

  • Правила начисления в одном файле, без правок по коду
  • Защита от накрутки — лимиты по частоте и сумме
  • Достижения с условиями и прогрессом
  • Списание баллов на внутренние покупки

Что добавит в проект

Поверх общей базы — она уже даёт авторизацию, базу и интерфейс.

Таблицы в базе4

point_eventspoint_balancesachievementsuser_achievements

Маршруты2

/dashboard/achievements/api/points

Разбор архитектуры

Баланс — не колонка, а сумма событий. Колонку рано или поздно разъезжает с историей при гонке или откате, а по событиям всегда видно, откуда взялось число, и любое начисление можно отменить задним числом. Текущий баланс кэшируется отдельной таблицей и пересчитывается из событий.

Общая база

Пустое, но рабочее приложение: авторизация, база, UI-кит и деплой уже собраны и связаны между собой. Модули не переписывают его файлы — они добавляют свои и регистрируются в готовых точках расширения, поэтому их можно ставить в любом сочетании.

Next.js 16 (App Router)TypeScriptPostgreSQL + Drizzle ORMAuth.jsTailwind CSS + shadcn/uiDocker