Запущена на http://92.53.124.98:8000
Приложение https://github.com/thecattest/lyceum-reports-android
В нашем лицее ежедневно отслеживаются отсутствующие ученики. Для этого два дежурных ученика ходят по школе и собирают списки отсутствующих, после чего записывают результаты в бумажную таблицу.
Идея этого проекта заключается в полной оцифровке процесса. Я написал WEB-систему, в которой можно отмечать отсутствующих и просматривать актуальную информацию в разных представлениях. Доступ к ней осуществляется по интернету. На данный момент она запущена на моем VDS сервере. В случае, если всё сложится, впереди этап тестирования в школе, а также доработки, диктуемые реальными практическими условиями. В данный момент готово MVP. Открывать систему можно как с компьютера, так и с телефонов, верстка адаптивная.
На главной странице - сводка, в виде карточек представлена краткая актуальная информация. Одна карточка - один класс. На карточке цифра и буква класса, отсутствующие за сегодня и за вчера, кнопка дополнить
и кнопка подробнее
.
Два вида таблиц на отдельных страницах - за класс и за день. В таблице за класс отображаются отсутствующие в каждый конкретный день в выбранном классе, в таблице за день - отсутствующие в каждом классе за выбранный день.
Показывает список отсутствующих в классе за последние 50 дней
Открывается при нажатии кнопки подробнее
на карточке класса на главной странице
Показывает сводку отсутствующих во всех классах за день
Ссылка находится в шапке главной страницы
На странице заполнения отсутствующих - буква и номер класса, дата, список учеников. При нажатии на строчку с учеником он отмечается как отсутствующий, после выбора всех необходимо подтвердить отправку зеленой кнопкой внизу.
Кнопка Очистить
просто снимает весь выбор на клиенте, никаких изменений в базе не происходит.
При смене даты автоматически отмечаются выбранные ранее ученики, если информация уже вносилась.
Страница открывается при нажатии кнопки дополнить
/заполнить
на карточке класса на главной.
Кстати, при переходе по ссылке заполнить
сразу открывается вчерашний или сегодняшний день, в зависимости от местонахождения кнопки.
Доступ к системе только с аккаунтами, так что существует ещё и страница авторизации.
Существует 3 типа аккаунтов:
Flask
+Flask_RESTful
SQLAlchemy
PyMySQL
для подключения к базе данных MySQL
MySQL
на отдельном сервере, в проекте используется ORM SQLAlchemy
.
HTML5
CSS3
+Bootstrap
Vue.js
+Axios
Сервер одновременно отвечает на запросы к api, обработчики которых вынесены в отдельный blueprint, и сервит html страницы.
На страницах динамически подгружается актуальная информация посредством Axios, за отрисовку элементов и взаимодействие отвечает Vue.js.