Министерство образования и науки Российской Федерации Московский физико-технический институт (государственный университет) Факультет инноваций и высоких технологий Проект MyLibrary (облачное хранилище документов с поддержкой семантики) Долгопрудный 2013 Кратко: Идея Создать сайт - облачное хранилище, на которое пользователи загружают свои документы, а затем могут легко просмотреть свои документы, воспользовавшись автоматическим созданием аннотаций, выделением ключевых слов, поиском похожих документов. Либо просто скачать оттуда свои документы с любого устройства, которое им удобно. Поддерживается несколько типов хранилищ документов, версионность файлов, api для независимых семантических анализаторов. Подробно: Проблема Офисные работники, студенты и многие другие люди пропускают через себя и свои компьютеры горы разной литературы и документов. Документы часто скачиваются из интернета, имеют непонятные названия, попадают в какую-то временную папку и в итоге теряются. Найти нужный файл через месяц после скачивания становится огромной проблемой. А поскольку сейчас все пользуются одновременно планшетом, ноутбуком и телефоном – проблема встаёт ещё острее, ведь нужный документ всегда должен быть под рукой. Огромную популярность завоевали онлайн-хранилища, имеющие настольные и мобильные клиентские приложения для синхронизации. Однако проблема поиска документов осталась, и не решена она даже в решении от поисковика Google Docs. Искать по точному вхождению подстроки – это неудобно. Возможность искать похожие документы (например, версии одного документа) отсутствует, хотя часто именно конечная версия докторской работы теряется в недрах HDD. Решение Онлайн-хранилище документов, которое поддерживает различные технологии Data Mining и выполняет следующие функции: 1. Поиск документов не по точным словам, а с учётом синонимов. Например, искал по слову «ребёнок», а нашёл документ со словом «дети». 2. Автоматическое выделение из документов ключевых слов (будут располагаться на месте иконки у документа) 3. Составление кратких версий текстов 4. Поиск похожих документов Требования проекта по команде Для реализации проекта нужно как минимум 4 человека: один программист C++, два вебразработчика и один бизнесмен. Обязанности: Программист C++: сетевой код, прикручивание готовых алгоритмов на C++ и C# (дёргание экзешников), связь с БД Веб-разработчики: поднятие сервера, написание Front-End, соединение с БД Бизнесмен: презентации, elevator pitch, подача заявок на конкурсы стартапов, общение с инвесторами и потенциальными пользователями Целевой рынок Идея целевого рынка – аналитики из венчурных фондов, которые много работают с неструктурированной информацией Хорошо сработает сарафанное радио (постоянные конференции, конкурсы), если получится сделать хорошее хранилище. Видение User-story 1: у пользователя на компьютере есть папка, в которую пользователь может кидать любые файлы. Эта папка с помощью специально установленного клиента синхронизируется с облаком. Пользователь может кинуть в эту папку документы, и затем в облаке посмотреть: а) Содержимое папки и подпапок – либо просто иконки всех документов, либо аннотации к документам, либо упорядоченные по папкам, как в ОС б) Содержимое своей папки из аккаунта в Google Docs в) Содержимое своей папки из аккаунта Dropbox в) Содержимое папки из аккаунта Windows Skydrive г) Другие хранилища Техническая реализация: Для операционных систем есть кроссплатформенный клиент, написанный на Qt C++, который отвечает за загрузку файлов на сервер с использованием модуля QNetwork. Для различных устройств существуют различные версии сайта. Например, для мобильных телефонов есть простая HTML-версия. User story 2: пользователь создаёт у себя в директории приложения «На распознавание» новую папку, куда сканирует какой-нибудь документ. Этот документ автоматически подгружается на сайт, где распознаётся OCR-слой. Затем в главное папке приложения появляется текстовый документ, который состоит из склеенных друг с другом отсканированных страниц. User story 3: пользователь кидает в папку «На распознавание» книгу в формате PDF или djvu, и она распознаётся на сервере, после чего в папке приложения появляется новый документ, содержащий текст книги. Техническая реализация: Пользователь может загрузить на сайт отсканированный документ, который с помощью Google Docs api, либо с помощью взаимодействия с ABBYY получит OCR-слой. User story 4: пользователь получает от 10-15 подчинённых отчёты раз в месяц, и раньше был вынужден вручную раскладывать их по папкам, причём по форме отчёт всегда должен называться report.doc, и пользователю приходилось их самому переименовывать, чтобы файлы одного пользователя «ужились» в одной папке. На сайте же все отчёты сами распределены по пользователям, поскольку сайт подгружает контакты пользователя из электронной почты и документы, которые эти контакты присылают. Техническая реализация: сервер приложения загружает контакты пользователя и почту и затем подгружает все документы пользователя и распределяет их по контактам, с которыми пользователь ведёт переписку. Техническая реализация: пользователь может задать маску для файлов-вложений из почты, например %date% %original_name% %user%, и все файлы будут автоматически переименовываться для более удобной работы с ними. User story 5: У пользователя есть папка «Загрузки», куда скачиваются файлы с названиями вроде zsrfz74.xls. Месяц назад пользователь скачал один такой файл, переименовал его в нормальное название и продолжил с ним довольно часто работать. Теперь он понял, что ему нужна начальная версия файла, но просматривать всю папку «загрузки» довольно утомительно. Зайдя на сайт, с которого он скачивал файл, пользователь обнаружил, что ссылка больше недействительна. Но это не проблема: зайдя на сайт семантического хранилища, пользователь с помощью поиска похожих документов быстро находит оригинал, как бы путано его название ни было Техническая реализация: команда пользуется наработками Smart Tagger в области выделения ключевых слов, поиска похожих документов User story 6: Пользователь заходит на сайт, чтобы отредактировать документ, нахождение которого он не помнит – то ли на ПК, то ли в Google Docs. Нажав на нужном документе, он всегда знает, что сейчас откроется какой-либо редактор, в котором можно будет отредактировать выделенный документ. Техническая реализация: сервер знает, где хранится каждый документ, и способен открывать различные редакторы в зависимости от места хранения документа План работ 18.02 – 28.02 1. 2. 3. 4. 5. 6. Знакомство с командой Поиск региональных конкурсов УМНИК Написание заявки на УМНИК – Калуга (и на все другие, что найдём) Создание проекта в Redmine, регистрация участников Определение нашей ключевой ниши – объём выбранного рынка не больше 20 млн руб. Генерация 4 user story 7 марта 1. Выбор языка программирования среди Python, Ruby on Rails, PHP, .Net, исходя из существующих сервисов (Google Docs, Office 365, Dropbox, Facebook, VK), форумов разработчиков 2. Выбор сервера – Apache, Denver, ещё что-нибудь 3. Изучение имеющихся хранилищ документов: Jotta, Dropbox, Google Docs, Office 365. Изучение user stories, отзывов в сети, wish-листов 4. Изучение проблемы семантики в веб: проекты Loomp.org, Nepomuk, dbPedia. Упор на идейную составляющую, функциональность для пользователей. a. Функциональность продуктов b. Целевая аудитория c. Как организовано хранение семантических данных d. Распространённость, интегрированность, универсальность 5. Генерация 8 user story 6. Знакомство с Qt C++ a. Установка b. Написание какого-нибудь базового примера 15 марта Требования: знакомство с технологиями, сборка выборки, анализ конкурентов 1. Разработка пользовательского клиента: a. Механизм пересылки файлов c компьютера пользователя на сервер с использованием протокола HTTP b. Автоматическое отслеживание изменившихся файлов + кеширование содержимого документов на сервере с помощью IFilter c. Интерфейс управления индексируемыми папками 2. Создание выборки документов – 200 учебников, 300 новостных статей. Из них 20 учебников и 50 новостных статей должны быть хорошо известны участникам, чтобы обеспечить возможность тестирования сайта. 3. Ознакомление с SQL, NoSQL – базами данных, выбор подходящей для нужд семантического хранилища 4. Ознакомление с механизмом аутентификации пользователей 5. Анализ конкурентов – веб-хранилищ документов (функционал, технологии, бизнес-модель, ниша и целевая аудитория) 6. Первичная оценка рисков: a. Идентификация рисков b. Оценка рисков c. Планирование ответов на риски d. Мониторинг и документирование рисков 19 апреля Требования: первая рабочая версия сайта, финансовый план 1. Сборка пользовательского клиента 2. Настройка и запуск сервера в локальной сети (без доменного имени) 3. Разработка макета приложения – версия конечного внешнего вида сайта в Adobe Illustrator, PowerPoint или т.п. 4. Заявка на БИТ - середина апреля 5. Разработка функционального макета сайта, на котором пользователь может просмотреть документы в своей папке, прочитать к каждому документу аннотацию, назначить и удалить ключевые слова, получить доступ к редактированию файла (для документа из Google Docs – перейти в Google Docs, для документа с компьютера – послать сигнал в клиент, который откроет соответствующий файл в приложении по умолчанию) 6. Внедрение существующих алгоритмов – аннотирование, выделение ключевых слов 7. Создание укрупнённого финансового плана развития проекта на 1 год, содержащего основные направления развития проекта 8. Написание БД для веб-сервера 9. Система аутентификации пользователей 10. Интеллектуальная собственность: a. Идентификация интеллектуальной собственности b. Определение стратегии защиты интеллектуальной собственности 11. Описание бизнес-модели: a. Ключевые виды деятельности b. Потребительские сегменты c. Ценностные предложения d. Каналы сбыта e. Взаимоотношения с клиентами f. Ключевые ресурсы g. Ключевые партнёры h. Потоки поступления доходов i. Структура издержек 3 мая – redline, внутренняя готовность проекта Требования: бизнес-план, презентация, прототип 1. Доработка прототипной версии сайта: a. поддержка русского языка, b. внедрение БД, 2. 3. 4. 5. c. создание системы кеширования запросов d. Система аутентификации e. Доводка дизайна Изучение механизмов репликации данных, расчёт необходимых затрат для обеспечения надёжности системы 95% Исследование для бизнес-плана: a. Маркетинговое исследование: сколько требуется серверов? Какая нагрузка на процессор? Сколько требуется оперативной памяти? b. Поиск в интернете информации о количестве пользователей у облачных хранилищ, проценте конвертации пользователей c. План расширения функциональности d. Разработка стратегии выхода для инвесторов Создание фирменного стиля, шаблона для презентаций Презентационные материалы: a. Executive summary b. Deck c. Elevator pitch 25 мая – deadline, внешняя сдача проекта Подготовка итоговой презентации, интеграция наработок до наглядного состояния Летний период Предложение заняться разработкой дополнительной функциональности в дополнительное время 1. 2. 3. 4. Синхронизация с аккаунтами Gmail, iOS. Возможность связывать документы с контактами. Тестирование облачных сервисов на пригодность для использования OCR с помощью Google Docs Предоставление сгенерированных ссылок для скачивания документов Осенний семестр Требования: бизнес-план, клиенты 1. Составление рейтинга документов, основываясь на частоте их запрашивания, возможность сделать любимый документ 2. Заявка на Web Ready (середина октября) 3. Отслеживание других конкурсов (Intel, Microsoft…) 4. Резервное копирование документов, контактов 5. Система версионности документов, хранение удалённых документов 6. Возможность редактирования тегов документов, создание связей документов 7. Автоматический запуск подходящего редактора документов 8. Бизнес-план на 2 года 9. Определение состава участников, которые занимаются проектом после завершения учебного курса, решение о создании ООО 10.Подготовка участниками проекта докладов на 56-ю конференцию МФТИ 11.Внедрение механизма suggest