Deti.dk · Копенгаген

Портал русской воскресной школы

Публичный сайт на трёх языках и личный кабинет для семей и педагогов — одна система, в которой живёт вся школа: от первой заявки родителя до журнала, расписания и счетов.

  • 0языка сайта — RU · DA · EN
  • 0ролей в кабинете
  • 3–18лет — возраст детей
Скачать PDFТа же страница одним файлом — для печати и для тех, кому удобнее прислать документ.Показать кабинет за минуту →

Что такое портал Deti.dk

Обзор

Портал — это не сайт и отдельно «какая-то программа для учёта». Это одна система с двумя лицами: наружу она рассказывает о школе и принимает заявки, внутрь — ведёт семьи, занятия, журнал и деньги. Данные у обеих половин общие, поэтому заявка с сайта становится учеником, не превращаясь по дороге в письмо, таблицу и стикер на мониторе.

🌍 Публичный сайт

  • Русский, датский и английский — переключаются одной кнопкой
  • Программы по возрастам, расписание, команда, цены, отзывы, галерея
  • Квиз «какой кружок подойдёт ребёнку»
  • Запись на пробное занятие и на мероприятия
  • Личные страницы педагогов и страницы курсов — ими не стыдно поделиться в соцсетях

🔑 Личный кабинет

  • Пять ролей: гость, родитель, педагог, администратор, директор
  • Каждая роль видит свой набор разделов — и ничего сверх него
  • Дети, расписание, журнал, материалы, счета, мероприятия
  • Сообщения, календарь, сообщество семей одной школы
  • Управление публичным сайтом изнутри — без программиста

Путь семьи — от первого клика до полноценного кабинета

  1. 1ЗаявкаРодитель оставляет заявку на сайте — форма работает даже без JavaScript
  2. 2ПробноеШкола записывает на бесплатное занятие, родитель получает ответ на своём языке
  3. 3ЗачислениеВыбирается группа, заводится профиль ребёнка и первый счёт по тарифу
  4. 4КабинетСемья получает полный доступ: занятия, журнал, материалы, оплаты
Одна вещь, о которой стоит сказать отдельно. Содержимое сайта — тексты, расписание, карточки педагогов, FAQ, отзывы, галерея — хранится в базе, а не в коде. Школа правит его сама из кабинета, и изменения появляются на сайте сразу, без участия разработчика и без «выкладки новой версии».

Публичный сайт

deti.dk · RU / DA / EN

Одна длинная страница, по которой родитель проходит сверху вниз и в конце оставляет заявку. Плюс отдельные страницы: педагоги, курсы, приватность, условия.

Знакомство

  • Главный экран и «Почему мы»
  • Выбор по возрасту ребёнка
  • Мини-садик 3–5 лет
  • Чему учим · Русский, литература, логопед

Доказательства

  • Расписание воскресений
  • Команда — карточки педагогов
  • Галерея
  • Отзывы родителей

Решение

  • Квиз подбора кружка
  • Цены — открыто, таблицей
  • Частые вопросы
  • Заявка и контакты

Что здесь сделано аккуратнее, чем обычно

🌐 Три языка по-честному

Не «переключатель, который меняет половину надписей». Каждый язык живёт по собственному адресу — /ru, /da, /en, — а сайт сам угадывает язык нового посетителя по настройкам его браузера. Ответ на заявку приходит на том языке, на котором её подали.

📝 Форма, которая не подводит

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

🔎 Понятен поисковикам и ИИ

Структурированная разметка организации, карта сайта, корректный robots — школу правильно понимают и поисковики, и современные ИИ-ассистенты, к которым родители всё чаще идут с вопросом «куда отдать ребёнка в Копенгагене».

👩‍🏫 Страницы педагогов и курсов

У каждого педагога — своя страница с биографией и списком его курсов; у каждого курса — своя. Это отдельные адреса с нормальным превью для соцсетей: ссылку можно отправить в родительский чат.

Сайтом управляет школа, а не разработчик

Раздел «Сайт» в кабинете — это редактор всего публичного содержимого: тексты на трёх языках, расписание, каникулы, карточки команды, галерея, отзывы, FAQ, блоки «почему мы» и «чему учим», возрастные карточки, карточки курсов. Администратор или директор меняет — на сайте видно сразу.

Кабинет: пять ролей

Кто что видит

