С увеличением вовлеченных в проектную деятельность, увеличивается потребность в гибких и удобных инструментах для управления и поддержки проектной работы. Актуальность проекта состоит в предоставлении таких инструментов и поддержка их быстродействия.
Создание отчуждаемой версии инструментов управления и поддержки проектной работы
Запустить в работу сервис управления проектами (трекер) с удовлетворяющими проектной деятельности МИЭМ изменениями и доработками, внедрением в цифровую среду МИЭМ.
Запущен opensourceсервис Taiga, разработан скрипт и APIдля интеграции в цифровую среду МИЭМ.
Достоверность и обоснованность полученных результат обеспечивается практическим подтверждением, а именно наличием работающего сервиса управления проектами, в котором зарегистрировалось больше 450 участников и создано больше 80 проектов, в половине из которых ведется учет трудозатрат участников.
Для реализации нашего проекта были опробованы разные сервисы для управления проектной деятельностью. На выбор были такие сервисы, как Jira, Gitlab tracker, Taiga и OpenProject. Taiga полностью подходила под наши критерии: полностью бесплатный, self-hosted и функциональный сервис с удобным интерфейсом, поэтому мы выбрали его для реализации поставленных задач. Для этого понадобилось выделить сервер, разработать скрипт для взаимодействия с данными, поступающими из Тайги, и дополнительный API. В планах требуется расширение API и обновление самого сервиса.
Taiga при изменениях в проекте, отправляет данные на трекер. В трекере проверяются отправленные данные и принимается решение по зачислению трудозатрат за задачу в кабинете. Кабинет взаимодействует с тайгой с помощью созданного API.
В планах на дальнейшую разработку - чат, для общени внутри Тайги, без переходов на внешние сервисы, необходимо для полной независимости сервиса, полной его отчуждаемости.
Перед тем, как начать пользоваться сервисом Taiga, пользователю необходимо авторизоваться через один из предоставляемых способов:
Пользователю дается на выбор два способа создания проекта с трекингом задач:
Не смотря на выбор, созданный проект будет одним и тем же.
При создании проекта пользователю надо будет выбрать шаблон, которому будет соответствовать проект. На данный момент шаблоны все одинаковые, в будущем они обретут уникальность.
Для полноценного запуска трекинга над проектом, необходимо соблюсти несколько правил:
После создания проекта, можно приступать к работе над задачами.
Создав задачу в юзерстори своего проекта, необходимо сначала указать количество трудозатрат, которые вы планируете потратить на нее, в специальном поле и назначить на нее ответственного участника.
Когда задача будет выполнена, руководителю проекта необходимо будет закрыть ее, чтобы трудозатраты учлись для назначенного участника.
Сервер с Тайгой, API и Трекером:ssh taiga@host1.miem.vmnet.top -p 2027
Админка тайги: https://track.miem.hse.ru/admin/
~/taiga-back
- backend Тайги
Запуск тайги sudo systemctl start ‘taiga*’
Тайга разработана c помощью Django фреймворка, которые через manage.py
предоставляет кастомный менеджмент, например:
python3 manage.py change_project_slug old_slug new_slug
- меняет короткую ссылку дла проекта (например на номер проекта)
~/taiga-master
- трекер
Запускается через service ubuntu sudo systemctl start tracking.service
Настройки сервиса:
[Unit]
Description=taiga_master
After=network.target
[Service]
User=taiga
Group=www-data
WorkingDirectory=/home/taiga/taiga_master
Environment="PATH=/home/taiga/taiga_master/master/bin"
ExecStart=/home/taiga/taiga_master/master/bin/gunicorn --workers 3 --access-logfile /home/taiga/taiga_master/glog.log --error-logfile /home/taiga/taiga_master/gerr.log --capture-output --enable-stdio-i
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
~/taiga-miem-solution
- API (+ Chat)
API написан тоже с помощью Django, размертывается с помощью Docker с использованием Nginx
Запуск продакшена sudo docker-compose -f docker-compose.yml up --build
version: "3.7"
services:
app:
tty: true
container_name: app
build:
context: ./taiga_miem
dockerfile: Dockerfile
volumes:
- ./taiga_miem:/app
command: gunicorn taiga_miem.asgi:application --bind 0.0.0.0:8000 -w 2 -k uvicorn.workers.UvicornWorker --log-file -
expose:
- 8000
env_file:
- ./taiga_miem/.env.prod
networks:
- redis-net
depends_on:
- redis
- db
db:
container_name: postgres
image: postgres:alpine
restart: always
expose:
- 5432
env_file:
- ./taiga_miem/.env.prod
volumes:
- ./db_data:/var/lib/postgresql/data
networks:
- redis-net
front:
tty: true
container_name: front
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 3000:3000
command: bash -c "npm run start"
networks:
- redis-net
reverse_proxy:
container_name: nginx
build:
context: ./nginx
dockerfile: Dockerfile
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./taiga_miem/static/:/static
ports:
- 8080:80
depends_on:
- front
- app
networks:
- redis-net
redis:
container_name: redis
image: redis:5-alpine
expose:
- 6379
hostname: ${REDIS_HOST}
networks:
- redis-net
networks:
redis-net:
driver: "bridge"
Ссылка на GitLab
API разработанно с помощью фреймворка Django с приложеннием Django Rest Framework.
Расположено в главном каталоге Django проекта taiga_miem/api
Ссылка на GitLab
Главные модули проекта:
Модуль | Описание |
---|---|
app.py | запуск Flask |
wsgi.py | запуск wsgi gunicorn на сервере |
controller.py | отвечает за направление данных вебхука в нужный обработчик |
manual.py | запускается вручную, для сбора потерянных часов и настройки сломанных проектов |
taiga_settings.py | файл для настройки трекера при запуске |
Главные пакеты модулей:
Пакет | Описание |
---|---|
tasks | обработчик изменений в задачах тайги (учет трудозатрат, отзывы, планы) |
roles | изменение ролей в тайге |
reports | управление отзывами в тайге |
memberships | приглашение/удаление участников проекта |
courses | инструмент для получения всех студентов курса из google организации (групп) и добавления их в курс тайги |
utils | общие инструменты для взаимодействия с TAIGA и ЛК |
token.json - хранит токен для авторизации в кабинете
State machine для трекера (учет часов и подтверждение проекта):