Skip to content
This repository has been archived by the owner on Jun 12, 2022. It is now read-only.

University course (6 semester, 20/21 year) work on subject "Databases"

License

Notifications You must be signed in to change notification settings

arkhodakov/grsu-course-work

Repository files navigation

CW: Bug Tracker

Docker Packages Google Kubernetes Engine

Курсовой проект 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

Общий список использованных источников

Others

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.

Backend

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.

Database

PostgreSQL CREATE TABLE [Электронный ресурс] - 2020. - Режим доступа: https://www.postgresqltutorial.com/postgresql-create-table/. - Дата доступа: 28.04.2020.

Frontend

Bootstrap. Introduction [Электронный ресурс] - 2020. - Режим доступа: https://getbootstrap.com/docs/4.4/getting-started/introduction/. - Дата доступа: 26.04.2020.