Проектування та реалізація Web-сервісу для пошуку роботи
Розробка Web-сервісу, його використання у пошуковій системі. Формування основних вимог до програмної системи, приклади головних алгоритмів та методів. Функціональне та нефункціональне тестування бази даних. Особливості кросбраузерного тестування.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 16.06.2017 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ЗМІСТ
Вступ
1. Аналіз предметної області
1.1 Аналіз існуючих аналогів
2. Постановка задачі
3. Формування вимог до програмної системи
4. Архітектура та проектування програмної системи
4.1 UML моделювання ПЗ
4.2 Проектування архітектури ПЗ
4.3 Проектування бази даних
4.4 Приклади головних алгоритмів та методів
4.5 Створення UI/UX дизайну
5. Тестування розробленого програмного забезпечення
5.1 Функціональне тестування
5.2 Нефункціональне тестування
5.3 Тестування бази даних
5.4 Кросбраузерне тестування
Висновки
Перелік посилань
Додаток А Фрагмент коду програми
Додаток Б Слайди презентації
Вступ
У двадцять першому столітті все більше уваги приділяється інформаційним технологіям. Кожне наукове відкриття не може існувати без обчислювальної потужності комп'ютерів. Людина настільки пристосувалась до технологічних благ, що життя без них здається неможливим. Саме тому більшість сфер життя переходить на новий рівень - рівень інформаційних технологій. Люди більше не мають потреби йти та отримувати інформацію від людей або друкованих матеріалів, чи використовувати домашній телефон. Зараз майже все можна зробити чи дізнатися за допомогою мережі інтернет. У тому числі така пов'язана з технологіями річ як Web-сервіс пошуку роботи. До того ж така система сприяє подальшому розвитку технологій за рахунок знань та їх застосуванню. web сервіс кросбраузер тестування
На сьогоднішній день часто виникає ситуація, коли для виконання своїх ідей та потреб необхідно знайти виконавця. Ці люди можуть мати різний ступінь знань, різну кваліфікацію, різну швидкість виконання поставленої цілі та різну продуктивність, зважаючи на це будуть брати різну плату за їх працю. Тому даний процес може зайняти дуже багато часу та дуже дорого коштувати, а результату може не принести. На допомогу можуть прийти застосування інформаційних технологій у цій області.
Інформаційні технології - вельми широке визначення, під яке потрапляє ряд окремих технічних засобів і прийомів роботи з інформацією. Дедалі більшої популярності набувають Web-системи. Такі системи мають певні переваги, а саме: доступність за рахунок мережі Internet, поширеність, менші вимоги до пам'яті комп'ютерів, мобільних пристроїв, і т.п.
Ці переваги мають ключове значення для даної роботи. Тому був обраний саме Web-сервіс. До того ж Web-сервіс дозволяє використовувати більшу кількість СУБД, як наприклад, найбільш популярні - MS SQL та Oracle. Однією з головних характеристик сучасних Інтернет-додатків є те, що вони поширюються у вигляді сервісу, а не товару. Це, у свою чергу, веде до фундаментальних змін в бізнес-моделях компаній-розробників програм.
Web-служби забезпечують взаємодію програмних систем незалежно від платформи, вони базуються на відкритих стандартах та протоколах. Завдяки використанню XML досягається простота розробки та відлагодження Web-служб.
Метою дипломної роботи є створення Web-сервісу, який буде максимально зручним та ефективним з точки зору пошуку роботи. Важливою рисою цього сервісу є можливість кожного користувача з мінімальною затратою часу знайти потрібну інформацію для своїх потреб, це буде зручно як звичайному користувачеві, так і користувачеві-виконавцю кожен з яких може зробити необхідну йому операцію. Також реалізована можливість надати всю необхідну інформацію про виконавця, а саме вміння виконати дану роботу, та система рейтингу.
Розробка Web-сайту істотно скоротить час, необхідний людям для пошуку роботи, або виконавця для своєї цілі. Для користування цим додатком досить просто мати доступ до мережі Інтернет та встановлений браузер. На даному етапі можна з упевненістю прогнозувати, що додаток буде користуватися клієнтським попитом.
1. Аналіз предметної області
Предметною областю даного проекту є можливість надати людям більше робочих місць. В Україні кожна п'ята молода людина віком від 15 до 24 років не навчається та не працює. Одна з причин такої ситуації на молодіжному ринку праці є те, що працевлаштуватися в Україні сьогодні непросто.
Даний Web-сервіс дає можливість зручно і швидко знайти ту сферу діяльності в якій користувач гарний спеціаліст, в ньому є можливість розглянути всі необхідні деталі, такі як: ціна, місце, час та вид роботи. Також Web-сервіс представить зручний перегляд виконання замовлених послуг, які необхідно виконати, та зручний контроль термінів виконання: яка задача просувається стосовно плану, а яка вже не підтримується плану та початкових домовленостей.
Даний сервіс допоможе підбирати виконавців різного ступеня якості і в залежності від цього різною вартістю, різних вимог для закриття певних послуг, певних задач, які мають певні вимоги та певний список навичок, враховуючи можливі затрати та послугу яку необхідно представити, бюджет. Також даний сервіс допоможе користувачеві виступати не тільки у якості замовників або виконавців, а також поєднувати ці дві ролі. Виступати одночасно і замовником, і реалізатором, що є дуже зручно, якщо користувач має гарні знання та навички у якійсь певній галузі знань, та зовсім не маєте цих знань та навичок в іншій галузі та, щоб завершити певну задачу, необхідно звернутися за сторонньою допомогою до спеціаліста у цій галузі.
Так само зовсім непогано мати можливість переглянути портфоліо користувача, який може стати потенційним реалізатором задачі, почитати відгуки, зібрати якусь інформацію, щоб зрозуміти, чи дійсно це саме та людина, якій можна довірити свої завдання.
Користувачі даного Web-сервісу населення яке має доступ до комп'ютера, планшета або мобільного телефону. Даний проект дуже легкий в користуванні, достатньо зареєструватися та шукати роботу яка цікава.
1.1 Аналіз існуючих аналогів
Не так давно в Інтернеті з'явилося таке явище як Інтернет-сервіси, і буквально за кілька років вони стали настільки популярні, влилися в життя суспільства, практично кожна людина користується сервісом. Основним принципом Інтернет-сервісу є простота і легкість оформлення замовлень, і їх виконання. Інформація про клієнта може зберігатися в базі даних, якщо бізнес-модель сервісу розрахована на повторні замовлення, або ж відправлятися одноразово.
В Інтернет-сервісах, розрахованих на повторні замовлення, також ведеться спостереження за кількістю відвідувань користувача і історія його замовлень. Це дозволяє проводити різні цікаві акції та пропозиції, щоб користувач вкотре повертався до Ваших послуг.
Основним принципом Інтернет-сервісу є простота і легкість оформлення замовлень, і їх виконання. Інформація про клієнта може зберігатися в базі даних, якщо бізнес-модель сервісу розрахована на повторні замовлення, або ж відправлятися одноразово. В Інтернет-сервісах, розрахованих на повторні замовлення, також ведеться відстеження повернень відвідувача і історія замовлень. Це дозволяє дарувати подарунки користувачеві, придумувати для нього якісь цікаві акції, щоб користувачів в який раз повертався до ваших послуг.
Рисунок 1.1 - Сайт «http:// kabanchik.ua»
На даний момент існує безліч різних онлайн сервісів з подібним функціоналом. Наприклад, https://kabanchik.ua[1](див.рис 1.1), http://pomoshniki.ru/(див.рис 1.2).
Із характерних для нього позитивних рис слід відзначити наступні:
– зручний інтерфейс;
– наявність системи рейтингів;
– система пошуку та підбору різних видів задач;
– служба підтримки.
Розглянемо порядок роботи з цим ресурсом. Для того щоб почати виконувати завдання переходимо до відповідної сторінки та проходимо процедуру реєстрації. Процедура реєстрації даного ресурсу спрощена можливістю реєстрування через соціальні мережі такі як ВКонтакте, Facebook. Проте реєстрація все ж потрібна.
Для виконання роботи даний сервіс пропонує користувачу, спочатку вказати вид діяльності і своє місто, потім вибрати перевіреного спеціаліста, потрібно відмітити що в цьому випадку, пропонується вибрати виконавця котрий має свій рейтинг і відгуки попередніх заказників. Також пропонується вибрати спеціаліста за критеріями: швидко, безпечно, вигідно. Що стосується підробітки, даний сервіс дуже зручний в користуванні, в ньому є безліч категорій, які розділяють роботу для людей різного віку з різною зайнятістю. Крім цього сервіс дає змогу вибрати для себе зручні види зайнятості, такі як: зручний, безпечний, або вигідний. Зручний включає в себе повідомлення про нові види роботи які будуть приходити на вашу електронну пошту.
Із недоліків слід відзначити те, що є необхідність реєструватися та необхідність доступу до мережі Internet. Також недоліками цього сайту є відсутність української чи англійської мови.
Іншим аналогічним ресурсом є сайт http://pomoshniki.ru. [2]
Це онлайн сервіс пошуку приватних фахівців для вирішення побутових і бізнес задач. Майданчик об'єднує замовників послуг, яким необхідно виконати будь-яку роботу, і виконавців, які шукають підробіток або додатковий заробіток. Також цей сервіс дозволяє швидко і безпечно знаходити надійних виконавців для вирішення побутових та бізнес-завдань. Для того, щоб добавити завдання на цьому ресурсі користувачеві потрібно зробити декілька дій. Зареєструватися на сайті, за допомогою логіна і пароля вказаного при реєстрації зайти в особистий кабінет сайту, потім вибрати необхідну категорію, додати опис вашого завдання, вказати своє місцеположення, та відмітити його на карті, також є можливість вказати ціну за виконання проекту, або запропонувати виконавцю самому вказати замовнику ціну. Через кілька хвилин користувач почне отримувати пропозиції від виконавців, які будуть готові вирішити поставлену задачу.
Серед переваг даного ресурсу можна виділити розділ «Акції», який дає можливість користувачу вивести своє оголошення на перші місця в списку, за допомогою промо- посилання.
Але окрім такого спектру можливостей, даний сайт має певні недоліки, які необхідно та можливо покращувати.
Рисунок 1.2 - Сайт «http://pomoshniki.ru/.»
Даний ресурс дозволяє зручно відокремити усіх користувачів на два типи: замовник та працівник, що є одним з його переваг. Також він дозволяє публікувати необхідні проекти, переглядати списки завдань, в ньому реалізована можливість зручного пошуку категорій.
Недоліки цього Web-сервісу наступні: незручний інтерфейс, відсутність систем рейтингів.
2. ПОСТАНОВКА ЗАДАЧІ
Метою роботи є проектування та реалізація Web-сервісу для пошуку роботи. Програмне забезпечення складається з 2 частин: сервера, який зберігає усі данні та надає доступ до бази даних, та клієнта - .NET Web-додатку, який використовує інтерфейс сервісу.
До функціональних вимог можна віднести:
– управління документами;
– контроль видачі та повернення документів;
– функціональність й адаптованість;
– час реакції;
– безпека;
– повнота;
– однозначність;
– інтеграція інформації, що надходить від різних джерел;
– пропускна здатність.
Нефункціональні вимоги:
– серверна частина повинна бути реалізована за допомогою технології .NET та мови C#;
– бізнес правила;
– зовнішній інтерфейс;
– атрибути якості;
– обмеження;
– в якості першої СУБД потрібно обрати MS SQL Server;
– клієнт являє собою Web-додаток, створений з використанням ASP.NET MVC.
Взаємодіючий з системою користувач, створює інформаційну базу задач з певними вимогами та з певним поясненням до послуги, а також розміщених проектів за певний термін. Сервіс повинен здійснювати контроль за строком виконання проектів та строком актуальності завдань. За допомогою контролю та верифікації користувачів, даний проект має забезпечити виконання укладеної угоди між замовником та виконавцем. Завдяки чіткому контролю адміністрації за користувачами, а також системі рейтингів, користувач може бути впевненим в виборі компетентного виконавця.
3. ФОРМУВАННЯ ВИМОГ ДО ПРОГРАМНОЇ СИСТЕМИ
Даний Web-сервіс повинен бути розроблений на базі сервіс-орієнтованої архітектури. У якості ядра повинен виступати сервер з базою даних, який буде працювати за допомогою WCF-служби. Завдяки цьому сервіс буде вміщати в собі велику базу користувачів.
Необхідно створити два сервери: Web-сайт на базі ASP MVC та Web-сервер WCF для доступу до бази даних. WCF-сервер повинен представляти CRUD-операції та деякі операції бізнес-логіки для роботи з даними. Web-сервер повинен звертатися до даних за допомогою WCF-серверу та мати деякий набір операцій бізнес-логіки.[8]
У базі даних повинні знаходитись списки завдань, категорії, та їх вимоги. Система авторизації відповідає за можливість створення нових завдань для кожного користувача. База даних повинна включати в себе інформацію про зареєстрованих користувачів, списки доступних завдань, списки категорій, заповнені резюме, та заявки на виконання певних робіт і їх результати.
Технологія ASP MVC реалізує досить популярний шаблон Model-View-Controller, який дозволяє представити роботу Web-сайту у вигляді окремих модулів, кожен з яких відповідає за окрему функцію та має свою ціль. [4]
На Web-сервісі повинні знаходитись наступні інформаційні сторінки:
– сторінка автентифікації, яка дозволить увійти гостю Web-сервісу до системи, за допомогою звичайної реєстрації;
– сторінка замовлення послуг, на якій показано завдання з необхідними параметри, такі як час виконання, бюджет реалізації завдання, його назва, місто виконання, детальний опис того, що потрібно зробити та категорія, до якої можливо віднести даний проект;
– сторінка перегляду особистого профілю, зміни особистих даних, яка дозволить змінити основну інформацію про користувача, контактну інформацію, фінансову інформацію, інформацію стосовно наданих послуг, а також міста в якому ви можете надати ту чи іншу послугу;
– сторінки перегляду виконавців, в якій реалізовано перегляд особистої інформації про виконавця, яка дозволить переглянути усіх можливих виконавців, їх рейтинги та відгуки;
– сторінка перегляду послуг для виконання, сторінка перегляду очікуваних послуг, яка дозволить користувачеві дізнатися, які послуги пропонується зробити користувачеві, який етап виконання та який час виконання залишився;
– сторінка пошуку виконавців за вказаною інформацією, яка дозволяє користувачеві знайти рекрута для виконання поставленої цілі, за його навичками, системою рейтингів, та вартістю роботи;
– сторінка пошуку замовлень, яка дає змогу переглядати список існуючих заявок за категоріями, також переглядати їх опис, та надавати змогу сортування за списком;
– сторінка публікації послуг;
– сторінка зміни статусу роботи над завданням;
– сторінка допомоги зі сторони сервісу.
– сторінка зміни інформації про замовлення, яка дозволить змінювати інформацію, яку було додано при подачі заявки на реалізацію, якщо ця заявка ще не була підтверджена з боку виконавця;
– сторінка перегляду оповіщень, яка дозволяє повідомити користувача про якісь дії стосовно його проектів.
Web-сервіс повинен об'єднувати в собі 3 ролі: адміністратор, користувач, та контент-менеджер. Адміністратор контролює інформацію про користувачів, має можливість деактивувати необхідного користувача, якщо він порушив правила сайту, відповідає за безпеку сайту. Користувач має можливість переглядати список усіх проектів, список усіх виконавців, їх персональну інформацію, замовляти необхідного конкретного виконавця, замовляти конкретний проект, самому представляти свої послуги, підтверджувати замовлення, домовлятися стосовно строків проекту, писати повідомлення зацікавленим та необхідним людям, переглядати інформацію стосовно строків та бюджету завдання. Контент-менеджер контролює проекти, які публікуються, контролює інформацію користувачів, яку публікують на ресурсі, уважно слідкує за всіма категоріями сайту.
Web-сайт повинен напряму працювати з сервером, постійно звертаючись до нього й отримуючи необхідну інформацію. База даних винесена на окремий WCF-сервер з метою зменшення навантаження на основний Web-сервер та покращення продуктивності. Також на WCF-сервер винесена основна бізнес-логіка системи, що дозволить відокремити її від відображення та моделі та покращить масштабованість.
Даний програмний продукт позбавить від надлишкового пошуку однієї й тієї ж інформації на декількох сайтах.
Розроблений Web-ресурс повинен включати в себе наступні системні вимоги:
– для хостингу сайту на машині необхідно встановити Web-сервер IIS 8;
– для розгортання Web-сервісу необхідна машина зі встановленою ОС Windows.
– для розгортання бази даних, потрібно встановити на машині сервер бази даних MS SQL Server 2014. [12]
До даного продукту висуваються наступні функціональні вимоги: програмне забезпечення повинно оброблювати та зберігати персональні дані користувачів, дані, які несуть в собі інформацію про завдання та проекти. Продукт повинен опрацьовувати і аналізувати збережені дані для того, щоб надавати основні функції та можливості системи. Повинна гарантуватись цілісність і надійність збереження даних, не порушуючи авторське право та інтелектуальну власність. Також має бути реалізована можливість обробки цілісності, актуальності та правильності введеної інформації, але не робити це автоматично. Продукт повинен дозволяти виконувати користувачам свої основні операції та функції, не викликаючи при цьому якісь проблеми, підозри або недовіри зі сторони користувачів.
Серед нефункціональних вимог слід віднести наступне: швидкодія, безпека системи, масштабування, надійність, зручність у використанні, відновлюваність. Система повинна гарантувати безпеку персональних даних користувачів та гарантувати захист авторського права та інтелектуальної цілісності. Також система повинна мати досить високу швидкодію та мати невисокий термін відклику на якісь дії користувачів. Має вміщати в собі апаратні інтерфейси необхідні для підтримки системи, включати логічну структуру, фізичні адреси і очікувану поведінку. Необхідно додати опис апаратної та програмної платформ, необхідних для роботи і підтримки системи. Web-сервіс повинен бути зручним у використанні та відповідати принципам Usability інтерфейсів.
4. Архітектура та проектування програмного забезпечення
На рисунку 4.1 зображена діаграма варіантів використання. Як показано далі, система реалізує три ролі: Гість, Користувач та Адміністратор. Гість має можливість зареєструватися та авторизуватися. Після того як гість пройшов авторизацію, він становиться користувачем. Користувач має доступ до наступних функцій системи, замовлення проектів, фінансову інформацію стосовно завдання, обробку персональних даних та інше. Найбільші права в такому випадку має адміністратор сайту, далі користувач та гість сайту, гість має обмежені можливості використання сайту.
Рисунок 4.1 - Діаграма варіантів використання
Розглянувши діаграму можна виділити наступні групи користувачів:
– гість;
– користувач;
– адміністратор.
Гість має можливість переглядати інформацію про останні та актуальні проекти, переглядати новини стосовно цих проектів, наприклад, останні подані чи утверджені заявки, має можливість користуватися пошуком по сайту, переглядати статичну інформацію сайту, переглядати список усіх виконавців, переглядати список усіх завдань, переглядати детальну інформацію стосовно завдання, шукати по певним критеріям та переглядати більш детальну інформацію.
Авторизований користувач має всі привілегії гостя і деякі свої. Він може запропонувати виконання певних послуг, за допомогою створення нової заявки. Також авторизований користувач має можливість отримати від виконавця інформацію стосовно його завдання, таку як, загальний час виконання проекту та його кінцеву вартість.
Адміністратор має можливість слідкувати за порядком та дотриманням правил поведінки на ресурсі. Має наступні переваги: перевіряти контент проектів, які публікуються користувачами на правильність їх даних, перевіряти чіткість викладення вимог до проекту, також він має можливість блокувати користувачів.
4.1 UML проектування ПЗ
Після аналізу предметної області, слід визначитися з архітектурою програмного забезпечення(див. рис. 4.2).
Рисунок 4.2 - Архітектура проекту
Виходячи з цього, слід звернути увагу на сервісно-орієнтовану архітектуру. Ця архітектура включає в себе такі шари і поняття, як бізнес-процес, сервіс, сервісний компонент, та взаємозв'язок між ними. Вона не залежить від технологій, на яких побудована. Головна особливість такого підходу є використання незалежних сервісів з чітко визначеними інтерфейсами, які для виконання своїх завдань можуть бути викликані якимось стандартним способом. Web-сервіс має 4 основних компоненти, які в свою чергу мають своє призначення та окремі задачі. Щоб потім повернутися до якогось випадкового побаченого завдання, користувач має можливість додати цікавий йому проект до закладок.
На рисунку 4.3 зображена Use-case діаграма даного сервісу.
Рисунок 4.3 - Use-case діаграма
Розглянемо діаграму активності (див. рис. 4.4) для виконання головної функції програми (замовлення проекту). Для замовлення послуги, користувачеві потрібно зареєструватися, пройти перевірку адміністратором, підтвердити свій аккаунт через електронну пошту, ввійти на Web-сайт за допомогою логіна і пароля вказаного при реєстрації, вибрати категорію яка підходить під це завдання, потім заповнити необхідну початкову інформацію стосовно проекту. Після публікації проекту, він може бути взятий якимось виконавцем. [14]
Для проектування програмного продукту були використані засоби онлайн побудови UML-діаграм «Draw IO», IDE Visual Studio Resharper Plugin.
Рисунок 4.4 - Діаграма активності для виконання замовлення послуги
Отже, для того, щоб залишити заявку на підтвердження проекту або опублікувати свій проект, користувачеві потрібно спочатку вибрати найбільш придатну для його потреб категорію, ввести необхідну інформацію стосовно проекту або стосовно фінансової складової виконання цього проекту, та відправити дані у систему, після цього адміністратор має впевнитися в правильності цих даних і тільки після цього, якщо користувач задовольняє всі вимоги щодо подачі заявки, вона буде опублікована.
4.2 Проектування архітектури ПЗ
На рисунку 4.5 зображена діаграма компонентів, її мета візуалізація компонентів системи, та побудова виконуваних файлів. В ній находяться наступні компоненти: Web-сервер, WCF-сервер з базою даних, з якого надходить інформація, та компонент «Web-клієнт». Вона також дає змогу побачити, які залежності між компонентами програмного забезпечення, включаючи компоненти вихідних кодів, бінарні компоненти, та компоненти, які можуть виконуватися.
Розглянувши діаграму, ми можем впевнитись що її можна з легкістю модернізувати, або розширити, також Web-сервіс можна поєднати з додатками для мобільних систем. Наприклад ми можемо додати компонент який відповідає за Azure інфраструктуру, та перенести туди базу даних, або сервіс для розгортування Web-серверу.
Рисунок 4.5 - Діаграма компонентів
Відповідно до діаграми компонентів побудована діаграма розгортання (рис. 4.6), на ній зображено місцезнаходження окремих компонентів системи.
Рисунок 4.6 - Діаграма розгортання
Розглянувши діаграму розгортання (рис. 4.6) ми бачимо, що система має два сервери, один для Web-клієнту з графічним інтерфейсом, інший для WCF-серверу.
Тут зображена діаграма класів. Ця діаграма представляє собою сукупність моделі бази даних, моделі проекту, класи доступу до даних та класи сервісу. Нижче представлена діаграма залежності збірок в проекті, отже ця архітектура сприяє тому, що надалі, проект може масштабуватися, та мати взаємо змінні модулі.
Рисунок 4.7 - Діаграма розгортання
Дивлячись на діаграму класів, ми бачим що в системі існують наступні об'єкти:
– Interfaces;
– Entities;
– Data;
– Logging;
– Azure;
– Redis;
– Configurations;
– Email;
– Services;
– DependencyInjection;
– WebRole;
– AzureCloudServices.
За допомогою цих об'єктів, система має змогу відображати реальні об'єкти предметної області, усі можливі стани, поведінку, та властивості об'єктів.
4.3 Проектування бази даних
База даних - сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування (за стандартом ISO/IEC 2382:2015). В загальному випадку база даних містить схеми, таблиці, подання, збережені процедури та інші об'єкти. Дані у базі організовують відповідно до моделі організації даних. Таким чином, сучасна база даних, крім саме даних, містить їх опис та може містити засоби для їх обробки. [11]
Головне завдання БД - гарантоване збереження значних обсягів інформації (так званих записів даних) та надання доступу до них, користувачеві, або прикладній програмі. Таким чином, БД складається з двох частин: збереженої інформаційної в системі, та системи управління. З метою забезпечення ефективності доступу, записи даних організовують як елементи даних.
Отже на етапі моделювання було встановлено атрибути які мають містити в собі ці сутності. У користувача повинен бути електронний адрес і пароль по якому він буде входити в систему. Також користувач повинен зберігати додаткову інформацію, таку як ім'я, прізвище, логін для швидкого входу в систему, і місце геолокації в якому користувач знаходиться. Схема бази даних наведена на рисунку 4.8. [13]
Рисунок 4.8 - Схема бази даних
В процесі концептуального моделювання було встановлено, що система має наступні атрибути:
– об'єкт користувач містить у собі персональну інформацію стосовно користувачів системи;
– об'єкт вакансія містить інформацію стосовно існуючих вакансій;
- об'єкт проект містить у собі основні відомості стосовно проекту, який необхідно виконати: користувач який його створив, до якої категорії він відноситься, назва проекту, його опис, перелік необхідних навичок для його виконання, тривалість цього проекту, бюджет на реалізацію, дата створення та кінець;
– об'єкт навички відображає навички як окремий об'єкт з єдиною властивістю;
- об'єкт замовлення дозволяє зберігати заявки користувачів на виконання проектів;
– об'єкт історія дозволяє зберігати інформацію стосовно проектів, які були затверджені, або вже виконані, а саме, що за проект, коли почався, ким був виконаний проект, його бюджет та коли закінчився;
- об'єкт категорії дозволяє відобразити ієрархію категорій та під категорій, у яких можливо створювати та замовляти проекти, а також відображати їх при пошуку;
- об'єкт вакансії зберігає інформацію стосовно актуальних завдань та послуг;
– об'єкт оповіщення зберігає інформацію, яка дозволяє повідомити користувача стосовно будь-яких дій щодо його проекту, також оповіщення спрацьовують коли користувач додає нове завдання, або відкриває вже створене;
– об'єкт відгуки дозволяє зберігати інформацію, що стосується відгуків про конкретних виконавців, після виконання ними завдань;
- об'єкт закладки дозволяє користувачам додавати цікавих виконувачів або цікаві проекти в закладки, щоб в будь-який момент можна було зручно та швидко повернутися до їх інформації;
– об'єкт завдання дозволяє зберігати усі актуальні вакансії;
– об'єкт завдання користувачів дозволяє зберігати інформацію стосовно подання користувачем пропозиції на виконання певної послуги, а також показує, чи підходить кандидат для виконання даного завдання, або ні.
4.4 Приклади головних алгоритмів та методів
Web-клієнт працює аналогічно головному серверу. Але існує суттєва різниця, Web-клієнт не має власну БД і його шар даних бере дані не з БД, як це робить головний сервер, а з Web-сервісів сервера. Web-клієнт формує складні Web-сторінки, а не просто WSDL-дані, як це робить головний сервер.
Так як основна мета Web-клієнту не обробка даних, а їх відображення, основний функціонал сконцентрований в cshtml-файлах, тобто в шарі подання. Шар даних також містить в собі цікаві функції. [9]
Наприклад функція яка відповідає за реєстрацію на Web-сервісі. Наведемо бізнес-логіку функції реєстрації, яку використовує WCF-сервер даних(див. рис. 4.9). Web-клієнт являє собою сукупність представлень, написаних на мові програмування C# [3], за допомогою програмного синтаксису Razor.
Заданий проксі-клас дозволяє через кінцеві точки отримати доступ до заданої функції WCF-сервісу, викликати її, передати необхідні параметри та отримати необхідний результат.
Також, окрім серверних відображень, Web-клієнт формує відображення або їх частини за допомогою асинхронних запитів. За допомогою бібліотеки jQuery клієнт посилає асинхронні запроси на сервер, отримує від нього відповіді, обробляє їх та формує отриману відповідь.
Далі, для прикладу, розглянемо на рисунку 4.10, функцію логіну для Web-додатку
Цей метод використовує пошук по базі даних, якщо введений логін існує, та пароль указаний вірно, ви зможете потрапити в особистий кабінет, та пройти авторизацію на Web-сервісі.
Логін - ім'я (ідентифікатор) облікового запису користувача в комп'ютерній системі, а також процедура входу (ідентифікації і потім автентифікації) користувача в комп'ютерну систему, як правило, шляхом вказівки імені облікового запису та пароля
Що стосується технології, то використовувалась технологія ASP MVC, яка дозволяє відокремити представлення від моделі та бізнес-логіки, та розробляти, або змінювати усі ці компоненти окремо, не переймаючись за те, що зміна одного з них спричинить несправність інших компонентів. [5]
Для розгортки використовується Web-сервер IIS, який дозволяє хостити даний ресурс у мережі.
Даний програмний продукт складається з декількох компонентів, кожний з яких реалізовано на відповідній за рекомендаціями технологій: серверної частини та вeб-клієнту.
Для написання Web-клієнту серверу, використовується технологія ASP.NET MVC, а для написання бек-енду використовується технологія WCF, яка надає зручний інтерфейс підтримки зв'язку між клієнтом та сервером. База даних будується на базі MS SQL Server 2014.
Варто додати, що розгортання головного серверу, та сервера клієнту відбувається у оточенні Windows Azure, що значно полегшує роботу з розгортанням, а також надає великі можливості для серверу, серед яких великий простір для файлового сховища, для бази даних, великий ліміт трафіку на місяць, висока швидкість роботи серверу і товщина каналу передачі даних. [7]
Розглянемо загальний інтерфейс сервісу:
– public bool ChangeAccount(Guid idUser, string firstName, string secondName, string country, string city, string phoneNumber, int age, string email) - метод, який дозволяє змінити профіль користувача;
– public UserInfo GetAccount(Guid usedId) - метод, який дозволяє отримати персональні лані користувача;
– publicMessagesSender(ILoggerFactory,loggerFactory,IOptionsSnapshot<SmtpClientSettings> options) - метод, який потрібен для надсилання повідомлень між користувачами;
– public Guid Logic(string login, string password, out bool result) - метод, який виконує авторизацію;
– private async Task SendAsync(MimeMessage emailMessage) - метод, що повідомляє користувача про те, що його повідомлення було надіслано;
– public void Register(string login, string email, string password, string firstName, string secondName, string phoneNumber, string country, string city, int age) - метод для регистрації користувача;
– public static string GetFileHash(string filePath) - метод, який формує шлях до файлу.
– public ActionResult Recommendations(string userId) - метод для додавання відгуку про виконавця;
– public IActionResult Info(string id) - метод за допомогою якого, користувач має змогу дізнатися про новини Web-додатку;
– public ActionResult DeleteUser(login id, FormCollection form) - метод для видалення аккаунту користувача;
– public override async Task<IList<string>> GetRolesAsync(TUser user) - метод який показує список користувачів Web-сервісу;
– public UserProfileService(IRepository<UserProfile> userProfileRepository) - метод для перегляду профілю користувача;
– public async Task SendFeedbackAsync([AllowNull]string fromEmail, string subject, string message) - метод який формує підтвердження аккаунту користувача, за допомогою переходу по посиланню на електронній пошті;
– public void AddSkills(List<ps_Skills> addList) - метод для додавання нових навичок;
– public Task SendSmsAsync(string number, string message) - метод який повідомляє користувача за допомогою смс, про те, що його аккаунт було зареєстровано;
– public List<GetWorkersResult> GetWorkers(Guid userId) - метод для отримання усіх працівників, окрім заданого;
– public void Save(SaveType saveType) - метод який дозволяє зберігати проекти після редагування;
– public override async Task AddToRoleAsync(TUser user, string roleName) - метод який задає роль користувача Web-сервісу;
– public IEnumerable<string> SearchKeys(string pattern) - метод для пошуку по ключовим словам;
– public override async Task<bool> IsInRoleAsync(TUser user, string roleName) - метод який показує, яку роль на Web-сервісі займає користувач;
– private static bool TryRetrieveToken(HttpRequest request, out string token) - метод який перевіряє чи зайшов користувач до системи під своїм аккаунт;
– public List<GetWorkersResult> FindWorkers(string skills, string country, string rank, string price, Guid userId) - метод для пошуку працівників по заданим критеріям.
Обрана архітектура дозволяє приєднувати будь-який інтерфейс. Такий як Web-застосунок чи десктопний застосунок з графічним, чи консольним типом інтерфейсу. Опис коду Web-сервісу приведено у додатку А.
4.5 Створення UI/UX дизайну системи
Нижче приведено Web-сервіс розроблений на платформі ASP.NET MVC, після входу на сайт, користувач опиняється на головній сторінці (див. рис. 4.11).
Рисунок 4.11 - Головна сторінка сайту
Гість який зайшов на сайт, має доступ до наступних розділів: перейти до категорії пошуку проектів, для уточнення всіх деталей, переглянути актуальні пропозиції, прочитати інформацію про Web-додаток, авторизуватися, або скористуватися пошуком за геолокацією, для того, щоб відразу переглянути пропозиції з його міста. А також доступ до статистики.
Після проходження авторизації користувач має доступ до особистого кабінету (див. рис. 4.12).
Рисунок 4.12 - Особистий кабінет Web-сервісу
В цьому розділі користувач має доступ до, перегляду особистих даних, останніх новин, та має можливість додавати особисті послуги на сайт.
Рисунок 4.13 - Редагування особистої інформації
Доступ до редагування персональної інформації (див. рис. 4.13). Цей розділ надає змогу змінити персональні дані користувача.
На наступній картинці зображено розділ швидкого пошуку на сервісі (див. рис. 4.14). Цей розділ призначений для швидкого пошуку послуг, на Web-сервісі.
Рисунок 4.14 - Швидкий пошук послуги
Також розроблений сайт, має розділ розширеного пошуку послуг(див. рис. 4.15).
Рисунок 4.15 - Розширений пошук роботи
Якщо користувач хоче впевнитись в усіх навичках виконавця, та встановити точну дату завдання, він має можливість скористатися розширеним пошуком.
Наступний розділ який необхідно розглянути, новини щодо проектів користувача (див. рис. 4.16).
Рисунок 4.16 - Новини по проектам
В цьому розділі користувачеві пропонується, переглянути нові повідомлення від виконавців, та всі актуальні новини.
Після додавання нового проекту, у користувача також є можливість змінити деяку інформацію щодо цього проекту (див. рис. 4.17).
Рисунок 4.17 - Редагування проекту
Також важливою сторінкою є сторінка опису вибраного проекту (див. рис. 4.18). На цій сторінці виконавець має можливість переглянути всю необхідну інформацію за вибраним завданням. А саме категорію до якої відноситься дана робота, з якого міста замовник, якими навичками необхідно володіти, та які умови виконання цього завдання.
Рисунок 4.18 - Опис проекту
Рисунок 4.19 - Розділ поточних проектів
Також у користувача є доступ до розділу проектів на які він відгукнувся (див. рис. 4.19).
Розроблений Web-додаток надає всю необхідну інформацію для виконавця (див. рис. 4.20). В цьому розділі користувач який хоче виконати деяку роботу має можливість дізнатися правила користування даним Web-сервісом, впевнитись в надійності даного продукту та всі необхідні умови для досягнення своєї мети.
Рисунок 4.20 - Інформація для виконавця
Даний Web-додаток також включає в себе розділ для роботодавця (див. рис. 4.21).
Рисунок 4.21 - Інформація для роботодавця
В цьому розділі підприємець має можливість дізнатись всю необхідну інформацію.
Останній розділ який необхідно розглянути, розділ опису проекту (див. рис 4.22).
Рисунок 4.22 - Сторінка проекту «О проекте»
В цьому розділі користувач має можливість дізнатися, з якою метою розроблявся даний майданчик, коли був запущений проект, над чим працює команда розробників даного проекту, та всю актуальну інформацію щодо Web-сервісу.
5. Тестування розробленого програмного забезпечення
Тестування програмного забезпечення - це процес перевірки програмного продукту на наявність помилок і відмінностей від специфікації, заявлених замовником. Тестування - це одна з технік контролю якості, яка включає в себе :
– планування робіт;
– проектування тестів;
– виконання тестування;
– аналіз отриманих результатів.
Верифікація - це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умов, що склалися на початку цього етапу. Тобто виконуються цілі, терміни, завдання по розробці проекту, визначені на початку поточної фази.
Валідація - це визначення відповідності програмного забезпечення, між очікуваннями і потребами користувача, вимогами до системи.
План тестування - це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн - це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріїв якості та цілей тестування.
Тестовий випадок - це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тесту для функції або її частини.
Баг / Дефект репорт - це документ, що описує ситуацію або послідовність дій (кроки), які призвели до некоректної роботи об'єкта тестування, із зазначенням причин і очікуваного результату.
Тестове покриття - це одна з метрик оцінки якості тестування, яка являє собою щільність покриття тестами вимог, або виконуваного коду.
Деталізація тест кейсів - це рівень деталізації опису тестових кроків і необхідного результату, при якому зрівнюється, співвідношення часу проходження і тестове покриття методів.
5.1 Функціональне тестування
Функціональне тестування - це перевірка ПО на роботу пристроїв в ідеальних умовах, на відміну від нефункціонального, де умови не ідеальні (тестування з навантаженням), або проводиться тестування не на правильність функціонування, а чогось іншого (тестування зручності використання або структури програми). Функціональні тести - це тести, які розглядають зовнішню поведінку розробленої системи. Основна мета - виявлення невідповідності між реальною поведінкою реалізованих функцій і очікуваною поведінкою відповідно до специфікації і вимог. Функціональні тести повинні охоплювати всі реалізовані функції з урахуванням найбільш ймовірних типів помилок.
Як правило, функціональне і нефункціональне тестування ПО можна проводити паралельно. У більшості джерел вказується, що функціональне тестування - це синонім black-box тестування (при якому програма розглядається як чорна скринька).Функціональне тестування грунтувалось на заздалегідь вказаній поведінці і аналізу специфікацій функціональності компонента та системи в цілому.
У разі «чорної скриньки» створений Інтернет-додаток розглядається як кінцевий автомат, з вхідними та вихідними даними, набором внутрішніх станів і переходів між ними. Тестується правильність поведінки розробленої програми при різних вхідних даних і внутрішньому стані. Правильність визначається виходячи з поставленого завдання, а також будь-якими іншими способами, крім вивчення коду.
Щоб провести повне тестування програми, потрібно перевірити правильність її поведінки при всіх можливих комбінаціях вхідних даних, та всіх можливих внутрішніх станах. Це неможливо через велику кількість комбінацій навіть у найпростіших випадках, Тому на практиці відбираються найважливіші тести, такий відбір можна робити декількома способами.
Існує багато програм, для яких продуктивність і зручність користування некритичні. У всякому разі, часто вимоги до ПО містять тільки функціональну частину. І практично не має вимог до забезпечення нефункціональної частини. Звідси наступний висновок, що функціональне тестування потрібно проводити для будь-якого програмного забезпечення.
Функціональне тестування було проведено з аналізу специфікацій функціональності компонентів, поведінці, та системи в цілому. В ході тестування розробленого Web-сервісу були протестовані наступні основні функції.
– Пошук по розділам(див. табл. 5.1).
Даний тест кейс перевіряє роботу пошуку з усіма можливими наслідками.
Таблиця 5.1 - Тест кейс 1
– Додавання нового проекту до БД(див. табл. 5.2).
В інтернет-додатку також розроблена система адміністрування, яку теж потрібно протестувати. Права адміністратора дають можливість додавати нові проекти до категорій.
Таблиця 5.2 - Тест кейс 2
Завдяки імітуванню використання системи, можна впевнитись, що Web-додаток успішно пройшов тестування.
5.2 Нефункціональне тестування
Нефункціональне тестування - це тести, необхідні для визначення не функціональних характеристик програмного забезпечення. Як правило, до таких характеристик відносяться різного роду технічні параметри розробленого програмного забезпечення. [15]
Види нефункціонального тестування:
– тестування установки (Installation testing) - направлено на перевірку успішної інсталяції та настройки, а також поновлення або видалення програмного забезпечення;
– Тестування зручності користування (Usability Testing) - метод тестування, спрямований на встановлення ступеня зручності використання, навченості, зрозумілості і привабливості для користувачів продукту, що розробляється в контексті заданих умов;
– Конфігураційне тестування або тестування портативності (Configuration Testing або Portability testing) - перевірка роботи програмного забезпечення при різних конфігураціях системи (заявлених платформах, підтримуваних драйвери, при різних конфігураціях комп'ютерів і т.д.);
– Тестування на відмову і відновлення (Failover and Recovery Testing) - перевіряє тестований продукт з точки зору здатності протистояти і успішно відновлюватися після можливих збоїв, що виникли в зв'язку з помилками програмного забезпечення, відмовами обладнання або проблемами зв'язку (наприклад, відмова мережі).
Були проведені наступні типи тестів: тестування навантаження, тестування стабільності або надійності, тестування установки та розгортки, тестування зручності використання, тестування на відмову та відновлення.
Після проходження тестування навантаження було виявлено, що розроблений програмний продукт відповідає встановленим вимогам.
Тестування стабільності, або надійності показало, що працездатність системи при тривалому тестуванні з очікуваним рівнем навантаження з плином часу, не споживає багато ресурсів, швидкість обробки даних, та відгук на дії користувача майже не змінювався.
Внаслідок тестування установки та розгортки було встановлено, що дана система успішно встановлюється, та розгортається на Web-сервері, швидко відновлюється та видаляється. Після тестування був успішно виконаний план установки. Система була успішно встановлена, та видалена з машини.
Тестування зручності використання, показало, що програмний продукт має зручний та зрозумілий графічний інтерфейс.
Також було проведено тестування на відмову та відновлення системи, яке дало змогу зрозуміти, що проект з точки зору здібності протистояти і успішно відновлюватися після можливих збоїв, що виникли у зв'язку з помилками програмного забезпечення, відмовою обладнання або проблемами зв'язку, успішно пройшов тест. Під час тестування використовувалися наступні випадки: відмова електроенергії на сервері та на клієнті, переривання доступу до мережі, відмова носіїв даних.
5.3 Тестування бази даних
Web-сервіс використовує для своєї роботи базу даних, ми можемо проаналізувати типи полів, в які записуються дані програми. А потім проаналізувати обмеження, які накладає база даних.
На кожну таблицю бази даних (див. розділ 4), в кожне поле була введена інформація яка перевищує дозволену кількість символів, також вводилися дані які не сумісні для типу (idUser - String). Всі тести були пройдені, виявлені дефекти занесені в TFS.
5.4 Кросбраузерне тестування
Для тестування було розроблено не великий, але важливий автоматичний тест. Ми запускаємо існуючі браузери в системі, перевіряємо які браузери існують в системі, пишемо в адресний рядок, url ??нашого Web-додатку.
Цей досить простий скрипт економить час для тестування відображення сайту на всіх популярних браузерах, якими може скористатися замовник. Головна мета - якісне і однакове відображення кінцевого продукту і виявлення проблем зображення сайту ще на етапі розробки.
В ході тестування було виявлено проблеми з відображення в браузері Internet Explorer. Блоки навігації були хаотично розкидані по браузеру. Дефект був занесений в багтрекінгову систему і систему контролю версій Team Foundation Service.
У браузері Safari не відображався пошук, проблема також занесена в TFS.
Висновки
У ході виконання роботи був спроектований Web-сервіс для пошуку роботи, який складається з Web-серверу та клієнтського додатку для WEB- браузерів.
Був проведений аналіз існуючих аналогів, який включав аналіз сайтів, які надають можливість пошуку роботи.
Проектування додатку відбувалася за допомогою мови програмування C#, JavaScript, як формат передачі даних протоколом HTTP, та CSHTML як мова розмітки інтерфейсу користувача.
Головний сервер та Web-сайт розроблювалися за технологію ASP.NET MVC і розгорталися в середі Windows Azure.
Під час роботи використовувалася IDE Visual Studio 2015.
У якості СУБД виступає MS SQL Server2014.
У результаті розробки вдалось досягти поставленої задачі з реалізації програмного продукту, що дозволить користувачам з легкістю шукати нову роботу та потрібних їм працівників. Сервіс має приємний і зрозумілий користувачу інтерфейс, що буде сприяти його популярності.
Необхідно відзначити, що необхідне подальше доопрацювання системи. Серед функцій, які потрібно реалізувати такі функції як: підтримка більшої кількості СУБД для підвищення інформаційної сторони сервісу, створити мобільну версію клієнту, також потрібно досягти більшої її автономізації, додавши змогу без грошового розрахунку за виконане завдання.
Перелік джерел
1. Web-додаток «http://pomoshniki.ru/» [Електронний ресурс] / Learn - Codeacademy. Режим доступу: http://pomoshniki.ru/ - 10.05.2016 р. Загол. з екрану.
2. Web-сервіс «www.kabanchik.ua» [Електронний ресурс] / Learn - Codeacademy. - Режим доступу: www.kabanchik.ua - 10.05.2016 р. Загол. з екрану.
3. Бондарєв, В.М. «Об'єктно-орієнтовне програмування на C#»: навч.посіб. [Текст] / В.М. Бондарєв.- Х.:Компания СМІТ, 2009.- 224 с.
4. ASP.NET Site [Електронний ресурс] / ASP.NET MVC. - Режим доступу: http://www.asp.net/mvc - 10.05.2016 р. Загол. з екрану.
5. Введення в програмування мовою Visual C# [Текст] / Гуріков С. Р. Форум, Інфра-М, 2013. - 448 c.
6. Робінсон, С. C# для профессионалов [Текст] / С. Робінсон, М. Лори, О. Корнес, Д. Глинн - 2005. - 396 с.
7. Бібліотека розробника MSDN [Електронний ресурс] / портал msdn.microsoft.com : Microsoft Developer Network. - Режим доступу: www/URL: http://msdn.microsoft.com/library/
8. Принципи, паттерни і методики гнучкої розробки мовою C# [Текст] / Мартін Р. С., Мартін М. Символ-Плюс, 2011. - 768 c.
9. Мак-Дональд, М. Microsoft ASP.NET 3.5 з прикладами на C# 2008.
10. CLR via C# [Текст] / Jeffrey Richter. Microsoft Press, 2012. - 896 с.
11. SQL: повний посібник [Текст] / . Грофф, Джеймс, Вайнберг Пол. Київ: BHV, 2005. - 608 c.
12. Крєнке, Д. Теорія та практика побудови баз данных. 8-е вид. [Текст]: / Д.Крєнке. - СПб.: Питер, 2003. - 800 с.
13. Програмування баз даних Microsoft SQL Server 2009 для професіоналів [Текст] / Вієйра Р.. Діалектика, 2008. - 1072 c.
14. UML [Электронный ресурс] / Вікіпедія - Режим доступу https://ru.wikipedia.org/wiki/UML/ - 31.05.2015 г. - Заголовок экрана.
15. Myers, G. J. The Art of SoftwareTesting [Текст] / G. J. Myers. - John Wiley & Sons, Inc., Hoboken, New Jersey, Canada, 2004. - 255 c.
Додаток А
Фрагмент коду програми
namespace Store.WebApi.Controllers
{
using Store.WebApi.ActionResults;
using Microsoft.AspNetCore.Mvc;
using Store.WebApi.Data;
using System;
using System.Linq;
using Extentions;
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
//[RequireHttps]
public class ApplicationController : Store.WebApi.Controllers.ControllerBase
{
private readonly DataProvider dataProvider;
private readonly IHostingEnvironment hostingEnvironment;
public ApplicationController(DataProvider dataProvider, IHostingEnvironment hostingEnvironment)
{
this.dataProvider = dataProvider;
this.hostingEnvironment = hostingEnvironment;
}
[HttpGet]
[ResponseCache(CacheProfileName = "Caching", VaryByHeader = "Accept-Language")]
public IActionResult List()
{
var applications = this.dataProvider.Applications.ToList();
return this.Ok(applications);
}
[ResponseCache(CacheProfileName = "Caching", VaryByHeader = "Accept-Language")]
public IActionResult Info(string id)
{
IActionResult result = null;
Guid guidId;
var application = Guid.TryParse(id, out guidId) ? this.dataProvider.Applications.FirstOrDefault(c => c.Id == guidId) : this.dataProvider.Applications.FirstOrDefault(c => c.SeoFriendlyName.Equals(id, StringComparison.OrdinalIgnoreCase));
if (application != null)
{
var requestUri = this.Request.GetUri();
var shareLinks = application.GetShareLinks(requestUri);
application.ShareLinks = shareLinks;
result = this.Ok(application);
}
else
{
result = this.NotFound(id);
}
return result;
}
[ResponseCache(CacheProfileName = "Caching", VaryByHeader = "Accept-Language")]
public IActionResult Recommendations(string id)
{
IActionResult result = null;
var apps = this.dataProvider.Applications.OrderByDescending(c => c.Likes).Take(3);
result = this.Ok(apps);
return result;
}
[HttpGet]
[Authorize]
[ResponseCache(CacheProfileName = "NoCaching")]
public IActionResult DownloadPackage(Guid id)
{
IActionResult result;
var package = this.dataProvider.GetPackageById(id);
if (package != null)
{
var path = $"/wwwroot/{package.FileName}";
var fileInfo = this.hostingEnvironment.ContentRootFileProvider.GetFileInfo(path);
result = !fileInfo.Exists || fileInfo.IsDirectory ? (IActionResult)this.NotFound() : new CustomFileContentResult(System.IO.File.ReadAllBytes(fileInfo.PhysicalPath), "application/octet-stream") { FileDownloadName = fileInfo.Name };
...Подобные документы
Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".
курсовая работа [4,0 M], добавлен 02.12.2014Особливості побудови та роботи з об’єктно-реляційною моделлю даних в інструментальній системі управління базами даних PostgreSQL. Розробка бази даних факультету, що має у підпорядкуванні кілька кафедр. Тестування роботи спроектованої бази даних.
курсовая работа [1,8 M], добавлен 09.05.2014Основні способи тестування роботи паралельної системи. Функціональне тестування та тестування загальної швидкості. Способи організації та налаштування кластера. Програма для створення віртуальних операційних систем шляхом виділення ресурсів комп'ютера.
лабораторная работа [3,4 M], добавлен 02.06.2011Коротка характеристика об’єктів управління "Nix Solutions". Розроблення варіантів використання, специфікація функціональних та не функціональних вимог. Проектування структури бази даних, елементи. Тестування додатку та розгортання програмного продукту.
дипломная работа [1,5 M], добавлен 01.07.2015Аналіз об'єктів дослідження, проектування баз даних. Розробка програмного забезпечення для роботи зі спроектованою базою даних. Реалізація індексів, опис метаданих в середовищі MySQL. Специфікація DDL для MySQL, протокол тестування DDL-сценарії.
контрольная работа [389,9 K], добавлен 05.01.2014Дослідження теоретичних аспектів проектування автоматизованих систем тестування знань. Розробка програми, яка призначена для забезпечення автоматизації процесу формування тестів та всього процесу контролю знань у дистанційній навчальній системі.
дипломная работа [2,1 M], добавлен 26.10.2012Характеристика об’єкта автоматизації, вимоги до системи, склад та зміст системи. Розробка функціональної схеми програмного продукту. Тестування підпрограми програмного продукту. Розробка бази даних та налаштування ECO компонент в Borland Developer Studio.
практическая работа [1,8 M], добавлен 05.06.2014База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.
курсовая работа [5,3 M], добавлен 22.10.2012Специфікація вимог користувачів підсистеми, нормативні документи. Опис вхідної та вихідної інформації, алгоритм проектування. Побудова реляційної бази даних. Тестування підсистеми. Формування запитів на мові SQL. Розробка інформаційної підсистеми.
курсовая работа [160,8 K], добавлен 12.11.2014Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.
дипломная работа [1,7 M], добавлен 25.10.2012Методика управління каталогами та атрибутами файлів. Аналіз вихідних даних, вибір підходу та технології реалізації програмного продукту. Розробка узагальненого та деталізованих алгоритмів роботи програми, інтеграція компонентів та комплексне тестування.
курсовая работа [2,8 M], добавлен 23.01.2012Опис та аналіз діаграм компонентів, послідовності, розгортання. Опис NoSQL бази даних. Архітектура програмної системи та обрані технології. Мова програмування Kotlin. Структури обміну даними. Патерн проектування MVP. Тестування мобільних пристроїв.
дипломная работа [8,6 M], добавлен 19.08.2016Особливості системи онлайн-агрегаторів новин, універсальної програмної платформи Microsoft Window. Використання мови програмування C#, створення бази даних. Розробка програмного продукту, алгоритм його створення. Вихідний код та інструкція користувача.
дипломная работа [730,9 K], добавлен 21.01.2016Схема формування і використання автоматизованого банку даних. Визначення інформаційних потреб користувачів щодо даних. Початкове збирання даних, проектування і створення карти їх розміщення, завантаження і тестування, розгортання і зворотній зв'язок.
контрольная работа [70,2 K], добавлен 27.07.2009Розроблення інформаційної системи для введення, редагування, пошуку, фільтрування даних, необхідних для роботи танцювальної студії. Характеристика вимог до надійності. Призначення і умови використання програми. Методика роботи користувача з системою.
дипломная работа [1,6 M], добавлен 02.06.2017Розробка інформаційної системи зберігання, обробки і моделювання алгоритмів обчислення статистичних даних для спортивний змагань. Характеристика предметної області, архітектури бази даних, установки і запуску системи, основних етапів роботи користувача.
курсовая работа [2,0 M], добавлен 26.12.2011Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.
курсовая работа [4,3 M], добавлен 05.12.2012Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.
курсовая работа [147,2 K], добавлен 02.06.2019Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.
курсовая работа [1,1 M], добавлен 22.09.2015Тестування програмного забезпечення як процес його дослідження для отримання інформації про якість. Автоматизація тестування програми Join It - Jigsaw Puzzle. Методика тестування, структура пакету та його модулів. Вимоги до програмного забезпечення.
дипломная работа [2,4 M], добавлен 24.07.2013