Введение 3
Постановка задачи 5
1. Стек технологий 7
2. Структура базы данных 14
3. Модель серверной части приложения 17
4. Модель клиентской части приложения 22
4.1 Сервисы 22
4.2 Компоненты 28
4.3 Ngrx 36
5. Описание веб-интерфейса 46
Заключение 51
Список использованной литературы 52
Приложения 53
В силу того, что мир движется в сторону автоматизации большинства процессов, перед нами была поставлена задача реализации приложения, призванного облегчить работу преподавателей и усовершенствовать общую систему работы университета.
Цель работы состоит в создании веб-сервиса, который предназначен для оценки посещаемости занятий студентами и разработке удобного пользовательского интерфейса для работы с ним. Данное приложение направлено на оптимизацию и автоматизацию процессов ведения и просмотра статистики посещения студентами пар. Работа нашего сервиса основана на нейронных сетях, что и является фундаментальным отличием от подобных сервисов, где пользователю необходимо выполнять все рутинные операции руками, а для реализации интерфейса использовались современные технологии разработки веб-приложений, начиная от реализации интерфейса, заканчивая сложными математическими алгоритмами определения лиц, позволяющие ускорить работу сервиса в разы, по сравнению с традиционной реализацией.
Принцип работы сервиса заключается в том, что у нас имеется некоторая база с фотографиями студентов. Преподаватель, войдя в личный кабинет видит перед собой список занятий на сегодняшний день. Также имеется возможность навигации по датам календаря для просмотра расписания. Выбрав определенное занятие, пользователь получает доступ к информации по этому предмету. Здесь представлен список студентов из всех групп, которые должны присутствовать на занятии, а также форма для загрузки фотографии. Дополнительно предоставляется возможность отметки присутствующих вручную или их корректировка для приверженцев традиционного подхода.
Сделав одну или несколько фотографий аудитории в которой находятся студенты, преподаватель загружает их через форму и отправляет на сервер. Специально обученный алгоритм определяет все лица на фотографии и отмечает всех присутствующих на паре студентов, автоматически обновляя список в форме личного кабинета, благодаря чему не тратится на это много времени.
Также преподаватель может посмотреть статистику посещения его занятия в виде наглядной инфографики, как по отдельному студенту, так и по группе в целом.
Разрабатывался данный проект с помощью различных средств. Для клиентской части использованы технологии HTML, CSS, JAVASCRIPT, Angular, Typescript, Ngrx. Серверная часть написана на языке Python и использован фреймворк Flask. В качестве системы управления базами данных выбрана MySQL.
Таким образом, итогом работы является созданный веб-сервис для учета посещаемости занятий учащимися. Были учтены все современные тенденции как в области обыденной жизни, так и в области программирования. В силу того, что мир движется в сторону автоматизации большинства процессов, передо мной была поставлена задача реализации приложения, призванного облегчить работу преподавателей и усовершенствовать общую систему работы университета. Для этого были использованы новейшие инструменты для создания веб-сервисов, архитектуры баз данных, а также реализации серверной части. В итоге реализовано принципиально новое приложение, со следующими характеристиками:
• Удобный и простой интерфейс пользователя
• Современные технологии, обеспечивающие быстроту и стабильность сервиса
• Автоматизация процесса отметки посещения, путем простой загрузки фотографии в сервис
• Использование нейронных сетей для обработки полученных данных и формировании результатов
• Постоянный доступ ко всей нужной информации
• Вся необходимая статистика формируется в наглядные графики
1. ng-book: The Complete Book on Angular 5: учебник / Ф. Кори [и др.] - 2-е изд. - Л.: CreateSpace Independent Publishing Platform, 2017. - 622 с.
2. Фримэн, Pro Angular: учеб. пособие / A. Фримэн - Л.: Apress, 2017. - 778 с.
3. Гринберг, The New and Improved Flask Mega-Tutorial: учеб. пособие / М. Гринберг - П.: Independently published, 2017. - 347 с.
4. Гринберг, Flask Web Development: Developing Web Applications with Python: учеб. пособие / М. Гринберг - 2-е изд. - П.: O'Reilly Media, 2018. - 316 с.
5. www.angular.io - Официальный сайт фреймворка Angular.
6. www.medium.com - платформа журналистики.
7. www.habr.com - сайт для публикации новостей, аналитических статей, мыслей, связанных с информационными технологиями, бизнесом и Интернетом.