Файл: Автоматизация обработки обращений в службу технической поддержки ООО «Концерт.ру».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 127

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Технико-экономическая характеристика предметной области и предприятия

1.1. Характеристика предприятия и его деятельности

1.2. Организационная структура управления предприятием

1.3. Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов

2. Информационное обеспечение задачи

2.1. Информационная модель и её описание

2.2. Используемые классификаторы и системы кодирования

2.3. Характеристика нормативно-справочной, входной и оперативной информации

2.4. Характеристика результатной информации

3. Программное обеспечение задачи

3.1. Общие положения (дерево функций и сценарий диалога)

3.2 Характеристика базы данных

3.3 Структурная схема пакета (дерево вызова программных модулей)

3.4 Описание программных модулей

4. Контрольный пример реализации проекта и его описание

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ЗАКЛЮЧЕНИЕ

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

В курсовой работе исследуются все стадии внедрения автоматизированной системы, от аналитической разработки проекта до его внедрения в ООО «Концерт.ру».

Основные задачи работы – анализ деятельности ООО «Концерт.ру», выявление существующих недостатков в текущей технологии функционирования компании, разработка автоматизированной системы обработки обращений службой технической поддержки – выполнены.

Для проектируемой системы была построена информационная модель, разработана локальная система классификации и кодирования. Кроме того, были приняты решения по способу хранения и организации данных. Построена схема базы данных.

В части программного обеспечения были спроектированы дерево функций и сценарий диалога работы системы. А также разработана структурная схема пакета.

Разработанная система обеспечивает качественную регистрацию и обработку поступающих обращений, мгновенный поиск необходимого документа, автоматизированный учет заявок всех категорий и составление статистических справок, что существенно упрощает работу и увеличивает производительность сопроводительской службы ООО «Концерт.ру».

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

А если учесть, что с каждым годом объем обрабатываемой информации будет только возрастать, становится очевидным, что внедрение автоматизированной системы электронного документооборота является ключом к эффективной работе и в будущем.

Таким образом, была достигнута цель курсовой работы – спроектирована автоматизированная система для обработки обращений в службе технической поддержки.

Для реализации поставленной цели были выполнены следующие задачи:

– дана характеристика предметной области;

– рассмотрена организационная структура управления предприятием;

– описаны бизнес-процессы;

– построена информационная модель;

– описана входная, справочная и результатная информация;


– построенодерево функций;

– описаны программные модули;

– приведен контрольный пример реализации проекта.

СПИСОК ЛИТЕРАТУРЫ

  1. Авдошин, Песоцкая: Информатизация бизнеса. Управление рисками, Издательство: ДМК-Пресс, М., 2011 г., 176 стр.
  2. Антониоу, Грос, Хоекстра: Семантический веб, М, ДМК-Пресс, 2016 г., 240 с.
  3. Бэнкс, Порселло: React и Redux. Функциональная веб-разработка, М. Питер, 2018 г., 336 с.
  4. Веллинг, Томсон: Разработка веб-приложений с помощью PHP и MySQL, М, Диалектика, 2017 г., 768 с.
  5. Викрам Васвани: MySQL: использование и администрирование, Издательство: Питер, СПб, 2011 г., 368 стр.
  6. Владислав Пирогов: Информационные системы и базы данных: организация и проектирование, Издательство: BHV, М., 2009 г., 528 стр.
  7. Георгий Исаев: Информационные системы в экономике. Учебник, Издательство: Омега-Л, М., 2013 г., 462 стр.
  8. Георгий Исаев: Проектирование информационных систем. Учебное пособие, Издательство: Омега-Л, М., 2015 г., 424 стр.
  9. Джон Дакетт: Javascript и jQuery. Интерактивная веб-разработка, М. Эксмо, 2017 г., 640 с.
  10. Дино Эспозито: Разработка современных веб-приложений. Анализ предметных областей и технологий, М, Вильямс, 2017 г., 464 с.
  11. Дмитрий Чистов: Экономическая информатика (для бакалавров). Учебное пособие, Издательство: Кнорус, 2014 г., 512 стр.
  12. Дэвид Скляр: Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов, М. Диалектика, 2017 г., 464 с.
  13. Итан Браун: Веб-разработка с применением Node и Express. Полноценное использование стекаJavaScript, М., Питер, 2017 г., 336 с.
  14. Колисниченко Д.Н,: PHP и MySQL. Разработка Web-приложений, М, BHV, 2017 г., 740 с.
  15. Курлов, Петров: Методология информационной аналитики, Издательство: Проспект, М.,2014 г., 384 стр.
  16. Мэтью Макдональд: Веб-разработка. Исчерпывающее руководство, М. Питер, 2017 г., 640 с.
  17. Николас Закас: JavaScript для профессиональных веб-разработчиков, Питер, 2015 г., М. 960 с.
  18. Робин Никсон: Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5, М, Питер, 2016 г., 768 с.
  19. Соловьев, Майоров: Проектирование информационных систем. Фундаментальный курс, Издательство: Академический проект, М., 2009 г., 398 стр.

