Первый проект @PythonNoobs help_desk & service_desk system
Django==1.11.15
- 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.
Модели приложения:
- Ticket
- MainProblem
- SubProblem
Реализовать(основное):
- страница создания новой заявки. На странице указываются общая проблема, ее категория, описание, статус. При выборе проблем связанных с компьютером, сервером, или КМТ, должна осуществляться привязка к соответствующей модели.
- страница изменения заявки
- страница всех зарегистрированных в системе заявок. Вывод информации осуществляется в табличном виде всех зарегистрированных заявок с указанием параметров определенных в модели
Реализовать(дополнительно):
- Дату выводить в определенном формате "день-месяц-год часы-минуты"
- Реализовать зависимости подпроблем от проблем(Ajax). Т.е. к примеру, при выборе общей проблемы "Серверы", в меню "подпроблемы" дожны быть перечислены только "подпроблемы" относящиеся к серверам.
- Выделить заявки цветом в зависимости от их статуса(в работе - оранжевым, выполненные - зелёным, открытые - без цвета)
- при создании заявки автоматически добавлять в заявку создавшего ее пользователя.
- на панели навигации указывать общее количество заявок назначенных пользователю, количество открытых заявок и заявки в работе.
- в заявку автоматически поставлять: IP-адрес отправившего заявку клиента, имя хоста клиента.
Модели приложения:
- Employee
- Post
- Department
- SubDevision
Реализовать(основное):
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
- страница "телефонный справочник". На странице отображать данные всех сотрудников.
- страница "дни рождения сотрудников". На странице отображать фото, ФИО, дни рождения сотрудников. Дни рождения отсортировать от ближайшего дня рождения к текущей дате. Отображение дня рождения реализовать в формате "день месяц" на странице "дни рождения сотрудников"
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Строки в таблице, где дни рождения наступили сегодня подсвечивать зеленым цветом, дни рождения в ближайшие 3 дня подсвечивать желтым цветом.
- Реализовать добавление фото сотрудника. Фото отображать во всех списках и карточке сотрудника.
- На главной странице реализовать блок со списком ближайших дней рождений сотрудников
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- Server
- ServerModel
Реализовать(основное):
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. - Предусмотреть возможность возможность удаления карточки позиции.
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Реализовать проверку доступности серверов с помощью команды ping по указанным IP-адресам.
- Подсвечивать серверы в списке различными цветами (доступные - зеленым цветом, недоступные - красным)
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- CMT
- CMTModel
Основные требования:
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Подсвечивать в списке различными цветами (статус:работотает - зеленым цветом, статус:в ремонте - красным)
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- Workstation
- WorkstationModel
Основные требования:
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Реализовать проверку доступности компьютеров с помощью команды ping по указанным IP-адресам.
- Подсвечивать в списке различными цветами (статус:работотает - зеленым цветом, статус:в ремонте - красным)
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- UsbFlash
Основные требования:
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Подсвечивать в списке различными цветами (если ответственный сотрудник отсутствует(USB-накопитель никому не выдан) - зеленым цветом, если ответственный сотрудник присутствует(USB-накопитель выдан сотруднику) в ремонте - красным)
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- Token
Основные требования:
- страница с выводом всех зарегистрированных позиций. Вывод информации на страницу реализовать в табличном виде с выводом всех параметров определенных в модели. Вывод данных осуществить с помощью библиотеки datatables(datatables.net), файлы которой уже добавлены в статические файлы проекта. Если не используется библиотека datatables, вывести данные через стандартную таблицу с применением пагинации страниц и бутстрап стилей.
- страница добавления новой позиции. На страницу вывести форму с полями соответствующими параметрам определенным в модели.
- страница редактирования карточки существующей позиции. На страницу вывести форму для редактирования параметров определенных в модели. Предусмотреть возможность возможность удаления карточки позиции.
Реализовать(дополнительно):
- Импорт данных в базу через таблицу Excel
- Подсвечивать в списке различными цветами (если ответственный сотрудник отсутствует(Токен никому не выдан) - зеленым цветом, если ответственный сотрудник присутствует(Токен выдан сотруднику) в ремонте - красным)
- Реализовать изменение данных через общий список(таблицу) с помощью библиотеки editor.datatables.net(AJAX), а не через страницу редактирования карточки.
Модели приложения:
- News
Реализовать(основное):
- страница создания новой новости. На странице указываются название новости, ее статус, текст новости, фото новости.
- страница редактирования новости. Предусмотреть возможность возможность удаления карточки позиции.
- страница администрирования зарегистрированных в системе новостей в виде списка. Вывод всех новостей осуществляется в табличном виде с указанием параметров определенных в модели
Реализовать(дополнительно):
- Реализовать блок отображения новостей на главной странице
- Реализовать отложенную публикацию новости
-в настоящий момент требования не определены
- страница личного кабинета сотрудника
- страница с формой регистрации пользователя
- страница с формой входа пользователя
Реализовать(основное):
- Desktop-приложение. Автоматически запускается с запуском операционной системы. После запуска приложение сворачивается в системный трей. Приложение по указанным настройкам(ip-address, имя пользователя, порт, периодичность опроса) опрашивает определенную страницу web-сервера (например http://127.0.0.1:8000/tickets/users/{username}), откуда в формате JSON получает количество открытых заявок и заявок в работе для пользователя указанного в настройках программы. При поступлении новой заявки программа отображает диалоговое окно о поступлении новой заявки.