Кабинет один, но каждый входит в свою версию. Разделы, которых у роли нет, не просто спрятаны из меню — они закрыты и по прямой ссылке.

РазделГостьРодительПедагогАдминДиректор
Дети и страница ученика
Занятия и расписание — воскресенья, запись, сетка
Счёт семьи — баланс и списания
Сообщения и чаты
Школа — афиша, календарь, сообщество
Воскресенье — занятия дня и журнал
Мои предметы — группы, предложения, курсы
Мои часы по сетке звонков
Дети и семьи — все дети, по группам, воронка, после пробного
Входящие — запросы, отсутствия и замены, кандидаты, отзывы
Деньги — балансы семей, списания, переводы
Сайт — тексты и мероприятия
Команда — сотрудники, роли, приглашения
Настройки и согласия

Директор может посмотреть кабинет «глазами» любой роли и войти в кабинет конкретного человека — педагога, администратора, семьи. Это отдельный режим: он меняет набор разделов, но не даёт лишних прав, ничего не сохраняет от чужого имени, не открывает чужую переписку и пишет каждый вход в журнал поимённо.

Родитель и гость

Самая многочисленная роль

Кабинет родителя отвечает на четыре вопроса, ради которых он вообще заходит: что было с ребёнком на занятии, что будет дальше, сколько я должен и как связаться со школой.

👧 Дети

Главная кабинета. Карточка каждого ребёнка: заметки педагогов, посещаемость за последние недели, фото, блок «безопасность» (аллергии, экстренный контакт, кто забирает) и одноклассники с возможностью написать их родителям.

🗓 Занятия

Две вкладки. Наши воскресенья — ближайшие занятия детей: отмены зачёркнуты, замены подписаны именем заменяющего; отсюда же «предупредить о пропуске» — педагог узнает заранее. Записаться — каталог групп и курсы.

📚 Материалы и игры

Отдельного раздела нет — они на карточке ребёнка. Темы занятий и файлы педагогов только тех групп, где он учится, и дверь в игровой портал.

🎓 Записаться: группы и курсы

Два разных списка на одной вкладке. Группы — каталог: педагог, свободные места, цена за урок; можно задать вопрос, записать ребёнка или встать в лист ожидания. Курс — не кружок и не абонемент: у каждого курса своя цена за курс целиком, своё начало и свой конец, а запись открывается заранее, как на мероприятие. Курсы живут в отдельном календаре на год, а не в воскресной сетке.

💳 Счёт

Баланс семьи, а не счета за месяц вперёд: деньги лежат на счету и списываются за посещённые занятия по отметке в журнале. Пополнения, история списаний, реквизиты для перевода, статус «ждёт подтверждения» до того, как администратор увидит перевод; кончаются деньги — школа предупреждает заранее.

🎈 Школа

Афиша с записью на мероприятия, календарь школы и семьи — занятия, каникулы, события, дни рождения — и сообщество: семьи одноклассников, педагоги, групповые чаты.

Гость — семья, которая ещё не стала членом школы

Кабинет заводится сразу после заявки с сайта, и он тот же, что у родителей школы: дети, занятия, счёт, сообщения, школа, настройки. Наверху главной, пока семья не член школы, стоит карточка пути: заявка → пробное → зачисление → членство, там же согласия. Членом школы семья становится сама с первым годовым взносом; до этого закрыты только чужие дети, фото других семей и чаты родителей.

Игровой портал

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

Педагог, администратор, директор

Рабочие места школы

📖 Педагог

  • Воскресенье — журнал выбранного дня: посещаемость одним касанием, с автосохранением; стрелками ‹ › — любое воскресенье
  • Бейджи прямо в списке: аллергия, «без фото», день рождения
  • Заметка о ребёнке — сразу видна родителю, с уведомлением
  • Материалы к занятию — тема и файлы уходят всем родителям группы
  • Мои предметы — свои группы и курсы: педагог предлагает, администрация утверждает; до утверждения ни группы, ни курса не существует
  • Желаемое время — педагог просит время в сетке, администратор двигает блок и назначает кабинет; подтверждённое занятие ложится в черновик и публикацию не минует
  • Четыре недели вперёд с заменами и «не смогу», часы по сетке звонков, чаты

