EZ Print
EZ Print
EZ Print - это онлайн сервис для печати документов. С сервером сайта сервиса соединена сеть принтеров (реализована технология интернета вещей), на которых можно печатать документы. EZ Print - это как Uber, только для принтеров.
Проблема и её решение
У большинства иногородних и даже иностранных студентов, которые проживают в общежитиях, есть проблема – у них нет принтеров.
А порой для учебы нужно печатать много документов – это рефераты, конспекты, курсовые и т.д.
Чтобы распечатать, у студента есть два выхода:
- Попросить знакомых распечатать документы. Это довольно проблематично, потому что:
- Не у всех есть знакомые с принтерами
- Не факт, что твои знакомые смогут или захотят тратить на тебя свое время и силы
- Печатать в копировальных центрах. Здесь тоже есть проблемы:
- Копировальные центры не всегда находятся рядом. Приходится тратить время и силы на то, чтобы дойти до него
- Копи-центры не работают круглосуточно
- Главная проблема - это очень высокая стоимость печати, часто она слишком высока для обычных студентов
Автоматы печати EZ Print - решение проблемы дороговизны и удобства печати, потому что планируемая цена печати в несколько раз ниже, чем в копи-центрах, и точки печати планируется размещать в студенческих общежитиях для высокой доступности. Таким образом, автоматы печати EZ Print улучшат условия проживания студентов в общежитиях. Также, планируется устанавливать точки печати в кампусы университетов.
Как работает
Чтобы распечатать документы, клиент:
- Заходит на сайт EZ Print
- Выбирает принтер
- Загружает документы для печати на сайт
- Выбирает настройки печати
- Оплачивает печать онлайн
- Забирает напечатанные документы
Как реализовано
Сайт сервиса написан на языке программирования Python, в качестве веб-фреймворка используется Flask. В качестве БД используется база данных семейства SQL. Для взаимодействия с БД используется ОРМ SQLAlchemy. В качестве шаблонизатора используется Jinja2. Для работы сервера использовано множество прочих библиотек: zipfile, xml, PyPDF2, json, io, os и т.д. Взаимодействие с компьютером точки печати происходит при помощи реализованной технологии long-polling через написанный на сервере REST-API.
Каждая точка печати оснащена компьютером, который соединен с сервером (сайтом). Сервер управляет сетью точек печати, он отправляет документы для печати, дает команды на печать, обновляют информацию и т.д. Для печати компьютер точки печати использует библиотеки для взаимодействия с ОС Windows - это win32print и win32api. Для увеличения производительности печати, клиент работает в многопоточном режиме, реализован паттерн Producer-Consumer.
