VYSOKÁ ŠKOLA BÁŇSKÁ – TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY
Informační systém webhostingu semestrální projekt
Analýza Číslo skupiny:
4
Členové:
Filip Bartman Jakub Vaněk Jan Šrámek
Implementace
Zadání Informační systém webhostingu bude sloužit pro správu webhostingových účtů jak pro administrátory hostingu, tak pro jeho klienty. Administrační panel pro klienty bude zahrnovat jak obvyklá nastavení ftp účtů, účtů k databázím MySQL, nebo e-mailu, tak také detailní nastavení jednotlivých adresářů hostingu. Mimo to systém obsahuje také jednoduchou zprávu objednávek. Administrátor webhostingu navíc může pracovat s jednotlivými objednávkami a také spravovat přiřazení domén k fyzyckým serverům a spravovat údaje ohledně jednotlivých domén. Součástí systému bude uživatelská podpora, kdy uživatel bude moct pomocí WWW rozhraní zadat dotaz na podporu a odpověď se mu objeví ve WWW rozhraní.
Funkční požadavky Proč nový IS V současné době existuje více administračních panelů pro ovládání webhostingových serverů, ale žádný plně nevyhovuje mým potřebám, zvláště proto, že si zavádějí do konfiguračních souborů vlastní strukturu.
K čemu má IS sloužit IS bude sloužit k ovládání webhostingového serveru jak pro klienty, tak pro administátora.
KDO bude s IS pracovat S IS budou pracovat potenciální klienti, kteří vyplňují objednávky. Po zaplacení faktury se z nich stanou klienti. Na opačné straně budou se systémem pracovat admistrátoři webhostingu.
VSTUPY do systému Veřejná část Objednávka-jméno,přijmení, adresa(ulice, město, psč), heslo, ičo, dič, název firmy FTP-login,hesto,cesta Databáze-jméno databáze, login, heslo, kódování E-mail - adresa, heslo, případně adresa pro přeposílání e-mailů Zakázané adresy – e-mailová adresa Aliasy e-mailu – emailová adresa, id aliasu emailu CRON – rok, měsíc, den, hodina, minuta, jméno skriptu, e-mail, e-mailová adresa pro odeslání stavového e-mailu Nastavení adresářů – cesta k adresáři, PHP povoleno, vyžadováno SSL, vylistování adresáře povoleno, vyžadováno heslo, IP adresy v povoleným přístupem, IP adresy se zakázaným přístupem, heslo Dotaz na podporu – titulek, zpráva
Administrace Odpověď z podpory - titulek, zpráva, id otázky na kterou se odpovídá Správa serverů – jméno, IP adresa, stav, maximální počet domén Správa domén - server, klient, název, 1 DNS server, 2 DNS server, hostigový program Správa hostingových programů – název, maximální počet ftp účtů, maximální počet databází, maximální počet e-mailových účtů, cena. Správa uživatelů – příjmení, jméno, ulice, město, PSČ, jméno firmy, IČO, DIČ Správa ftp účtů – doména, login, heslo, cesta Správa databází – doména, jméno databáze, login, heslo, kódování
Správa e-mailových účtů – doména, e-mailová adresa, heslo, přeposílat e-maily na Správa zakázaných e-mailů – doména, e-mailová adresa Správa aliasů – doména, e-mailová adresa, e-mailová adresa aliasu Správa cronu – doména, rok, měsíc, den, hodina, minuta, e-mail, cesta ke skriptu, e-mail pro zaslání výsledků FAQ – titulek, odpověď
VÝSTUPY ze systému Veřejná část Moje domény – seznam domén Nastavení domény – seznam ftp účtů, seznam databází, seznam e-mailových adres, seznam cron úloh. Moje dotazy – titulek Odpověďi na mé dotazy – jméno administrátora, titulek
Administrace Seznam serverů – název serveru, ip adresa, stav serveru, maximální počet domén Seznam domén – server, uživatel, název, datum registrace, datum expirace, hosting, 1 DNS server, 2 DNS server Seznam hostingových programů – název, maximum databází, ftp účtů, e-mailových účtů, cena Seznam uživatelů – příjmení, jméno, adresa(ulice, město, PSČ), jméno firmy, IČO, DIČ. Správa domény – seznam ftp účtů, seznam e-mailů, seznam databází, seznam cron skriptů Seznam adresářů – adresář, PHP povoleno, vyžadováno SSL, povoleno vylistování adresáře, vyžadováno heslo, povolené IP adresy, zakázané IP adresy. Správa uživatelských dotazů – uživatel, titulek
Správa FAQ – titulek
Události a reakce systému Událost
Reakce
Aktér
Vytvoření objednávky
vytvoř objednávku, zaznamenej hostingový program, u neregistrovaného uživatele proved jeho registraci
Uživatel, Neregistrovaný uživatel
Smazání objednávky
smaž objednávku
Administrátor
Přidání FTP
přidej FTP do seznamu FTP v hostinogovém programu uživatele
Uživatel, Administrátor
Smazání FTP
smazej FTP ze seznamu FTP v hostingovém programu uživatele
Uživatel, Administrátor
Přidání databáze
přidej databázi do seznamu databází v hostinogovém programu uživatele
Uživatel, Administrátor
Smazání databáze
smazej databázi ze seznamu databází v hostingovém programu uživatele
Uživatel, Administrátor
Přidání e-mailu
přidej e-mail do seznamu e-mailů v hostinogovém programu uživatele
Uživatel, Administrátor
Smazání e-mailu
smazej e-mail ze seznamu e-mailů v
Uživatel,
hostingovém programu uživatele
Administrátor
Přidání zakázaného emailu
přidej zakázaný e-mail do seznamu zakázaných Uživatel, e-mailů v hostinogovém programu uživatele Administrátor
Smazání zakázaného emailu
smazej zakázaný e-mail ze seznamu zakázaných e-mailů v hostinogovém programu uživatele
Přidání aliasu k e-mailu
přidej alias ke konretnímu vytvořenému e-mailu Uživatel, Administrátor
Smazání aliasu k e-mailu
smazej alias ke konretnímu vytvořenému emailu
Uživatel, Administrátor
Přidání cronu
přidej cron do seznamu cronů v hostinogovém programu uživatele
Uživatel, Administrátor
Smazání cronu
smazej cron ze seznamu cronů v hostingovém programu uživatele
Uživatel, Administrátor
Přidání nastavení adresáře
přidej nastavení adresáře do seznamu nastavení adresářů v hostingovém programu uživatele
Uživatel, Administrátor
Smazání nastavení adresáře
smazej nastavení adresáře ze seznamu nastavení adresářů v hostingovém programu uživatele
Uživatel, Administrátor
Přidání hesla nastavení adresáře
přidej heslo ke konkretnimu nastavení adresáře Uživatel, Administrátor
Uživatel, Administrátor
Smazání hesla nastavení smazej heslo z konkrétního nastavení adresáře Uživatel, adresáře Administrátor Přidání povolené nebo zakázané IP nastavení adresáře
přidej povolené nebo zakázané IP ke konkretnimu nastavení adresáře
Uživatel, Administrátor
Smazání povolené nebo zakázané IP nastavení adresáře
smazej povolené nebo zakázané IP z konkrétního nastavení adresáře
Uživatel, Administrátor
Vložení dotazu na podporu
přidej dotaz
Uživatel
Odpověd na dotazu na podporu
přidej odpověd
Administrátor
Smazání dotazu nebo odpovědi na podporu
smazej dotaz
Administrátor
Správa serverů
přidej nebo odeber server
Administrátor
Správa domén
přidej nebo odeber doménu
Administrátor
Správa hostingových programů
přidej nebo odeber hostingový program
Administrátor
Správa faq
přidej nebo odeber faq
Administrátor
Seznam domén uživatele vypiš všechny domény uživatele
Uživatel, Administrátor
Nastavení domény
vypiš ftp, databáze, e-maily, crony k dané doméně
Uživatel, Administrátor
Seznam dotazů
vypiš všechny dotazy a případne odpovědi k danému uživateli
Uživatel, Administrátor
Seznam serverů
vypiš všechny servery
Administrátor
Seznam domén
vypiš všechny domény
Administrátor
Seznam hostingových programů
vypiš všechny hostingové programy
Administrátor
Seznam uživatelů
vypiš všechny uživatele
Administrátor
Seznam adresářu
vypiš všechny adresáře přiřazené danému hostingovému programu uživatele
Administrátor, Uživatel
Kontextový diagram
Use Case
Analýza Datová analýza Lineární zápis typů entit a typů vazeb Seznam entit Servers(id, title, ip_address, state, max_domains) Domains(id, server_id, user_id, title, date_registration, date_expiration, hosting_id, dns1, dns2) Hosting_programs(id, max_ftps, max_dbs, max_emails, price) Users(id, surname, firstname, street, city, postcode, firm_name, ico, dic) FTPS(id, domain_id, login, password, path)
Databases(id, domain_id, name, login, password, codepath) Emails(id, domain_id, address, password, resend_to) Emails_disabled(id, domain_id, address) Emails_aliases(id, domain_id, address, alias_id) Cron(id, domain_id, year, month, day, hour, min, email, script, result_email) Paths(id, domain_id, path, php_enabled, ssl_required, list_allowed, password_required) Path_passwords(id, web_id, password) Path_ips(id, web_id, ip_address, state) Messages(id, user_id, admin_id, title, message, from_user, parent_id) FAQs(id, title, text) Orders(id, user_id, invoice_id, var_num) Order_items(id, order_id, title, years, price)
Vztahy Severs, Domains – 1:N Users, Domains – 1:N Hostimg_programs, Domains – 1:N Domains, FTPS - 1:N Domains, Databases - 1:N Domains, Emails – 1:N Domains, Emails_disabled – 1:N Domains, Emails_aliases – 1:N Emails, Emails_aliases – 1:N Domains, Cron – 1:N Domains, Paths – 1:N Paths, Path_password - 1:N Path, Path_ips – 1:N Users, Orders – 1:N Order, Order_items – 1:N User, Messages – 1:N Messages, Messages – 1:1
ER diagram
Datový slovník
Servers Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
title
varchar(25 5)
N
N
N
ip_address
varchar(25 5)
N
N
N
state
int(2)
N
N
N
max_domain s
int(5)
N
N
N
I Popis O primární klíč
stav serveru
Domains Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
server_id
int(5)
Y
N
Y
user_id
int(5)
Y
N
Y
title
varchar(25 5)
N
N
Y
date_registratio n
date
N
N
N
date_exiration
date
N
N
N
hosting_id
int(5)
Y
N
N
dns1
varchar(25 5)
N
N
Y
dns2
varchar(25 5)
N
N
Y
I Popis O primární klíč
Hosting programs Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
max_ftps
int(5)
N
N
N
max_dbs
int(5)
N
N
N
max_emails
int(5)
N
N
N
price
decimal(10, 2)
N
N
N
I Popis O primární klíč
Users Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
surname
varchar(25 5)
N
N
Y
firstname
varchar(25 5)
N
N
Y
street
varchar(25 5)
N
N
Y
city
varchar(25 5)
N
N
Y
postcode
varchar(10 )
N
N
Y
firm_name
varchar(25 5)
N
N
Y
ico
varchar(25 5)
N
N
Y
dic
varchar(25 5)
N
N
Y
I Popis O primární klíč
FTPS Název atributu
Datový typ
Klíč
NUL L
INDEX
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
login
varchar(25 5)
N
N
Y
password
varchar(25 5)
N
N
Y
path
varchar(25 5)
N
N
Y
Název atributu
Datový typ
Kl íč
NU LL
INDE X
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
name
varchar(25 5)
N
N
N
login
varchar(25 5)
N
N
N
password
varchar(25 5)
N
N
N
codepath
varchar(25 5)
N
N
N
IO
Popis primární klíč
Databases IO
Popis primární klíč
DEFAULT 'utf8'
Emails Název atributu
Datový typ
Klíč
NULL
INDE X
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
address
varchar(25 5)
N
N
Y
password
varchar(25 5)
N
N
N
resend_to
varchar(25 5)
N
N
Y
I Popis O primární klíč
Emails_disabled Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
address
varchar(255
N
N
Y
Název atributu
Datový typ
Klíč
NUL L
INDEX
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
address
varchar(255
N
N
Y
alias_id
int(5)
Y
N
Y
IO
Popis primární klíč
Email_aliases IO
Popis primární klíč
Cron Název atributu
Datový typ
Klí č
NUL L
INDEX
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
year
int(4)
N
N
Y
month
int(2)
N
N
Y
day
int(2)
N
N
Y
hour
int(2)
N
N
Y
min
int(2)
N
N
Y
email
varchar(255)
N
N
Y
script
varchar(255)
N
N
Y
result_email
varchar(255)
N
N
Y
IO
Popis primární klíč
Paths Název atributu
Datový typ
Kl íč
NU LL
INDE X
id
int(5)
Y
N
Y
domain_id
int(5)
Y
N
Y
path
varchar(25 5)
N
N
Y
php_enabled
int(1)
N
N
Y
DEFAULT '1'
ssl_required
int(1)
N
N
Y
DEFAULT '0'
list_allowed
int(1)
N
N
Y
DEFAULT '0'
password_require d
int(1)
N
N
Y
DEFAULT '0'
IO
Popis primární klíč
Path_passwords Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
web_id
int(5)
Y
N
Y
password
varchar(25 5)
N
N
N
IO
Popis primární klíč
Path_ips Název atributu
Datový typ
Kl íč
NU LL
INDE X
id
int(5)
Y
N
Y
web_id
int(5)
Y
N
Y
ip_address
varchar(1 0)
N
N
Y
state
int(1)
N
N
Y
IO
Popis primární klíč
DEFAULT '1'
0-access denied 1-access allowed
Messages Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
user_id
int(5)
Y
N
Y
admin_id
int(5)
Y
N
Y
title
varchar(25 5)
N
N
Y
message
mediumtex t
N
N
N
from_user
int(1)
N
N
Y
parent_id
int(5)
Y
Y
Y
IO
Popis primární klíč
0-from user 1-to user
FAQs Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
title
varchar(25 5)
N
N
Y
text
mediumtex t
N
N
N
Název atributu
Datový typ
Klíč
NUL L
INDEX
id
int(5)
Y
N
Y
user_id
int(5)
Y
N
Y
invoice_id
varchar(25 5)
N
N
N
var_num
varchar(25 5)
N
N
N
IO
Popis primární klíč
Orders IO
Popis primární klíč
Order_items Název atributu
Datový typ
Klíč
NULL
INDEX
id
int(5)
Y
N
Y
order_id
int(5)
Y
N
Y
title
varchar(255 )
N
N
Y
years
int(1)
N
N
N
price
decimal(10, 2)
N
N
N
IO Popis primární klíč
title z tabulky Hosting programs
price z tabulky Hosting programs
Funkční analýza Kontextový diagram
DF diagramy
Minispecifikace Objednávka 1. Načti údaje s tabulky hosting_programs 2. Zobraz formulář pro objednávku 3. Vlož řádek do tabulky users 4. Ulož si do proměnné p.user_id id vloženého uživatele 5. Vlož nový řádek to tabulky orders s hodnotami user_id=p.user_id, invoice_id nastav na MAX(invoice_id)+1 6. Zkopíruj do tabulky order_items údaje z tabulky hosting_programs, kde programs.id bude hodnota z p.hosting_program_id. 7. Ulož do tabulky domains hodnoty title=p.domain, user_id=p.user_id, hosting_id=p.hosting_program_id a server_id nastav na -1. 8. Zobraz informace o stavu uložení objednávky Přidat e-mail 1 Zobraz formulář na přidání e-mailu 2 Pokud p.is_disabled=1 2.1
Vlož hodnotu address=p.address jako součást nového řádku do tabulky p.emails_disabled a domain_id=p.domain_id
3 Jinak pokud p.is_alias=1 3.1
Vlož hodnotu address=p.address jakou součást nového řádku to tabulky p.emails_aliases a jako alias_id nastav hodnotu z p.alias_id. Jako domain_id=p.domain_id
4 Jinak vlož nový řádek do tabulky emails s údaji z formuláře 5 Zobraz informaci o stavu uložení e-mailu.
Zobrazit adresáře 1. Načti z tabulky paths, path_passewords a path_ips údaje kde paths.domain_id=p.domain_id. Tabulky spoj podle paths.id=path_passwords.web_id a path.id=path_ips.web_id 2. Zobraz údaje uživateli v tabulce
Uložit adresáře 1 Vlož nový řádek do tabulky paths a nastav paths.domain_id=p.domain_id 2 Ulož paths.id do p.web_id 3 Pokud p.ip=1 3.1
Vlož nový řádek do tabulky paths_ips, kde path_ips.web_id=p.web_id. Zbytek vyplň podle hodnot ve formuláři
4 Pokud p.password_required=1 4.1
Vlož nový řádek to tabulky path_passwords, kde path_passwords.web_id=p.web id a path_passwords.password=p.password
5 Zobraz zprávu o stavu uživateli
Časová analýza
Uživatelské rozhraní
Webhosting Přihlášení
Přihlásit
Registrace Registrovat
TEXT
INFO
Kontakt
Podpora
Administrace
Podmínky
Webhosting Registrace
Název domény:
.
Kategorie:
INFO
Email: Jméno: Příjmení: Město: Název firmy: Ičo:
Ulice: Dič:
Potvrďte
Kontakt
Podpora
Administrace
Podmínky
Webhosting Podpora
Dotaz:
INFO
Seznam domén:
Potvrďte
Kontakt
Podpora
Administrac e
Podmínky