Курс живёт отдельно от потока. Один и тот же курс проходят несколько потоков подряд: программа пишется однажды, а группы по ней идут своими сроками.
Что из чего состоит
Курс — название, описание, обложка.
Раздел — часть программы: «Правила расхождения», «Швартовка», «Радиообмен».
Урок — то, что ученик читает или смотрит.
Порядок разделов и уроков — это не дата создания, а место в программе. Урок, вставленный в середину раздела через месяц, встанет в середину; после каждой перестановки порядок пересчитывается подряд, чтобы дырки и повторы не копились молча.
Три вида урока
Урок знает ровно один источник содержимого, и это принципиально — иначе непонятно, что ученику показывать.
1Текст. Школа написала сама: разметка простая, читается как страница книги.
2Видео. Школа залила свой файл.
3Справочник Voone. Урок ссылается на наш учебный материал: правила МППСС-72, уроки манёвров, огни и знаки, разговорник, бедствие. Перепечатывать их школе незачем, и обновляются они у нас.
Черновик, публикация, архив
У курса три состояния: черновик → опубликован → архив.
Ученик видит только опубликованные и архивные курсы. Обратного хода из «опубликован» в «черновик» нет намеренно: курс уже открыт ученикам, и незаметно спрятать его посреди потока — значит оставить людей без программы. Курс, который больше не набирают, уходит в архив: он остаётся читаемым для тех, кто по нему учился.
Видео и файлы школы
Видеоурок — это гигабайты, и через наш сервер он не проходит. Браузер грузит файл прямо в хранилище по подписанной ссылке, а портал отмечает его готовым, когда загрузка закончилась. Пока отметки нет, файл не показывается ученику: браузер мог закрыться на середине.
Чтение тоже идёт по ссылке на время — подписанная ссылка живёт около пятнадцати минут. Вечный адрес означал бы, что видеокурс за шестьдесят тысяч в месяц доступен всякому, кому его переслали.
Файлы школы — не только видео: туда же кладутся картинки, PDF и вложения к сообщениям в чате. Логотип школы для оформления хранится там же.
Кто правит программу
Курсы, разделы и уроки правит администратор. У преподавателя этих кнопок нет, и сервер ответил бы ему отказом: курс общий для всей школы, и правка одним преподавателем меняла бы занятие у всех остальных.
Смотреть программу может любой участник школы.