Skip to content

PythonNoobs/firstproject

Repository files navigation

Описание

Первый проект @PythonNoobs help_desk & service_desk system

Requirements / Требования

Django==1.11.15

Installation / Установка

  • Open the command line, navigate to the django app folder and execute:
  • virtualenv virtualenvname
  • Clone this repository to virtualenv folder
  • Linux: source virtualenvname/bin/activate, Windows: call virtualenvname/Scripts/activate.bat
  • pip install -r requirements.txt
  • move to cloned repository folder
  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py createsuperuser username
  • python manage.py runserver
  • Open http://127.0.0.1:8000/ in web browser.

Описание проекта:

Данный проект является учебным и не преследует коммерческих и иных интересов. Проект направлен на получение следующих навыков и знаний:

  • основы web-разработки
  • программирование на языке Python
  • web-разработка с использованием фреймворка Django
  • основы SQL и понимание систем ORM
  • коллективная разработка программного обеспечения
  • основы работы с git/gitHub ...а также для обмена полученными знаниями и опытом между участниками проекта!

По легенде, небольшая организация заказала нам реализацию системы регистрации заявок для своего отдела технической поддержки. Помимо реализации функционала подачи заявок в системе необходимо реализовать ведение реестра сотрудников, а также реестров находящейся на балансе оргинизации техники: компьютеров, серверов, копировально-множительной техники, USB-накопителей, токенов. В системе необходимо предусмотреть вход по логину и паролю для каждого из сотрудников, разграничение прав доступа к каждой из подсистем, на главной странице реализовать отображение новостей компании, список дней рождений сотрудников и другую информацию.

Основные подсистемы и требования:

  • (условная сложность: +++++) Система заявок(ticketsapp)
  • (условная сложность: ++++) Реестр пользователей(employeesapp)
  • (условная сложность: +++) Реестр серверов(serverapp) (@dgon_kondrasov Eugene Karandasov)
  • (условная сложность: +++) Реестр копировально-множительной техники(КМТ)(cmtapp)
  • (условная сложность: +++) Реестр компьютеров(workstationsapp)(@Anotherq Ang Def)
  • (условная сложность: ++) Реестр USB-флеш носителей (usbflashsapp)
  • (условная сложность: ++) Реестр USB-флеш носителей (tokensapp)
  • (условная сложность: ++++) Подсистема новостей(newsapp) (@m_kamenev Michael Kamenev)
  • (условная сложность: ++++) Подсистема регистрации\авторизации (authapp)(недоступно)
  • (условная сложность: ++++) Подсистема администрирования(adminapp) (недоступно)
  • Desktop-клиент (для реализации на Tkinter или PyQT)

Общие требования к реализации всех приложений:

  • модели должны быть реализованы в соответствии со схемой БД. (в схеме возможны опечатки и неточности. Дополнительно спрашивайте в чате). Для каждой модели обеспечить корректное отображение в административной панели джанго: название модели, название объектов модели и так далее (class Meta).
  • описание форм и их вывод в шаблон разрешается реализовать любым удобным(доступным) для вас способом: обычные формы или формы на основе моделей. Формы должны соответствовать стилю определенному в проекте.
  • контроллеры (views) разрешается реализовать любым удобным для вас способом: обычные или CBV.

Система заявок(ticketsapp)

Модели приложения:

  • Ticket
  • MainProblem
  • SubProblem

Реализовать(основное):

  • страница создания новой заявки. На странице указываются общая проблема, ее категория, описание, статус. При выборе проблем связанных с компьютером, сервером, или КМТ, должна осуществляться привязка к соответствующей модели.
  • страница изменения заявки
  • страница всех зарегистрированных в системе заявок. Вывод информации осуществляется в табличном виде всех зарегистрированных заявок с указанием параметров определенных в модели

Реализовать(дополнительно):

  • Дату выводить в определенном формате "день-месяц-год часы-минуты"
  • Реализовать зависимости подпроблем от проблем(Ajax). Т.е. к примеру, при выборе общей проблемы "Серверы", в меню "подпроблемы" дожны быть перечислены только "подпроблемы" относящиеся к серверам.
  • Выделить заявки цветом в зависимости от их статуса(в работе - оранжевым, выполненные - зелёным, открытые - без цвета)
  • при создании заявки автоматически добавлять в заявку создавшего ее пользователя.
  • на панели навигации указывать общее количество заявок назначенных пользователю, количество открытых заявок и заявки в работе.
  • в заявку автоматически поставлять: IP-адрес отправившего заявку клиента, имя хоста клиента.

