kungfuman-platform

Академия Kungfuman — платформа

Полная спецификация: docs/SPEC.md. Читай её перед архитектурными решениями. Журнал отклонений от спеки: docs/DECISIONS.md.

Стек

Next.js 15 App Router, TypeScript strict, Tailwind, shadcn/ui, Supabase (Postgres + RLS).

Незыблемые правила

  1. Мультитенантность: любой запрос к данным фильтруется по school_id. Никогда не хардкодь школу.
  2. Все пользовательские тексты — JSONB {"ru":..,"tg":..,"en":..}. Никогда не text.
  3. Безопасность живёт в RLS, а не в UI. Каждая новая таблица получает политики в той же миграции.
  4. Деньги — bigint в минорных единицах + отдельное поле currency. Никогда не float.
  5. Бизнес-логика в lib/domain/ — чистые функции без React и без Supabase-клиента.
  6. Схему БД меняем только миграциями в supabase/migrations. Никаких правок через UI Supabase.
  7. Даты и время — timestamptz. Отображение конвертируется в schools.timezone.

Команды

pnpm dev
pnpm typecheck
pnpm test
supabase db reset
supabase gen types typescript --local > lib/types/database.ts

Стиль

Русский язык в UI. Комментарии в коде на русском. Тёмная тема, чёрный + золото (айдентика Kungfuman).

Порядок работы (важно)