Агрегатор аккаунтов для веб-приложения
Краткое описание проекта: данная система служит для автоматизации использования учётных записей какого-либо веб-приложения. Она позволяет, используя прокси-серверы и различные алгоритмы, выдавать пользователя системы за владельца лишь одного аккаунта веб-приложения. Как пример, может использоваться для того, чтобы обойти ограничения налагаемые веб-приложением на один аккаунт.
Система представляет из себя десктоп-приложение, которое отображает список доступных пользователю аккаунтов. При нажатии на какой-либо аккаунт открывается браузер и происходит автоматический логин в выбранный аккаунт.
В проект внедрен механизм автоматической загрузки списка прокси-серверов через API прокси-провайдеров. Также применена БД в виде Google-таблиц. Это позволило эмулировать работу реальных пользователей, и избежать подозрений, связанных с использованием нескольких аккаунтов с одного IP адреса.
Цель нашей команды было реализовать, протестировать и предоставить заказчику полностью рабочую систему.
Технологии: AWT/Swing, Selenium, Google API (Drive, Spreadsheet), Jenkins, Quartz, Java WEB Start/JNLP, JIRA, JSON, Log4J, Apache commons libraries.
Скриншоты:
Особенности проекта:
- На проекте использовалась практика Continuous Integration. Настроены автоматические сборки и запуск тестов по коммиту, автоматический деплой и использование нескольких веток приложения (production, develop).
- В качестве back-end использовались Google-таблицы. Это позволило малыми затратами реализовать полноценный back-end. Также этот подход предоставил возможность пользователям, не имеющим знаний и опыта работы с IT-технологиями, редактировать данные в базе данных.
- Большая часть логики было покрыто юнит-тестами.
- Выстроенный процесс выпуска регулярных релизов позволил сделать их более стабильными и всегда в срок. Использовалось мануальное функциональное и регрессионное тестирование.
- JIRA сделала процесс разработки прозрачным для заказчика.
- Поддержка нескольких ОС: OS X, Windows, Linux.
- Применен механизм логирования, что позволило отлаживать приложение удалённо и решать проблемы каждого сотрудника индивидуально.
Результаты проекта:
- Проект был полностью завершен в указанный срок.
- Последняя версия приложения активно используется сотрудниками фирмы заказчика.
- Использование данного приложения позволило заказчику сократить издержки на индивидуальную настройку и поддержку environment’а для каждого сотрудника, что позволило более эффективно использовать время сотрудников.
Достижения компании на проекте:
- Был полностью налажен процесс CI, установлен и настроен environment.
- Быстрое выстраивание процесса кросс-платформенного тестирования, создание use cases позволили делать более стабильные релизы.
- Заказчику были предложены новые и интересные идеи для улучшения проекта и процессов, некоторые из которых были применены. Несколько примеров:
- Использование технологии JNLP для реализации запуска приложения и его автоматического обновления;
- Использование Continuous Integration.
- Команда хорошо себя проявила в условиях коротких итераций и частых релизов.
Отзывы клиентов:
Алексей Семеней, Директор DevTeam.Space, Сан-Франциско, штат Калифорния, США.
Коллеги из команды JazzTeam занимались разработкой десктоп приложения для моей компании в США, и это было большим удовольствием сотрудничать с ними. Я остался доволен проделанной ими работой.
Общение было легким и действительно открытым, команда показывала хороший прогресс, а результат превзошел мои ожидания. В команде JazzTeam был менеджер, который постоянно был на связи, всегда информировал о положении дел на проекте, уточнял требования, планировал задачи и ожидаемый результат на каждый спринт.
Без сомнений, буду работать с ними и на других проектах в будущем.