🗂 Администратор

  • Воскресенье — занятия дня по урокам: кто отмечен, пробные, занятия без педагога, семьи с деньгами на исходе; журнал любого педагога открывается отсюда
  • Дети и семьи: все дети школы, люди по группам, воронка — заявка → пробное → зачислен → активен, архив с причиной отказа — и кто остался после пробного; зачисление одним действием: группа, профиль ребёнка, счёт семьи
  • Входящие — всё, что ждёт решения, одной лентой: запросы семей и педагогов, отсутствия и замены (запрос педагога → заменяющий → уведомления во всех расписаниях), кандидаты в команду, отзывы и жалобы
  • Расписание: сетка воскресенья, взрослые и часы, курсы, каникулы; группы, места, лист ожидания, отмены и возвраты занятий
  • Деньги: балансы семей, списания по посещаемости, подтверждение переводов, счета на пополнение
  • Сайт: тексты и страницы предметов, мероприятия и рассылки

🦉 Директор · Воскресенье

Главная у директора та же, что у администратора: занятия дня, кто отмечен, пробные, семьи с деньгами на исходе. Отдельного дашборда нет.

Команда

Сотрудники и роли: приглашения по e-mail, смена ролей, блокировка, передача группы другому педагогу, выгрузки школы, журнал действий.

Кандидаты в команду

Отклики желающих преподавать: администратор видит их во «Входящих» и напоминает, нанимает директор.

Два правила, на которых держится расписание

Черновик, а не хаос

Правки расписания копятся в черновике и не тревожат ни родителей, ни сайт. Публикует их человек одним действием — и только тогда уходят письма, причём адресно: только тем семьям, у чьих детей действительно изменились занятия.

Отмена и выходной — разные вещи

Отмена значит «занятия не будет и оно не оплачивается». Выходной педагога значит «нужна замена». Пересечение по педагогу или кабинету — предупреждение, которое подтверждает человек; пересечение по группе — отказ, который не продавливает никто.

Деньги — прозрачно и по правилам

Цены опубликованы на сайте

Цена в школе считается за один урок, а не «за месяц вообще». Поэтому в месяце с пятью воскресеньями счёт больше, а каникулы уменьшают его сами, без пересчётов вручную и споров.

сумма = цена за урок × уроков в неделю × учебных воскресений в периоде

Школа, 6–18 лет — цена за один урок в группе до 10 человек

Уроков в неделюПомесячно6 месяцевГод
Один90 kr80 kr80 kr
Два и больше80 kr75 kr75 kr

Мини-садик 3–5

250 kr за воскресенье за ребёнка: 1000 kr в месяце с четырьмя воскресеньями, 1250 kr — с пятью; в каникулы садика нет, и эти воскресенья не считаются. Группы до 20 человек. Скидки за длинный срок здесь нет.

Второй ребёнок

−10% от получившейся суммы. Старшинство считается по дате рождения.

Годовой взнос

250 kr за ребёнка раз в учебный год, отдельной строкой. Платится целиком, когда бы ребёнок ни пришёл. Скидка за второго ребёнка на него не действует.

Индивидуальные занятия

Логопед-дефектолог — от 450 kr за час или курс на три месяца за 4999 kr; запись через администратора. Остальные индивидуальные занятия: цену и продолжительность преподаватель обсуждает с семьёй лично.

Как выставляются счета

Считает машина, выставляет человек

20-го числа система готовит черновик счетов за следующий месяц и зовёт администратора: «проверьте». Ничего не уходит родителям само. Человек подтверждает ровно то, что видел на экране: если к моменту нажатия пересчёт дал другую сумму, подтверждение отклоняется.

Счёт правится до отправки

Экран подтверждения — не список сумм, а редактор: администратор открывает счёт, меняет цену, добавляет и убирает строки и только потом отправляет семье. До отправки счёта не существует — родитель не видит его не потому, что тот спрятан фильтром, а потому что данных ещё нет.

Выставленный счёт не переписывается

После отправки сумма задним числом не меняется — поправка идёт вперёд отдельной строкой. Чужой перевод не закрывает чужой счёт, частичная оплата принимается, а исключить ребёнка из выставления можно только с причиной, и причина попадает в журнал.

Срок оплаты у всех одинаковый — 1-е число. Оплата — через MobilePay прямо в кабинете: деньги ложатся на счёт семьи сразу после оплаты, и школе не нужно искать их в выписке. Если MobilePay недоступен, остаётся банковский перевод; к нему обязательна пометка — за что и имя и фамилия ребёнка, — а поступление подтверждает администратор по выписке. Курс считается отдельно от воскресных уроков: цену за курс целиком назначает преподаватель, у курса своё начало и свой конец. Скидка за второго ребёнка на курс не действует; ушёл ребёнок или не пришёл — оплата остаётся школе; отменила курс школа или педагог — возврат полный, и доля пройденного не считается.

Приватность и безопасность

Здесь данные детей
Главный принцип: по умолчанию закрыто больше, чем открыто. Вернуть приватность после утечки нельзя, а открыть себя по кнопке — можно. Поэтому каждое умолчание в системе выбрано в пользу закрытости, а не удобства.

🧒 У ребёнка нет учётной записи

И не будет. Ребёнок — это запись, которую заводит родитель, а подтверждает школа. Дети не переписываются, не заводят профилей и не «дружат» внутри системы. Именно это удерживает портал от превращения в социальную сеть с несовершеннолетними.

👁 Взрослый сам решает, кто его видит

Три уровня: только пересекающиеся семьи (умолчание), весь кабинет, только сотрудники. «Пересекаемся» — это общая группа у детей или общее мероприятие, куда обе семьи идут. Телефон и почта скрыты по умолчанию; администрации видны всегда.

✅ Согласия — раздельные и отзываемые

Согласие на страницу ученика и согласие на фотографии — разные, отзываются порознь, в любой момент, из настроек. День рождения ребёнка появляется в общем календаре только по согласию родителя.

🔒 То, что не показывается никогда

Аллергии, экстренный контакт и то, кто забирает ребёнка, не видны никому и ни на каком уровне открытости. Эти сведения живут только в журнале у педагогов той группы, где учится ребёнок.

Техническая сторона

🌍 Всё в Европе

Приложение — Стокгольм, база данных — Ирландия. Данные детей не покидают ЕС.

🛡 Защита на уровне строк

Включена в базе у всех таблиц без исключения: даже при ошибке в коде чужая строка не отдастся.

🚪 Мгновенный отзыв доступа

Закрытие сессии действует сразу, в том числе для уже открытых вкладок и фоновых действий.

Сообщество — как оно устроено безопасно

Родитель пишет отзыв из кабинета и видит его судьбу; администрация одобряет или отклоняет; одобренный отзыв появляется на сайте. Жалоба на сообщение или человека попадает в очередь к администрации, закрывается решением и попадает в журнал — при этом пожаловавшийся не узнаёт ничего нового о том, на кого пожаловался. Блокировка личная и взаимная: заблокированный исчезает из потока, диалогов и каталога у обоих. Педагога заблокировать нельзя. Перед первым сообщением в общешкольный чат человек видит напоминание, что чат читают все.

Надёжность и устройство

Чем это держится

Школьный портал — это не витрина, которую не жалко потерять. В нём журнал, счета и данные детей. Поэтому отдельная часть работы ушла не в функции, а в то, чтобы система умела рассказывать о себе и переживать неприятности.

📬 Ежедневное письмо о состоянии

Каждое утро на общий ящик школы приходит письмо о том, что происходит с системой — в том числе когда всё хорошо. Правило простое: молчание означает поломку, а не благополучие. Нет письма два утра подряд — это повод разбираться.

💾 Ночной шифрованный бэкап

База копируется каждую ночь, копии шифруются и хранятся в двух местах. Восстановление из бэкапа не «предусмотрено», а отрепетировано на живой копии — и повторено по записанной инструкции.

🧪 Автоматические проверки

158 наборов проверок: приватность, деньги, расписание, языки сайта, доступ по ролям. Каждый набор пишется по правилу «проверка, которая не может покраснеть, — не проверка»: после написания код ломают нарочно и убеждаются, что проверка это поймала.

🔐 Предохранители на рабочих данных

Любой служебный сценарий, способный изменить рабочие данные, без явного разрешения просто отказывается работать. Это защита не от злого умысла, а от обычной усталости в конце дня.

На чём построено

ПриложениеNext.js 14 и React — один современный код на сайт и кабинет, быстрый на телефоне
База данныхPostgreSQL (Supabase), защита на уровне строк, EU-регион
ХостингVercel, регион Стокгольм; домен deti.dk
ПочтаСобственный домен школы, настроенные SPF, DKIM и DMARC — письма школы не уходят в спам
ЯзыкиРусский, датский, английский — и содержимое, и интерфейс

Отдельно стоит сказать про обновления: сайт и кабинет — это одно приложение, поэтому школе не нужно «обновлять программу», ждать окна обслуживания или переносить данные. Новая возможность появляется у всех сразу, а данные всё время лежат в одной базе.

Коротко о главном

Итог

Для родителя

  • Понятный сайт на своём языке и заявка в два поля
  • Кабинет, где видно занятия, заметки педагога и посещаемость
  • Все счета в одном месте, без напоминаний в мессенджерах
  • Прямая связь с педагогом и другими семьями школы
  • Полный контроль над тем, что и кому видно о семье

Для школы

  • Ни одной заявки мимо — все в общей воронке
  • Журнал, расписание и замены в одном рабочем месте
  • Счета считаются сами, выставляет их человек
  • Сайт правится изнутри, без разработчика
  • Данные детей — в ЕС, под защитой и с бэкапами

Что уже работает и что впереди

Работает

  • Публичный сайт на трёх языках
  • Заявки, пробные занятия, воронка семей
  • Кабинеты педагогов и администрации
  • Журнал, расписание, замены, мероприятия
  • Счета, тарифы, редактор счёта и подтверждение оплат
  • Оплата MobilePay в кабинете, счёт семьи и оплата вперёд
  • Членский взнос отдельной строкой, уважительный пропуск без денег
  • Курсы: свой календарь на год, цена за курс, запись и возвраты
  • Сообщество, отзывы, модерация

На подходе

  • Открытие кабинета всем семьям — включается одним действием
  • Развитие сообщества: знакомства семей, клубы по интересам
Deti.dk · Инструкция

Как пользоваться порталом

Короткие ответы на вопрос «что мне нажать»: с чего начать, частые дела по шагам и что делать, когда не получается.

Вы не вошли в кабинет, поэтому здесь открыты гостевая и родительская части — то, что станет вашим собственным опытом. Остальные откроются после входа, и каждому своя.

Гость

первый вход

Кабинет заводится сам после заявки с сайта. Ссылка приходит на почту. Отдельного гостевого кабинета больше нет: с первого входа семья видит тот же кабинет, что и родители школы, — дети, занятия, счёт, сообщения, школа, настройки. Наверху главной, пока семья не стала членом школы, стоит карточка пути: заявка → пробное → членство → зачисление, там же согласия. Членом школы семья становится сама с первым годовым взносом (или при зачислении); до этого закрыты только чужие дети, фото других семей и чаты родителей — школе и педагогу писать можно сразу.

Разделы кабинета

Раздел менюЧто в нём
ДетиГлавная: карточки ваших детей и, пока семья не стала членом школы, карточка пути — заявка → пробное → членство → зачисление — с согласиями.
ЗанятияТри вкладки: ближайшие воскресенья и предупреждение о пропуске, запись на пробное и платное с ценой, сетка воскресенья всей школы с вашими детьми в клетках.
СчётСчёт семьи: баланс, движения по счёту, пополнение переводом или через MobilePay, история платежей; здесь же «Как работает счёт семьи».
СообщенияЧат со школой и с педагогом группы — писать можно сразу; кнопка «📎» рядом с полем прикладывает фото. Чаты родителей открываются после членского взноса — 250 kr за ребёнка за учебный год; после пробного кабинет сам покажет шаг «Членство» с суммой и кнопкой в «Счёт».
ШколаАфиша мероприятий и календарь года — сразу; одноклассники и фото других семей — после первого взноса.
НастройкиЯзык, данные о себе и согласия.

Если что-то не получается

  • Детей на главной нет. Ребёнка в картотеку школы заводит администратор — напишите в «Сообщениях», и вас запишут на пробное; после этого запись на пробное и на платное делается самим из «Занятий».
  • В «Школе» не видно одноклассников и фото. До первого годового взноса чужие дети, фото других семей и чаты родителей закрыты. Взнос списывается со счёта при первом пополнении — после него всё открывается само.
  • Пробное записано, а хочется перенести. «Занятия» → «Сетка воскресенья»: в клетке занятия у ребёнка кнопки перенести и снять запись.

Обновлено 13 сентября 2026

Обновлено 13 сентября 2026