Курсовой проект 6-го семестра специальности УИР-171
Система отслеживания задач (баг-трекинговая ситема, БТС) - это система с функционалом, обеспечивающим удобное управление задачами в ходе разработки проекта. Включает в себя создание, контроль и систематизацию различных типов задач в зависимости от нужд проекта. Система баг-трекинга может серьёзно повлиять на процесс разработки программного обеспечения, т.к. позволяет отслеживать все процессы и их состояние, собирать статистику и представлять её более наглядно. Более того, БТС обеспечивает возможность совместной работы над проектом, что весьма необходимо для современных проектов, где бизнес-аналитики, разработчики и тестировщики принимают активное участие.
Основные функции системы заключаются в следующем:
- Авторизация и регистрация пользователей - обеспечение доступа к системе посредством email-адреса и пароля, а также возможности создать аккаунт в системе путём регистрации нового пользователя ;
- Создание задач разных типов с возможностью добавить детальное описание, указать приоритет и ответственного за задачу пользователя. У каждой задачи есть статус: TO DO, IN PROGRESS, DONE ;
- Отображение списка задач проекта - включает в себя список всех задач проекта и отдельный список задач, назначенных на текущего пользователя;
- Создание графиков и метрик - визуальный вывод информации о состоянии проекта, включает в себя два типа: инфографика по текущему статусу проекта и по типам задач.
Дополнительный функционал (по мере возможности):
- Создание и учёт проектов - возможность создать новые проекты и параллельно отслеживать задачи;
- Фильтрация задач по приоритету и типу - обеспечение удобства прослеживания задач проекта.
- Поиск в системе - возможность поиска отдельных задач, проектов по словам и словосочетаниям в системе.
Технически проект разделён на две части:
- Бекенд обеспечивает обработку запросов, управление существующими аккаунтами в системе, уведомления, добавление/удаление/редактирование существующих ошибок и иные функциональные задачи;
- Фронтенд представляет собой веб-приложение, графический интерфейс пользователя для взаимодействия с системой.
Бекенд часть проекта строится на основе NodeJS и FeathersJS - фреймворк для написания real-time REST API.
FeathsJS имеет в своём составе адаптеры для работы с наиболее популярными базами данных. С Feathers архитектура бекенд приложения строится на сервисах и событиях, что позволяет разрабатывать продукты любого масштаба.
# TODO: Описание сервисов
Для создания полноценного хранения данных о текущем состоянии системы и созданных задач необходимо использование базы данных.
Далее приведён список основных сущностей базы данных (не включая связывающие сущности "один ко многим", "многие ко многим"):
-
Управление пользователями
- Email (Email) - сущность, хранящая основную системную информацию, логин пользователя в системе ;
- Пароль (Password) - детальные данные о пароле;
- Имя и фамилия (First name, Second name) - сущности, необходимые для ображения к пользователю системой, а также для назначения задач проекта на отдельного пользователя;
-
Управление задачами проекта:
- TaskID (ID) - ключ задачи в системе;
- Task Name (TaskName) - имя отдельной задачи проекта, которое в дальнейшем отображается в списке задач главной страницы;
- Task Priority (Priority) - приоритет отдельной задачи проекта, необходим для построения инфографики на главной страницы и сортировки в списке задач Варианты: HIGH, MEDIUM, LOW;
- Task Status (Status) - статус отдельной задачи проекта, необходим для построения инфографики на главной страницы и сортировки в списке задач. Варианты: TO DO, IN PROGRESS, DONE ;
- Assignee (Assignee) - ответственный за задачу пользователь. Список задач пользователя отобржается на главной странице системы.;
-
Управление проектами:
- ProjectID (ID) - ключ проекта в системе;
- Project Name (ProjectName) - имя проекта, для которого отображается список задач на главной странице;
Для создания веб-приложения использовались сторонние фреймворки и ресурсы.
ReactJS - основной фреймворк фронтенд стороны проекта, JavaScript-библиотека для создания пользовательского интерфейса.
Веб-приложение представляет собой SPA (Single-page Application), предоставляющий интерфейс взаимодействия с функционалом бекенд системы.
При разработке веб части использовались CSS стили сторонних проектов (шаблонов), список которых может быть найден в директории /web/template.
# TODO: Описание страниц и функционала интерфейса
- Артём Ходаков - Бекенд, Фронтенд - akhodakov
- Екатерина Макарова - Бизнес-функционал, Фронтенд, Тестирование - ekaterinamakarova
Этот проект лицензируется с помощью MIT License. Подробный текст лицензии можно найти в файлк LICENSE
Google Kubernetes Engine - GitHub Actions [Электронный ресурс] - 2020. - Режим доступа: https://github.com/GoogleCloudPlatform/github-actions/tree/master/example-workflows/gke. - Дата доступа: 28.04.2020.
Deploying a containerized web application [Электронный ресурс] - 2020. - Режим доступа: https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app. - Дата доступа: 08.05.2020.
Deploying a Node App to Google Cloud with Kubernetes [Электронный ресурс] - 2020. - Режим доступа: https://testdriven.io/blog/deploying-a-node-app-to-google-cloud-with-kubernetes/. - Дата доступа: 08.05.2020.
How to Prevent SQL Injection in Node.js [Электронный ресурс] - 2018. - Режим доступа: https://www.veracode.com/blog/secure-development/how-prevent-sql-injection-nodejs. - Дата доступа: 27.04.2020.
SQL Tutorial [Электронный ресурс] - 2020. - Режим доступа: https://www.w3schools.com/sql/. - Дата доступа: 26.04.2020
Create and Deploy a Node.js, Express, & PostgreSQL REST API [Электронный ресурс] - 2019. - Режим доступа: https://www.taniarascia.com/node-express-postgresql-heroku/. - Дата доступа: 26.04.2020.
Welcome. Node-Postgres [Электронный ресурс] - 2020. - Режим доступа: https://www.taniarascia.com/node-express-postgresql-heroku/. - Дата доступа: 27.04.2020.
PostgreSQL CREATE TABLE [Электронный ресурс] - 2020. - Режим доступа: https://www.postgresqltutorial.com/postgresql-create-table/. - Дата доступа: 28.04.2020.
Bootstrap. Introduction [Электронный ресурс] - 2020. - Режим доступа: https://getbootstrap.com/docs/4.4/getting-started/introduction/. - Дата доступа: 26.04.2020.