ПРИЛОЖЕНИЕ

Листинг программы

<?php

$settings = array(

'baseDir' => '../',

'charSet' => 'utf-8',

'debug' => true,

'gzip' => true,

'compressionLevel' => 9,

'gzipExceptions' => array('gif','jpeg','jpg','png','swf'),

'minify' => true,

'concatenate' => true,

'separator' => ',',

'embed' => true,

'embedMaxSize' => 5120,


'embedExceptions' => array('htc'),

'serverCache' => true,

'serverCacheCheck' => false,

'cacheDir' => 'cache/',

'cachePrefix' => 'so_',

'clientCache' => true,

'clientCacheCheck' => false,

);

//mime types

$mimeTypes = array(

"js" => "text/javascript",

"css" => "text/css",

"htm" => "text/html",

"html" => "text/html",

"xml" => "text/xml",

"txt" => "text/plain",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"png" => "image/png",

"gif" => "image/gif",

"swf" => "application/x-shockwave-flash",

);

function headerExit($status) {

header("HTTP/1.0 $status");

exit();

}

function headerNoCache() {

// already expired

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified

header("Last-Modified: " . gmdatestr());

// HTTP/1.1

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Cache-Control: max-age=0", false);

// HTTP/1.0

header("Pragma: no-cache");

//generate a unique Etag each time

header('Etag: '.microtime());

}

function headerNeverExpire(){

header("Expires: " . gmdatestr(time() + 315360000));

header("Cache-Control: max-age=315360000");

}

function debugExit($msg){

global $settings;

if (!$settings['debug']) {

headerExit('404 Not Found');

}

headerNoCache();

header('Content-Type: text/html; charset='.$settings['charSet']);

header("Content-Encoding: none");

echo "//<script>\n";

echo "alert('SmartOptimizer Error: ".str_replace("\n", "\\n", addslashes($msg))."');\n";

echo "//</script>\n";

exit();

}

function gmdatestr($time = null) {

if (is_null($time)) $time = time();

return gmdate("D, d M Y H:i:s", $time) . " GMT";

}

function filesmtime() {

global $files, $fileType;

static $filesmtime;

if ($filesmtime) return $filesmtime;

$filesmtime = max(@filemtime("minifiers/$fileType.php"), filemtime('index.php'), filemtime('config.php'));

foreach ($files as $file) {

if (!file_exists($file)) debugExit("File not found ($file).");

$filesmtime = max(filemtime($file), $filesmtime);

}

return $filesmtime;

}

@include('config.php');

list($query) = explode('?', urldecode($_SERVER['QUERY_STRING']));

if (preg_match('/^\/?(.+\/)?(.+)$/', $query, $matchResult)) {

$fileNames = $matchResult[2];

$fileDir = $settings['baseDir'].$matchResult[1];

} else debugExit("Invalid file name ($query)");

if (strpos(realpath($fileDir), realpath($settings['baseDir'])) !== 0) debugExit("File is out of base directory.");

if ($settings['concatenate']) {

$files = explode($settings['separator'], $fileNames);

$settings['concatenate'] = count($files) > 1;

} else $files = array($fileNames);

foreach ($files as $key => $file) {

if (preg_match('/\.([a-z0-9]+)$/i', $file, $matchResult)) {

$fileTypes[] = strtolower($matchResult[1]);

} else debugExit("Unsupported file ($file)");

$files[$key] = $fileDir.$file;

}

if ($settings['concatenate']) {

if (count(array_unique($fileTypes)) > 1) debugExit("Files must be of the same type.");

}

$fileType = $fileTypes[0];

if (!isset($mimeTypes[$fileType])) debugExit("Unsupported file type ($fileType)");

header("Content-Type: {$mimeTypes[$fileType]}; charset=".$settings['charSet']);

$settings['gzip'] =

($settings['gzip'] &&

!in_array($fileType, $settings['gzipExceptions']) &&

in_array('gzip', array_map('trim', explode(',' , @$_SERVER['HTTP_ACCEPT_ENCODING']))) &&

function_exists('gzencode'));

if ($settings['gzip']) header("Content-Encoding: gzip");

$settings['minify'] = $settings['minify'] && file_exists('minifiers/'.$fileType.'.php');

$settings['embed'] = $settings['embed'] && $fileType == 'css' && (!preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/msie 8|opera/i', $_SERVER['HTTP_USER_AGENT']));


$settings['serverCache'] = $settings['serverCache'] && ($settings['minify'] || $settings['gzip'] || $settings['concatenate'] || $settings['embed']);

if ($settings['serverCache']) {

$cachedFile = $settings['cacheDir'].$settings['cachePrefix'].md5($query.($settings['embed']?'1':'0')).'.'.$fileType.($settings['gzip'] ? '.gz' : '');

}

$generateContent = ((!$settings['serverCache'] && (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != gmdatestr(filesmtime()))) ||

($settings['serverCache'] && (!file_exists($cachedFile) || ($settings['serverCacheCheck'] && filesmtime() > filemtime($cachedFile)))));

if ($settings['clientCache'] && $settings['clientCacheCheck']) {

if ($settings['serverCache'] && !$generateContent) $mtime = filemtime($cachedFile);

elseif ($settings['serverCache']) $mtime = time();

else $mtime = filesmtime();

$mtimestr = gmdatestr($mtime);

}

if (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != $mtimestr) {

if ($settings['clientCache'] && $settings['clientCacheCheck']) {

header("Last-Modified: " . $mtimestr);

header("Cache-Control: must-revalidate");

} elseif ($settings['clientCache']) {

headerNeverExpire();

} else headerNoCache();

if ($generateContent) {

if ($settings['minify']) include('minifiers/'.$fileType.'.php');

$content = array();

foreach ($files as $file) (($content[] = @file_get_contents($file)) !== false) || debugExit("File not found ($file).");

$content = implode("\n", $content);

if ($settings['minify']) $content = call_user_func('minify_' . $fileType, $content);

if ($settings['gzip']) $content = gzencode($content, $settings['compressionLevel']);

if ($settings['serverCache']) {

$handle = @fopen($cachedFile, 'w') or debugExit("Could not create cache file($cachedFile).");

fwrite($handle, $content);

fclose($handle);

}

header('Content-Length: ' . strlen($content));

echo $content;

} else {

header('Content-Length: ' . filesize($cachedFile));

readfile($cachedFile);

}

} else headerExit('304 Not Modified');

?>

<?php

/*

* SmartOptimizer CSS Minifier

*/

function convertUrl($url, $count)

{

global $settings, $mimeTypes, $fileDir;

static $baseUrl = '';

$url = trim($url);

if (preg_match('@^[^/]+:@', $url)) return $url;

$fileType = substr(strrchr($url, '.'), 1);

if (isset($mimeTypes[$fileType])) $mimeType = $mimeTypes[$fileType];

elseif (function_exists('mime_content_type')) $mimeType = mime_content_type($url);

else $mimeType = null;

if (!$settings['embed'] ||

!file_exists($fileDir.$url) ||

($settings['embedMaxSize'] > 0 && filesize($fileDir.$url) > $settings['embedMaxSize']) ||

!$fileType ||

in_array($fileType, $settings['embedExceptions']) ||

!$mimeType ||

$count > 1) {

if (strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'].'?') === 0 ||

strpos($_SERVER['REQUEST_URI'], rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/?') === 0) {

if (!$baseUrl) return $fileDir . $url;

}

return $baseUrl . $url;

}

$contents = file_get_contents($fileDir.$url);

if ($fileType == 'css') {

$oldFileDir = $fileDir;

$fileDir = rtrim(dirname($fileDir.$url), '\/').'/';

$oldBaseUrl = $baseUrl;

$baseUrl = 'http'.(@$_SERVER['HTTPS']?'s':'').'://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/'.$fileDir;

$contents = minify_css($contents);

$fileDir = $oldFileDir;

$baseUrl = $oldBaseUrl;

}

$base64 = base64_encode($contents);

return 'data:' . $mimeType . ';base64,' . $base64;

}

function minify_css($str) {

$res = '';

$i=0;

$inside_block = false;

$current_char = '';

while ($i+1<strlen($str)) {

if ($str[$i]=='"' || $str[$i]=="'") {//quoted string detected

$res .= $quote = $str[$i++];