Веб-портал з новинами і змогою додавання новин користувачами
Огляд існуючих програмних продуктів. Проходження процедури реєстрації. Побудова та опис логічної моделі. Розробка основних форм інтерфейсу користувача. Тестування методом чорної скриньки. Інсталяція серверної частини системи та клієнтських програм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 03.06.2021 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Національний університет "Львівська Політехніка"
Кафедра АСУ
Пояснювальна записка
до курсової роботи
з предмету: "Технології об'єктно-орієнтованого програмування"
на тему: "Веб-портал з новинами і змогою додавання новин користувачами"
РЕФЕРАТ
Пояснювальна записка до курсової роботи: 50 с., в 22 рис., 7 табл., 2 додатки, 6 джерел.
Об'єкт дослідження - інформаційний ужиток розмішення новин на веб-порталі.
Мета роботи - створити ужиток, який дає можливість публікувати новини на веб-платформі, переглядати їх, коментувати.
Метод дослідження - розробка системи за допомогою мови програмування PHP, використовуючи систему керування вмістом «DataLifeEngine» та технології об'єктно-орієнтованого програмування для підтримки діяльності .
ЗМІСТ
ВСТУП
1. ПОСТАНОВКА ПРОБЛЕМИ
1.1 Опис проблеми
1.2 Огляд існуючих програмних продуктів
1.3 Аналіз існуючих програмних продуктів
2. ФОРМУЛЮВАННЯ ВИМОГ
2.1 Опис першочергових вимог
2.2 Функціональні вимоги
2.3 Нефункціональні вимоги
3. АНАЛІЗ
3.1 Словник термінів
3.2 Побудова та опис логічної моделі
3.3 Якість
4. ПРОЕКТУВАННЯ
4.1 Специфікація результатів аналізу
4.2 Проектування компонентів, які не належать області проблеми
4.3 Визначення фізичної структури
5. РЕАЛІЗАЦІЯ
5.1 Розробка основних форм інтерфейсу користувача та опис програмного продукту
5.2 Програмування графічного користувацького інтерфейсу
5.3 Попередній план тестування системи
6. ТЕСТУВАННЯ
6.1 Тестування методом чорної скриньки
7. ЕТАП УСТАНОВКИ
7.1 Інсталяція системи
7.1.1 Інсталяція серверної частини системи
7.1.2 Інсталяція клієнтських програм
7.2 Інструкція використання
ВИСНОВКИ
ВИКОРИСТАНА ЛІТЕРАТУРА
ДОДАТОК
ВСТУП
Усім відома фраза - “Хто володіє інформацією - той володіє світом”. В наш час вона як ніколи актуальна. Все більше користувачів в пошуках свіжих новин натрапляють на різноманітні веб-портали, які намагаються задовольнити їхні потреби.
Хоча новинних веб-порталів існує велика кількість, але тільки одиниці надають користувачам зручну систему для розміщення власних новин. Саме ця особливість обмежує сучасні новинні сайти і забирає у починаючих, потенційно талановитих журналістів можливість писати на загал.
Виходячи з цього, можна сказати, що метою курсової роботи було створення зручного ужитку для розміщення новин на веб-порталі, що дозволить об'єднати користувачів, які потребують свіжих новин та користувачів, які пишуть новини і шукають свою читацьку аудиторію.
Загалом, розроблена система буде готовим прототипом для тестування першими користувачами, оскільки буде розміщена на хостингу, тобто буде доступна “онлайн” для всіх користувачів, що матимуть вихід у інтернет.
1. ПОСТАНОВКА ПРОБЛЕМИ
1.1 Опис проблеми
Метою цієї роботи - є створення системи розміщення новин на веб-порталі.
Оскільки, така система повинна надати можливість як розміщувати новини, так і переглядати їх, то, зрозуміло, що до такої системи буде звертатись велика кількість користувачів одночасно. З огляду на це, основним показником, в такій системі, буде її швидкодія, тобто швидкість опрацювання запитів, що поступають від користувачів до системи.
1.2 Огляд існуючих програмних продуктів
Під аналогами, що досліджуються будемо розуміти новинні веб-портали, які вже доступні “онлайн” та користуються популярністю серед інтернет користувачів.
Першим прикладом виступить ресурс з назвою «Сегодня», що розміщений за адресою https://www.segodnya.ua та є найпопулярнішим в Україні (За даними Інтернет-асоціації України). Інтерфейс головної сторінки можна спостерігати на рис. 1.1.
Рис. 1.1. Інтерфейс ресурсу «Сегодня»
Наступним аналогом виступить ресурс під назвою «LiveJournal», розміщений за посиланням https://www.livejournal.com, інтерфейс якого можна спостерігати на рис. 1.2. Аналіз обох аналогів наведений у наступному пункті цього розділу.
Рис. 1.2. Інтерфейс ресурсу «LiveJournal»
1.3 Аналіз існуючих програмних продуктів
Проаналізувавши ресурс «Сегодня», інтерфейс якого зображений на рис. 1.1, можна прослідкувати слабку сторону спроектованого інтерфейсу - велика кількість різноманітної інформації, що розсіює увагу користувача. Цей недолік є несуттєвим у порівняні з тим, що цей ресурс не надає можливості розміщення своїх новин користувачами. Саме ця функція має виділяти розроблену систему від багатьох інших веб-платформ.
Наступним ресурсом для аналізу виступає ресурс «LiveJournal», що зображений на рис. 1.2. Аналізуючи його, можна сказати, що інформація на ньому розміщена зручна та інтерфейс інтуїтивно зрозумілий для користувача. Також сильною стороною є можливість створення свого блогу, що надає можливість розмістити власні новини на ресурсі. Головним недоліком ресурсу - є відсутність локалізації під українську аудиторію. Тому виділимо нову особливість системи, яку розроблятимемо - орієнтованість на україномовну аудиторію.
2. ФОРМУЛЮВАННЯ ВИМОГ
2.1 Опис першочергових вимог
Система призначена для адміністратора, редакторів та користувачів веб-платформи. Завдяки системі користувачі можуть публікувати власні новини та переглядати новини, яку опублікували інші користувачі.
2.2 Функціональні вимоги
Для використання усіх функцій системи клієнтові потрібно пройти процедуру реєстрації.
Зареєстровані клієнти мають логін та пароль для авторизації в системі. Для користувачів інших типів акаунти створюються адміністратором системи. Система має працювати в трьох режимах. В залежності від прав доступу користувачам буде доступний певний набір функцій..
Інтернет користувач:
· Коментування новин.
· Публікація новин.
· Реєстрація.
· Авторизація.
· Відновлення паролю.
Редактор:
· Авторизація.
· Редагування новини.
· Видалення новини.
· Пошук новин.
· Класифікація новин за категоріями.
· Перегляд всіх новин.
· Перегляд новин, опублікованих певним користувачем.
Адміністратор.
Адміністратор системи має права на повне керування системою, внесення будь-яких змін до БД.
2.3 Нефункціональні вимоги
Вимоги до продукту:
· Система повинна працювати на операційній системі Windows.
· Комп'ютер-сервер, на якому буде розміщена база даних повинен мати процесор з частотою не менше 3.0 GHz, вінчестер об'ємом 500GB та оперативною пам'яттю не менше 8 Gb. Операційна система Windows із набором ПЗ XAMPP.
· Клієнтські ПК з ОС Windows/Linux/macOS з встановленим браузером.
· Мінімальні апаратні характеристики: процесор - 1 GHz, вінчестер - 32 гб, оперативна пам'ять 512 Мб.
· Доступ до мережі Інтернет.
· Швидкість Інтернету повинна бути не меншою 128 Кбіт/сек.
Вимоги до процесу:
· Використання протоколу HTTP/HTTPS.
· Можливість одночасної роботи в системі ~ 1000 клієнтів.
· Можливість одночасної обробки ~ 400 запитів.
Зовнішні вимоги:
· Будь-яка операційна система.
· Мова інтерфейсу - англійська, українська.
· Комп'ютер-сервер.
· Вихід в Інтернет.
· Тип мережі: Ethernet.
· Швидкодія Інтернету повинна бути не меншою 1 мБіт/сек.
Таблиця 2.1
Об'єм |
Можливість одночасної роботи в системі ~ 1000 клієнтів |
|
Швидкість реакції системи на запит |
Можливість одночасної обробки ~ 400 запитів. |
|
Апаратні засоби |
Апаратна частина сервера: Процесор Intel Core 2 Duo 3.0 GHz x 2 Вінчестер 500GB Оперативна пам'ять DDR3 16GB 1667 MHz Апаратна частина клієнтського комп'ютера: Вихід в Інтернет. Процесор з частотою > 1 GHz Вінчестер 32 GB Оперативна пам'ять 1GB Мережева карта: ASUS NX1101 10/100M Монітор Клавіатура Мишка Вимоги до мережі: Швидкодія Інтернету повинна бути не меншою 128 Кбіт/сек. |
|
Програмний інтерфейс |
Сумісність з ОС WINDOWS/ Linux /macOS. Програмна частина сервера: Набір ПЗ XAMPP. |
|
Взаємодія людини з системою |
Для роботи користувача з системою потрібно використовувати браузер та мати вихід в Інтернет. |
|
Безпека |
База даних написана мовою SQL і розміщена на сервері. Використання системи back-up-ів, що дозволить уникнути втрати даних БД та файлів системи. |
|
Гнучкість |
Клієнтські програми працюють практично на всіх пристроях, де є можливість роботи з веб-сайтами. Програма передбачає роботу через через Інтернет. Взаємодія з системою відбувається через веб-браузер. Інтерфейс користувача адаптується відповідно до розміру екрану його девайсу. |
|
Час |
10 місяців на розробку системи: Етап формулювання вимог - 2 тижні. Етап аналізу - 2 тижні. Етап проектування - 1 місяць. Етап реалізації - 1 місяць. Етап тестування- 2 тижні. Етап встановлення - 2 дні. |
3. АНАЛІЗ
3.1 Словник термінів
Таблиця 3.1
Термін |
Визначення |
|
Інтернет Користувач |
Особа, що користується системою через веб-інтерфейс(браузер) |
|
Редактор |
Особа, що має доступ то панелі керування та користується системою через веб-інтерфейс |
|
Адміністратор |
Особа, яка керує системою |
|
Сервер |
Комп'ютер на якому буде розміщена база даних та сама система. |
|
База даних |
Набір даних розміщених на сервері з яким взаємодіє клієнтська програма. |
|
Інтерфейс |
Засіб за допомогою якого користувач здійснює дозволені йому функції. |
3.2 Побудова та опис логічної моделі
Модель функціонування системи зображена на рис. 3.1.
Рис. 3.1. Модель функціонування системи
Користувачі системи:
Основними користувачами системи є інтернет-користувачі. Вони використовуватимуть систему для перегляду, коментування та додавання власних новин.
Іншими користувачами є:
· Редактори - обслуговують веб-платформу, можуть редагувати новини, класифікувати новини за категоріями, блокувати користувачів і т.д
· Адміністратор - особа , яка має повний доступ до всіх функціональних можливостей системи і здійснює контроль за її коректною роботою.
Концептуальна модель системи зображена на рис. 3.2.
Рис 3.2. Концептуальна модель системи
Відношення з іншими програмами
Програма успішно функціонує на ОС Windows, Unix, macOS, а також іншими пристроями де є браузер та доступ до мережі Internet.
Модель взаємодії системи з сутностями користувачів.
Таблиця 3.2 показує взаємодію сутності «інтернет-користувач» з системою відповідно до функцій системи.
Таблиця 3.2
Інтернет-користувач |
Потік повідомлень |
Система |
|
1. Запит на перегляд новин по категоріям. |
Параметри запиту: Категорія (string [25]) |
Пошук новин за категоріями. |
|
2. Запит на реєстрацію. |
Параметри запиту: Пошта(string [30]), номер телефону(number), пароль(string [25]), ім'я(string [15]). |
Перевірка доступності реєстрації та реєстрація у системі. |
|
3. Запит на авторизацію. |
Параметри запиту: Пошта(string [30]), пароль(string [25]) |
Перевірка логіну та паролю. |
|
4. Запит на відновлення паролю. |
Параметри запиту: Пошта (string [30]) |
Пошук поля "email" у БД. |
|
5. Запит на створення новини. |
Параметри запиту: ID користувача (number), ID новини (number), Текст новини(string[10000]), час створення(time) |
Додавання до бази даних новини. |
|
6. Запит на коментування новини. |
Параметри запиту: ID користувача(number), ID новини(number), текст коментаря(string [1000]). |
Додавання до бази даних коментаря до новини. |
Таблиця 3.3 показує взаємодію системи з сутністю «інтернет-користувач» відповідно до функцій системи.
Таблиця 3.3
Система |
Потік повідомлень |
Інтернет-користувач |
|
1. Вивід знайдених новин за категоріями. |
Інформація |
Відображення списку новин. |
|
2. Вивід результату реєстрації або відмова. |
Інформація |
Реєстрація у системі або повідомлення про помилку. |
|
3. Вивід результату авторизації або відмова. |
Інформація |
Авторизація у системі або повідомлення про помилку. |
|
4. Відправлення письма на е-пошту або відмова. |
Інформація |
Інформація про відправлений лист на пошту або повідомлення про помилку. |
|
5. Вивід результату створення новини. |
Інформація |
Відображення новини користувача. |
|
6. Вивід результату коментування новини. |
Інформація |
Відображення коментаря. |
Таблиця 3.4 показує взаємодію сутності «редактор» з системою відповідно до функцій системи.
Таблиця 3.4
Редактор |
Потік повідомлень |
Система |
|
1. Запит на авторизацію. |
Параметри запиту: Логін(string[30]), пароль(string[25]) |
Перевірка логіну та паролю. |
|
2. Запит на відновлення паролю. |
Параметри запиту: Пошта (string [30]) |
Пошук поля "email" у БД. |
|
3. Запит на перегляд новини. |
Параметри запиту: ID новини(number) |
Новина. |
|
4. Запит на редагування новини. |
Параметри запиту: ID новини(number), Редагований текст новини (string[10000] ) |
Оновлення новини в базі даних. |
|
5. Запит на видалення новини. |
Параметри запиту: |
Видалення новини з бази даних. |
|
6. Запит на перегляд облікового запису користувача. |
Параметри запиту: |
Обліковий запис користувача. |
|
7. Запит на блокування користувача. |
Параметри запиту: Причина блокування (string[50]) |
Блокування користувача. |
Таблиця 3.5 показує взаємодію системи з сутністю «редактор» відповідно до функцій системи.
Таблиця 3.5
Система |
Потік повідомлень |
Редактор |
|
1. Авторизація або відмова. |
Інформація |
Авторизація у системі або повідомлення про помилку. |
|
2. Відправлення письма на е-пошту або відмова. |
Інформація |
Інформація про відправлений лист на пошту або повідомлення про помилку. |
|
3. Виведення новини. |
Інформація |
Відображення новини. |
|
4. Редагування новини. |
Інформація |
Оновлена новина. |
|
5. Видалення новини або відмова. |
Інформація |
Повідомлення про видалення новини. |
|
6. Обліковий запис користувача. |
Інформація |
Відображення облікового запису користувача. |
|
7. Блокування користувача або відмова. |
Інформація |
Відображення статусу користувача «Заблокований». |
Спрощена модель системи зображена на рис 3.3.
Рис 3.3. Спрощена модель системи
3.3 Якість
Розроблена система має адаптивний та зручний інтерфейс, що дає змогу використовувати її на багатьох пристроях, де є доступ до мережі Інтернет та веб-браузер. Система є стійкою до різного роду збоїв оскільки працює на пряму з SQL сервером (на якому розміщена база даних).
4. ПРОЕКТУВАННЯ
На етапі проектування розробляється детальний проект новинної веб-платформи - “LvivNews”, a саме здійснюється специфікація результатів аналізу проводиться оптимізація системи. Також на цьому етапі визначається фізична структура системи.
Use-case діаграма
На Use Case діаграмі (рис. 4.1) зображені варіанти використання системи двома групами користувачів. Будь-який користувач може, не проходячи процедуру логування, переглядати новини. Але для створення власних новин користувачі мають пройти процедуру логування. Також після проходження процедури логування звичайний інтернет-користувач зможе переглядати особистий профіль, змінювати потрібну інформацію, наприклад, електронну адресу та залишати відгуки до чужих новин.
Редактор залогувавшись отримує доступ до тих самих функцій, що й інтернет-користувач. Також редактор отримає доступ до адмінпанелі, в якій він зможе редагувати новини та блокувати облікові записи користувачів.
Адміністратор залогувавшись отримує доступ до всіх функцій в системі.
Рис. 4.1. Use-case діаграма системи.
4.1 Специфікація результатів аналізу
На рис. 4.2 зображені класова діаграма системи.
Рис 4.2. Підмодулі системи
Клас “Редактор” наслідує клас “Користувач” та має власні методи, які дозволяють видаляти та редагувати новини, і блокувати користувачів.
Клас “Адміністратор” наслідує клас “Редактор” та має власні методи, які дозволяють додавати, видаляти та редагувати профілі користувачів, і видаляти коментарі. програмний інтерфейс серверний інсталяція
Інтерфейс “Публікація” є базовим для публікацій трьох типів, кожен з яких перевизначає абстрактний метод post(), і в результаті всі типи публікацій можуть мати свій варіант відображення. Важливо зазначити, що створити об'єкт класу “Публікація” неможливо.
Клас “Коментар” як і інтерфейс “Публікація” має атрибут, яким повинен бути об'єкт класу “Користувач”, тому що кожен коментар або публікація мають мати свого автора.
Таким чином, в цій діаграмі використані такі принципи ООП: абстракція (інтерфейс “Публікація”), наслідування (класи “Адміністратор” та “Редактор”), поліморфізм (перевизначення методу post()).
4.2 Проектування компонентів, які не належать області проблеми
На рис. 4.3 зображений мокап інтерфейсу, яким користуватимуться усі інтернет-користувачі.
Рис. 4.3. Головна сторінка системи.
На рис. 4.4 зображений інтерфейс адмінпанелі, якою користуватимуться редактори та адміністратор.
Рис. 4.4. Інтерфейс адмінпанелі.
4.3 Визначення фізичної структури
Для роботи обох клієнтських програм необхідна спеціальна база даних розміщена на сервері SQL. Дана база спроектована мовою SQL за допомогою програми Management Tools (MS SQL Server). На рис 4.5 зображена структура бази даних:
Рис 4.5. Структура БД системи
5. РЕАЛІЗАЦІЯ
Згідно з поставленими вимогами до етапу реалізації, було проведено розробку продукту «LvivNews». До основних результатів даного етапу належить:
Розширений документ, що описує вимоги.
На даному етапі розробки ПЗ не було внесено ніяких змін до документу описання вимог, оскільки було реалізовано лише ті вимоги, які було поставлено.
Розширена аналітична модель.
Аналітична модель не була змінена порівняно з етапом розробки цієї моделі, було використано тільки її можливості для реалізації цього програмного забезпечення.
Розширений проект, який у даний момент завершується документацією.
Код, що складається з протестованих модулів.
5.1 Розробка основних форм інтерфейсу користувача та опис програмного продукту
Обрана мова програмування PHP. Завдяки реалізації мовою PHP, система буде багато платформовою, тобто працювати на всіх операційних системах, і не тільки на персональних комп'ютерах, але й на Android-сумісних телефонах, планшетах.
Переваги даної мови:
- Безпека (вихідні коди неможливо декомпілювати і неможливо так перехопити дані).
- Надійність (програма працюватиме на виділеній віртуальній машині).
- Висока швидкодія програм.
- Кроссплатформеність (можливість запуску на різних операційних системах).
5.2 Програмування графічного користувацького інтерфейсу
На рисунку 5.1 зображений інтерфейс інтернет-користувача:
Рис. 5.1. Інтерфейс інтернет-користувача.
Головне вікно сторінки інтернет-користувача, на якій показані останні новини, є фільтр по категоріям новин та є пошук по сайту. Для коментування новини користувачу потрібно залогуватись.
На рисунку 5.2 зображений інтерфейс редактора:
Рис 5.2. Інтерфейс редактора
Вікно редагування новин, що доступне користувачу групи «редактор» після логування.
5.3 Попередній план тестування системи
У процесі розробки даного програмного продукту було виявлено деякі важливі області, які необхідно уважно протестувати з метою виявлення всіх недоліків та помилок. Далі наводиться список всіх важливих областей:
User. Модуль системи, що відповідає за логування користувачів та адміністрування системи.
Таблиця 5.1
Назва методу |
Значення параметрів |
Обмеження |
Результат виконання |
|
GetRootId |
UserId: int |
Поле: |
Отримання id прав користувача |
|
GetUserId |
Login: string [25] |
Поле: |
Отримання id користувача |
|
IsInLogin |
Login: string [25] |
Поле: |
Булеве значення, чи існує такий обліковий запис |
|
IsInUserId |
UserId: int |
Поле: |
Булеве значення, чи існує такий обліковий запис |
|
AddUserRoot |
UserId: int |
Поле: |
Надає користувачу певні права. |
|
DeleteUser |
UserId: int |
Поле: |
Видалення облікового запису користувача |
|
AddUser |
UserId: int |
Поле: |
Реєстрація у системі або повідомлення про помилку. |
News. модуль системи, що відповідає за систему новин. Включає в себе чотири класи: TCategory, TAuthor, TNews, TComment;
Таблиця 5.2
Назва методу |
Значення параметрів |
Обмеження |
Результат виконання |
|
NewsAdd |
AuthorId: int |
Поле: |
Публікація новини або відправлення на модерацію |
|
NewsEdit |
AuthorId: int |
Поле: |
Оновлена новина |
|
CommentAdd |
AuthorId: int |
Поле: |
Доданий коментар |
|
CommentEdit |
AuthorId: int |
Поле: |
Оновлений коментар |
|
CategoryAdd |
CategoryId: int |
Поле: |
Додає категорію |
6. ТЕСТУВАННЯ
На цьому етапі було проведено тестування системи згідно плану розробленого на етапі реалізації.
Було розглянуто основні види тестувань і з них обрано найоптимальніші для даної системи.
· Статистичне тестування було опущено оскільки даний проект не передбачає складних операцій обробки даних, в яких можуть виникати помилки.
· Метод прозорої скриньки був обраний, оскільки він дозволяє визначити джерело помилки безпосередньо в програмному коді.
· Автоматизоване тестування як підвид тестування методом прозорої скриньки було відкинуто, оскільки таке тестування потребує додаткових витрат на написання тестуючого коду, що є недоцільним у випадку невеликих проектів, як наш.
· Метод чорної скриньки також був обраний, оскільки він базовим та поростим, і не вимагає заглиблення у принципи функціонування сиситеми.
· Метод сіяння помилок не використовувався для тестування даного проекту, оскільки даний проекти не є великим і має добре виражену просту структуру.
Для тестування використовувались такі методи тестування, як метод чорної скриньки та метод прозорої скриньки. Ті класи у яких було виявлено несправності при тестуванні методом чорної скриньки тестувалися методом прозорої скриньки для визначення джерела помилки. Нижче описаний процес тестування за кожним із обраних методів для Клієнта даних модулів.
6.1 Тестування методом чорної скриньки
Модуль User:
1. GetRootId () - метод, для перевірки прав користувача.
Тест№1. Авторизація тестовим користувачем(без прав доступу до адмінпанелі). Увійти в адмінпанель неможливо.
Тест№2. Авторизація тестовим користувачем(з правами редактора). Є доступ до адмінпанелі.
Метод працює коректно.
2. IsInLogin () - метод, для перевірки існування облікового запису з таким логіном.
Тест№1. Спроба реєстрації користувача з існуючим логіном. Виникає помилка - “Такий логін уже існує”.
Тест№2. Спроба реєстрації користувача з новим логіном. Реєстрація успішна.
Метод працює коректно.
3. AddUserRoot () - метод, для надання користувачу додаткових прав.
Тест№1. Спроба надати користувачу додаткові права через адмінпанель (через обліковий запис редактора). Виникає помилка - “недостатньо прав”.
Тест№2. Спроба надати користувачу додаткові права через адмінпанель (через обліковий запис адміністратора). Права успішно додані.
Метод працює коректно.
4. AddUser () - метод, для реєстрації користувача.
Тест№1. Зчитування даних відповідних текстових полів. (Ім'я (Андрій), email(churiy97@gmail.com), пароль(password1)). Оскільки всі дані введено правильно, то метод працює коректно.
Тест№2. Зчитування даних відповідних текстових полів. (Ім'я (), email(churiy97@gmail.com), пароль(password1)). Додати не вдасться, оскільки передбачено, що ім'я - обов'язкове для заповнення поле.
Метод працює коректно.
5. DeleteUser () - метод, для видалення облікового запису користувача.
Тест№1. Спроба видалити користувача через адмінпанель (через обліковий запис редактора). Виникає помилка - “недостатньо прав”.
Тест№2. Спроба видалити користувача через адмінпанель (через обліковий запис адміністратора). Обліковий запис успішно видалений.
Метод працює коректно.
Модуль News:
1. NewsAdd() - метод, для додавання новини.
Тест№1. Спроба додавання новини без заголовку. Новина не додається, оскільки заголовок - обов'язкове поле.
Тест№2. Спроба додавання новини не обравши категорію новини.
Новина не додається, оскільки категорія - обов'язкове поле.
Метод працює коректно.
2. NewsEdit () - метод, для редагування новини.
Тест№1. Спроба редагування новини без заголовку.
Новина не оновлюється, оскільки заголовок - обов'язкове поле.
Тест№2. Спроба редагування новини не обравши категорію новини.
Новина не оновлюється, оскільки категорія - обов'язкове поле..
Метод працює коректно.
3. CommentAdd() - метод, для додавання коментарів.
Тест№1. Спроба залишити порожній коментар. З'являється вікно опередження, що не можна залишати порожні коментарі.
Метод працює коректно.
4. CommentEdit() - метод, для редагуваггя користувача.
Тест№1. Спроба відредагувати коментар, залишивши текстове поле порожнім. З'являється вікно попередження, що не можна залишати порожні коментарі.
Метод працює коректно.
5. CategoryAdd() - метод, для додавання категорії.
Тест№1. Спроба створити нову категорію, залишивши поле назви порожнім. З'являється вікно попередження, що поле назви є обов'язковим.
Метод працює коректно.
Загальна кількість протестованих методів - 10.
Кількість методів, в яких не виявлені помилки - 10.
Кількість методів, які потребують тестування методом прозорої скриньки - 0.
7. ЕТАП УСТАНОВКИ
7.1 Інсталяція системи
7.1.1 Інсталяція серверної частини системи
Оскільки дана система працює за принципом клієнт-сервер, під сервер має бути виділений окремий комп'ютер з локальною мережею, або виходом в Інтернет. Для налаштування сервера необхідно:
· Встановити програму MS SQL Server.
· Зупинити SQL Server, використавши додаток Configuration Manager.
· Скопіювати два файли бази даних (main_db.mdf, main_db_log.ldf) з каталогу DB у каталог C:\Program Files(x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data.
· Запустити SQL Server, використавши додаток Configuration Manager.
Після виконання вище наведених дій SQL-сервер автоматично розпочне обслуговувати базу даних системи
7.1.2 Інсталяція клієнтських програм
Процес інсталяції для всіх класів користувачів є однаковим. Клієнтська програма встановлюються на окремий комп'ютер з локальною мережею або з виходом в Інтернет. Програма не потребує особливої інсталяції на комп'ютер. Для роботи з нею достатньо скопіювати каталог на довільний фізичний диск комп'ютера.
7.2 Інструкція використання
Для того щоб запустити програму потрібно на робочому столі натиснути подвійним кліком на іконку будь-якого браузера в системі, наприклад, Opera:
Наступним кроком потрібно вести в стрічку браузера наступну адресу:
· Режим інтернет-користувача.
Після переходу по попередньому посиланню користувач отримає наступне вікно (рис 7.1):
Рис 7.1. Режим інтернет-користувача
В даному вікні інтернет-користувач може пройти процедуру реєстрації, логування, переглянути новини, профільтрувати новини за категоріями, зробити пошук за назвою, категорією новини, або ж за автором.
До функцій перегляду новин та коментарів, пошуку мають доступ не залоговані користувачі (рис. 7.2-3):
Рис. 7.2. Сторінка новини
Рис. 7.3. Сторінка розширеного пошуку
Після логування користувача відкриваються нові можливості.
Рис. 7.4. Вхід в особистий профіль
Якщо користувач ще не має особистого запису його можна створити за допомогою кнопки реєстрація. Що переведе користувача на сторінку реєстрації (рис. 7.5):
Рис. 7.4. Сторінка рееєстрації
Після успішної реєстрації можна ввійти в систему використовуючи кнопку логування.
Після входу в систему відкриються наступні функції:
Створення та публікація новини
Для того, щоб створити новину, користувач повинен натиснути кнопку “Додати новину”, після чого користувач перейде на форму створення новини:
Рис 7.5. Форма створення новини
Якщо користувач володіє правами редактора або адміністратора - новина одразу опублікується, в іншому випадку - новина буде відправлена на модерацію.
· Коментування
Щоб залишити коментар, авторизованому користувачу достатньо обрати новину та натиснути на кнопку “Детальніше”. Після чого на відкритій сторінці знайти форму для коментування.
Рис. 7.6 Форма коментування
· Режим редактора
Для того, щоб потрапити в режим редактора потрібно ввести в стрічку браузера наступну адресу:
Після цього відкриється форма для логування редактора, куди потрібно ввести інформацію видану системним адміністратором
Рис. 7.7 Форма входу в адмінпанель
Після успішної операції логування користувачеві-редактору відобразиться форма (рис. 7.8)
Рис. 7.8. Режим редактора
Для редагування новин, користувач повинен натиснути кнопку “Редагувати новини”, після цього користувачу виведеться наступна форма (рис. 7.9):
Рис. 7.9. Меню редагування новин
Для редагування інформації про книжку потрібно натиснути на заголовок новини, що нас цікавить, після чого відобразиться наступна форма, яку потрібно заповнити (рис. 7.10):
Рис. 7.10. Редагування новини
Користувач редактор також може редагувати відгуки про книжки через свій інтерфейс для цього потрібно перейти на Головну сторінку адмінпанелі, та натиснути “Редагувати коментарі”, після чого користувача переведе на форму, що забражена на рис. 7.11.
Рис. 7.11. Меню редагування коментарів
ВИСНОВКИ
В результаті курсової роботи була розроблена система публікації та перегляду новин на веб-платформі “LvivNews”. Були реалізовані такі функції: створення, публікація, коментування, редагування новин; реєстрація та авторизація користувачів.
Було реалізовано поділ користувачів на групи, з різними правами допуску, а саме: інтернет-користувачі, редактори та адміністратор.
Система могла б стати зручною платформою для починаючих журналістів та цікавим ресурсом для звичайних інтернет-користувачів.
ВИКОРИСТАНА ЛІТЕРАТУРА
1. Ахо А., Хопкрофт Д., Ульман Д. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979, - 336с.
2. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. - М.: Издательский дом «Вильямс», 2001, - 384с.
3. Бетли Дж. Жемчужины программирования. - СПб.: Питер, 2002, - 272с.
4. Нейлор К., Как построить свою экспертную систему / Пер. с англ. - М.: Энергоатомиздат, 1991. - 285 с.
5. Ричік С., Шаповалова С. Основи проектування інтелектуальних систем: Навч. посібник. - К.: ІЗМН, 2000. - 80 с.
6. Стивенс Р. Готовые алгоритмы на Visual Basic - М.: Издательский дом «Вильямс», 2000, - 384с.
ДОДАТОК
Лістинг програми
<?php
class Users {
var $email;
var $name;
var $password;
var $root;
var $userId;
function login($mail, $pass) {
if($_SERVER["REQUEST_METHOD"] == "POST") {
$sql = "SELECT id FROM admin WHERE email = '$mail' and password = '$pass'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
if($count == 1) {
$_SESSION['login_user'] = $mail;
header("location: index.php");
}else {
$error = "Логін або пароль не вірний";
}
}
function register(){
$db = mysqli_connect('localhost', 'root', '', 'registration');
if (isset($_POST['reg_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
if (empty($email)) { array_push($errors, "Необхідний емейл"); }
if (empty($password_1)) { array_push($errors, "Необхідний пароль"); }
if ($password_1 != $password_2) {
array_push($errors, "Паролі не співпадають");
}
$user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);
if ($user) {
if ($user['username'] === $username) {
array_push($errors, "Користувач існує");
}
if ($user['email'] === $email) {
array_push($errors, "Пошта зайнята");
}
}
if (count($errors) == 0) {
$password = md5($password_1);
$query = "INSERT INTO users (username, email, password)
VALUES('$username', '$email', '$password')";
mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "Ви увійшли";
header('location: index.php');
}
}
}
class Editors extends Users{
function deletePublication($publicationId){
$query = "DELETE * FROM publications WHERE publicationId='$publicationId'";
}
function editPublication($publicationId, $text){
$query ="UPDATE text SET text='$text' WHERE publicationId='$publicationId'";
}
function editPublication($publicationId, $text, $author){
$query ="UPDATE fullText SET text='$fullText' WHERE publicationId='$publicationId'";
$query ="UPDATE author SET author='$author' WHERE publicationId='$publicationId'";
}
function userBlock($userId){
$query ="UPDATE status SET status='$blocked' WHERE userId='$userId'";
}
}
class Administrators extends Editors{
function addUser($publicationId){
$db = mysqli_connect('localhost', 'root', '', 'registration');
if (isset($_POST['reg_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
if (empty($email)) { array_push($errors, "Необхідний емейл"); }
if (empty($password_1)) { array_push($errors, "Необхідний пароль"); }
if ($password_1 != $password_2) {
array_push($errors, "Паролі не співпадають");
}
$user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);
if ($user) {
if ($user['username'] === $username) {
array_push($errors, "Користувач існує");
}
if ($user['email'] === $email) {
array_push($errors, "Пошта зайнята");
}
}
if (count($errors) == 0) {
$password = md5($password_1);
$query = "INSERT INTO users (username, email, password)
VALUES('$username', '$email', '$password')";
mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "Ви увійшли";
header('location: index.php');
}
}
function deleteUser($userId){
$query = "DELETE * FROM users WHERE userId='$userId'";
}
function deleteComment($commentId){
$query = "DELETE * FROM comments WHERE commentId='$commentId'";
}
}
class Comments{
var $author;
var $commentId;
var $date;
var $text;
function deleteComment($commentId){
$query = "DELETE * FROM comments WHERE commentId='$commentId'";
}
function editComment($commentId, $text){
$query = "UPDATE text SET text='$text' WHERE commentId='$commentId'";
}
}
interface Publications{
var $id;
var $author;
var $category;
var $date;
var $fullText;
var $shortText;
public function post();
}
class WorldNews implements Publications{
var $source;
function post(){
$textAdd = "<input type=\"checkbox\" name=\"allow_comm\" id=\"allow_comm\" value=\"1\" checked=\"checked\" /> <label for=\"allow_comm\">" . $lang['add_al_com'] . "</label>";
if( $user_group[$member_id['user_group']]['allow_main'] ) $textAdd .= " <input type=\"checkbox\" name=\"allow_main\" id=\"allow_main\" value=\"1\" checked=\"checked\" /> <label for=\"allow_main\">" . $lang['add_al_m'] . "</label>";
$textAdd .= "<br /><input type=\"checkbox\" name=\"approve\" id=\"approve\" value=\"1\" checked=\"checked\" /> <label for=\"approve\">{$lang['add_al_ap']}</label><br /><input type=\"checkbox\" name=\"allow_rating\" id=\"allow_rating\" value=\"1\" checked=\"checked\" /> <label for=\"allow_rating\">{$lang['addnews_allow_rate']}</label>";
if( $user_group[$member_id['user_group']]['allow_fixed'] ) $textAdd .= "<br /><input type=\"checkbox\" name=\"news_fixed\" id=\"news_fixed\" value=\"1\" /> <label for=\"news_fixed\">{$lang['add_al_fix']}</label>";
}
}
class Events implements Publications{
var $facebookLink;
function post(){
$textAdd = "<input type=\"checkbox\" name=\"allow_comm\" id=\"allow_comm\" value=\"1\" checked=\"checked\" /> <label for=\"allow_comm\">" . $lang['add_al_com'] . "</label>";
if( $user_group[$member_id['user_group']]['allow_main'] ) $textAdd .= " <input type=\"checkbox\" name=\"allow_main\" id=\"allow_main\" value=\"1\" checked=\"checked\" /> <label for=\"allow_main\">" . $lang['add_al_m'] . "</label>";
}
}
?>
Размещено на Allbest.ru
Подобные документы
Розробка системи "Travel" для спрощення роботи працівників туристичного агентства і забезпечення максимально комфорту в сфері обслуговування клієнтів. Тестування програми методами чорної та прозорої скриньки. Інсталяція системи та інструкція використання.
курсовая работа [1,2 M], добавлен 11.04.2015Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.
курсовая работа [4,3 M], добавлен 05.12.2012Опис актуальності, цілей, завдань розроблюваного ПЗ, його призначення та галузь застосування. Огляд програмних продуктів, що мають аналогічні цілі й призначення. Розробка інтерфейсу ПО й короткий опис основних елементів керування грою у п`ятнашки.
курсовая работа [806,3 K], добавлен 20.10.2012Розробка інтерфейсу користувача системи. Розробка підсистеми планування ремонтно-профілактичних робіт для відділу головного інженера на ВАТ "Макаронна фабрика". Розробка логічної і фізичної моделей бази даних. Опис реалізованих функцій системи.
дипломная работа [103,0 K], добавлен 14.02.2014Загальний опис гри "Тетріс", огляд основних об’єктів та клавіш управління грою. Розробка інтерфейсу користувача та основних модулів. Алгоритм ігрового поля, блок-схема алгоритму перевірки можливості зміни розташування фігури та переміщення фігури вниз.
курсовая работа [1,9 M], добавлен 18.02.2013Розробка та проектування інтерфейсу користувача у середовищі Microsoft Visual Studio 2010 з використання Visaul C#. Введення, додавання, вилучення даних. Пошук і фільтрація потрібних записів за допомогою запитів. Реалізація валідації, обробка виключень.
курсовая работа [1,5 M], добавлен 29.03.2017Аналіз інформаційних систем, етапів обробки інформації, Web-програмування. Огляд засобів ідентифікації користувача в САТДН. Розробка інформаційної і адміністративної підсистем для системи автоматизованого тестування для дистанційного навчання (САТДН).
дипломная работа [10,3 M], добавлен 21.04.2014Медична інформаційно-аналітична система "Емсімед". Аналіз програмних, апаратних засобів. Архітектурне проектування автоматизованої системи обліку медичних інструментів. Опис структурної та логічної схеми. Вибір мови програмування, керівництво користувача.
дипломная работа [2,9 M], добавлен 26.07.2013Опис великої інтегральної схеми пристрою множення. Аналіз розв’язків поставленої задачі, розробка принципової електричної схеми, логічної моделі і тесту перевірки, розрахунок швидкодії. Тестування з використанням пакету прикладних програм OrCAD 9.1.
курсовая работа [5,0 M], добавлен 22.02.2010Створення програми для виконання найпростіших функцій календаря за допомогою Borland DELPHI 2007. Аналіз процесу обробки інформації і побудова функціональних діаграм. Розробка інтерфейсу користувача, форм вводу-виводу інформації, основних алгоритмів.
курсовая работа [1,3 M], добавлен 01.06.2013