Техническое задание: Доработка и сборка почтового клиента SOGo
Суть задачи
Необходимо завершить работу по внесению изменений в почтовый клиент SOGo, начатую другим разработчиком. Имеется непроверенный код и некорректно работающее окружение Docker Compose, в котором приложение не запускается. Основная цель - добиться рабочей сборки всего приложения (бэкенд + фронтенд) в Docker, проверить внесённые ранее изменения и при необходимости доработать их.
Область работ
Основные правки сосредоточены на фронтенд-части, однако для получения цельного приложения требуется умение работать и со сборкой бэкенда.
Стек технологий и требования
Фронтенд
- Языки: JavaScript, HTML, SASS/SCSS (компиляция в CSS).
- Фреймворк: AngularJS + Angular Material, ui-router.
- Библиотеки: Lodash, angular-file-upload, ng-sortable и другие вспомогательные пакеты.
- Сборка: Node.js/npm, Bower, Grunt (компиляция SASS, минификация JS, сборка ассетов).
- Кодстайл и документация: ESLint/JSCS (стиль Airbnb), JSDoc, SassDoc.
- Тестирование: Karma, Protractor.
Бэкенд
- Языки: Objective-C (основа SOGo), C (в зависимостях SOPE).
- Платформа/фреймворки: GNUstep, SOPE (WebObjects-style серверные компоненты).
- Сборка: gnustep-make, autoconf/automake.
- Инфраструктура для запуска: Docker Compose (SOGo, PostgreSQL, memcached). Для тестов потребуется почтовый сервер (IMAP, SMTP, LDAP).
- База данных: Одна из: PostgreSQL, MariaDB, MySQL, Oracle.
- Дополнительно: Поддержка ActiveSync при наличии нужных IMAP-расширений на сервере.
Ключевые задачи
- Анализ и исправление существующего окружения Docker Compose для обеспечения запуска SOGo.
- Полная сборка фронтенд-части приложения с использованием указанного стека (Grunt, Bower, npm).
- Сборка бэкенд-части (Objective-C, GNUstep) в контексте Docker-окружения.
- Тестирование и верификация ранее внесённых изменений в код.
- Доработка кода (в основном фронтенд) в случае обнаружения ошибок или недочётов.
- Обеспечение работоспособности цельного приложения в Docker.
Результат работы
Полностью рабочее приложение SOGo с внесёнными доработками, запускаемое через Docker Compose, а также исправленный и проверенный код.