Open source · MIT

ItCube для телефона

Клиент к платформе учебного центра: журнал посещаемости у преподавателя в кармане

v1.1.0 Интерфейс на языке iOS
Flutter 3.47Dart 3.13CupertinoSanctumInter
ItCube для телефона

Журнал ведут на ходу, а не за ноутбуком

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

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

Что внутри

Четыре состояния, а не два

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

Язык iOS, а не перекрашенный Material

Разница не в цвете: крупный заголовок схлопывается при прокрутке, свайп от левого края возвращает назад, списки уходят за край с отскоком, выбор поднимается листом снизу. У каждой вкладки свой стек навигации.

Свой набор вкладок под роль

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

Кабинет родителя без кода ребёнка

Взрослый видит посещаемость, решённые задачи, последние занятия и сданные работы. Кода не видит намеренно: API его не отдаёт, а приложение не спрашивает. Разбор решения — дело преподавателя.

Три языка, ключ — сама строка

Подписи статусов, ролей и сложности приходят с сервера уже переведёнными: приложение шлёт Accept-Language и не держит второй копии этих слов. Свои строки лежат в одной карте, непереведённое остаётся читаемым текстом.

Проверка в очереди, опрос результата

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

Скриншоты

Преподаватель: журнал, группы и расписание
Преподаватель: журнал, группы и расписание
Родитель: свои дети, посещаемость и сданные работы
Родитель: свои дети, посещаемость и сданные работы
Ученик: занятия и задача с разбором по кейсам
Ученик: занятия и задача с разбором по кейсам

Установка

git clone https://github.com/dripips/itcube-app.git cd itcube-app flutter pub get flutter run --dart-define=BASE_URL=http://10.0.2.2:8000

Есть проект или идея?

Напишите мне, обсудим задачу.