Реестр пользователей(employeesapp)

Модели приложения:

  • Employee
  • Post
  • Department
  • SubDevision

Реализовать(основное):

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
  • страница "телефонный справочник". На странице отображать данные всех сотрудников.
  • страница "дни рождения сотрудников". На странице отображать фото, ФИО, дни рождения сотрудников. Дни рождения отсортировать от ближайшего дня рождения к текущей дате. Отображение дня рождения реализовать в формате "день месяц" на странице "дни рождения сотрудников"

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Строки в таблице, где дни рождения наступили сегодня подсвечивать зеленым цветом, дни рождения в ближайшие 3 дня подсвечивать желтым цветом.
  • Реализовать добавление фото сотрудника. Фото отображать во всех списках и карточке сотрудника.
  • На главной странице реализовать блок со списком ближайших дней рождений сотрудников
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Реестр серверов(serverapp)

Модели приложения:

  • Server
  • ServerModel

Реализовать(основное):

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. - Предусмотреть возможность возможность удаления карточки позиции.

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Реализовать проверку доступности серверов с помощью команды ping по указанным IP-адресам.
  • Подсвечивать серверы в списке различными цветами (доступные - зеленым цветом, недоступные - красным)
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Реестр копировально-множительной техники(КМТ)(cmtapp)

Модели приложения:

  • CMT
  • CMTModel

Основные требования:

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Подсвечивать в списке различными цветами (статус:работотает - зеленым цветом, статус:в ремонте - красным)
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Реестр компьютеров(workstationsapp)

Модели приложения:

  • Workstation
  • WorkstationModel

Основные требования:

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Реализовать проверку доступности компьютеров с помощью команды ping по указанным IP-адресам.
  • Подсвечивать в списке различными цветами (статус:работотает - зеленым цветом, статус:в ремонте - красным)
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Реестр USB-флеш носителей (usbflashapp)

Модели приложения:

  • UsbFlash

Основные требования:

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Подсвечивать в списке различными цветами (если ответственный сотрудник отсутствует(USB-накопитель никому не выдан) - зеленым цветом, если ответственный сотрудник присутствует(USB-накопитель выдан сотруднику) в ремонте - красным)
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Реестр Токенов(tokensapp)

Модели приложения:

  • Token

Основные требования:

  • страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
  • страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
  • страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.

Реализовать(дополнительно):

  • Импорт данных в базу через таблицу Excel
  • Подсвечивать в списке различными цветами (если ответственный сотрудник отсутствует(Токен никому не выдан) - зеленым цветом, если ответственный сотрудник присутствует(Токен выдан сотруднику) в ремонте - красным)
  • Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.

Подсистема новостей (newsapp)

Модели приложения:

  • News

Реализовать(основное):

  • страница создания новой новости. На странице указываются название новости, ее статус, текст новости, фото новости.
  • страница редактирования новости. Предусмотреть возможность возможность удаления карточки позиции.
  • страница администрирования зарегистрированных в системе новостей в виде списка. Вывод всех новостей осуществляется в табличном виде с указанием параметров определенных в модели

Реализовать(дополнительно):

  • Реализовать блок отображения новостей на главной странице
  • Реализовать отложенную публикацию новости

Подсистема администрирования(adminapp)

-в настоящий момент требования не определены

Подсистема авторизации(authapp)

  • страница личного кабинета сотрудника
  • страница с формой регистрации пользователя
  • страница с формой входа пользователя

Desktop-клиент (для реализации на Tkinter или PyQT)

Реализовать(основное):

  • Desktop-приложение. Автоматически запускается с запуском операционной системы. После запуска приложение сворачивается в системный трей. Приложение по указанным настройкам(ip-address, имя пользователя, порт, периодичность опроса) опрашивает определенную страницу web-сервера (например http://127.0.0.1:8000/tickets/users/{username}), откуда в формате JSON получает количество открытых заявок и заявок в работе для пользователя указанного в настройках программы. При поступлении новой заявки программа отображает диалоговое окно о поступлении новой заявки.

Схема БД / DB schema:

Схема БД на sqldbm.com

About

help_desk&service_desk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •