ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Модернизация построенного на базе Jive корпоративного портала для личностного роста

Краткое описание проекта

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

Современный рынок предоставляет достаточно широкий выбор технологических решений, позволяющих организовать такую возможность, достаточно лишь выбрать наиболее подходящее и адаптировать его под свои нужды.

Подобный инструмент был внедрен у нашего заказчика и представлял собой портал для личностного роста и саморазвития сотрудников. В основе данного портала лежит разработанная на базе Java-EE система по организации корпоративных социальных сетей и совместной работы Jive.

При помощи данного портала сотрудники могут выполнять следующие функции:

  • Создавать курсы и организовывать обучение других сотрудников.
  • Организовывать и участвовать в мероприятиях (тренингах, встречах).
  • Загружать на портал и просматривать видео с различных ресурсов (YouTube).
  • Отслеживать новости и информировать других пользователей о предстоящих мероприятиях при помощи RSS ленты и e-mail рассылки.
  • Поддерживать связь и общаться с другими пользователями.

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

  • Обновить устаревшее ядро. Плохая совместимость разработанного кода с новой версией Jive, не доработанная клиентская и серверная валидация, а также ряд других, более мелких, проблем.
  • Обновить пользовательский интерфейс, не соответствующий современным требованиям.
  • Предоставить возможность загрузки на портал видео не только с YouTube. Заказчик пожелал иметь возможность загрузки видео с других популярных платформ.
  • Организовать поддержку нескольких языков.
  • Покрыть юнит тестами код.

Мы реализовали новый интерфейс на базе Freemarker (шаблонизатора для динамического заполнения текстового вывода) и CSS. В дополнение к этому мы использовали библиотеку DWR (Direct Web Remoting, Java-библиотека, позволяющая коду в браузере использовать методы Java, исполняемые на сервере, так, как если бы они исполнялись в браузере).

Мы обновили ядро Jiva, обеспечили совместимость со старой версией, устранили ошибки валидации. Также мы внедрили Spring с использованием JAX-WS (Java API for XML Web Services, интерфейс для создания веб-служб).

Для того, чтобы можно было загружать видео с различных платформ (vimeo и yahoo), мы разработали специальный фреймворк, при помощи которого можно легко добавлять загрузку видео различных провайдеров. После этого мы применили данный фреймворк в нашем проекте.

Мы внедрили практику написания Unit-тестов для любого разрабатываемого модуля. Это позволило в будущем оперативно находить ошибки при внесении изменений в код.

Работа над проектом усложнялась тем, что отсутствовал исходный код проекта и нашей команде пришлось проводить декомпиляцию и разбираться как работает система.

Дополнительно мы создали дополнительное окружение для тестирования, тем самым смогли предотвратить просачивание ошибок на production сервера.

Ниже, на рисунке 1, схематично представлена итоговая структура портала.

Структура портала

Рисунок 1 — Структура портала

Технологии

Programming languages: Java, Javascript, CSS.

Frameworks: Spring IoC, Spring Security, Spring DAO, Apache Struts SiteMesh, Apache CXF.

Infrastructure: Ant, Git, IntelliJ IDEA, Jira, Tomcat.

Test libraries: JUnit 4.

Other libraries: DWR.

Tools: Jive, Freemarker.

Особенности проекта

  • Изначально отсутствовал исходный код и приходилось работать через декомпиляцию.
  • Заказчик выставил достаточно сжатые сроки разработки.
  • Требовалось обеспечить совместимость разработанного для старой версии Jive кода с новой версией Jive.

Результат проекта

В рамках работы над проектом компанией ДжазТим были решены все поставленные задачи:

  • Выполнена доработка и адаптация плагинов для загрузки видео (ранее была загрузка видео только с YouTube): добавлена загрузка с двух других платформ — Vimeo и Yahoo, а также создан фреймворк, позволяющий добавлять новые видео-провайдеры.
  • Решена задача по улучшению клиентской и серверной валидации, а также доработана система обработки ошибок.
  • Код покрыт Unit-тестами, что позволило оперативно находить ошибки в отдельных модулях исходного кода портала после внесения изменений.
  • Добавлена поддержка нескольких языков.
  • Переделан пользовательский интерфейс (добавлено улучшенное объяснение на страницах создания и редактирования, понятные сообщения об ошибках, удобное перемещение форм вверх страницы).

Достижения компании на проекте

  • Предложено и реализовано внедрение Staging Environment (окружения, являющегося точной копией приложения, используемого для тестирования).
  • Реализован фреймворк, позволяющий добавлять новые видео-провайдеры.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения