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. 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 Neregistrovaný uživatel Smazání objednávky smaž objednávku Přidání FTP přidej FTP do seznamu FTP v hostinogovém programu uživatele Smazání FTP smazej FTP ze seznamu FTP v hostingovém programu uživatele Přidání databáze přidej databázi do seznamu databází v hostinogovém programu uživatele Smazání databáze smazej databázi ze seznamu databází v hostingovém programu uživatele Přidání e-mailu přidej e-mail do seznamu e-mailů v hostinogovém programu uživatele Smazání e-mailu smazej e-mail ze seznamu e-mailů v
hostingovém programu uživatele Přidání zakázaného e- mailu přidej zakázaný e-mail do seznamu zakázaných e-mailů v hostinogovém programu uživatele Smazání zakázaného e- mailu 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 Smazání aliasu k e-mailu smazej alias ke konretnímu vytvořenému e- mailu Přidání cronu Smazání cronu Přidání nastavení adresáře Smazání nastavení adresáře Přidání hesla nastavení adresáře Smazání hesla nastavení adresáře Přidání povolené nebo zakázané IP nastavení adresáře Smazání povolené nebo zakázané IP nastavení adresáře Vložení dotazu na podporu Odpověd na dotazu na podporu Smazání dotazu nebo odpovědi na podporu přidej cron do seznamu cronů v hostinogovém programu uživatele smazej cron ze seznamu cronů v hostingovém programu uživatele přidej nastavení adresáře do seznamu nastavení adresářů v hostingovém programu uživatele smazej nastavení adresáře ze seznamu nastavení adresářů v hostingovém programu uživatele přidej heslo ke konkretnimu nastavení adresáře smazej heslo z konkrétního nastavení adresáře přidej povolené nebo zakázané IP ke konkretnimu nastavení adresáře smazej povolené nebo zakázané IP z konkrétního nastavení adresáře přidej dotaz přidej odpověd smazej dotaz Uživatel Správa serverů přidej nebo odeber server Správa domén přidej nebo odeber doménu Správa hostingových programů přidej nebo odeber hostingový program Správa faq přidej nebo odeber faq
Seznam domén uživatele vypiš všechny domény uživatele Nastavení domény Seznam dotazů vypiš ftp, databáze, e-maily, crony k dané doméně vypiš všechny dotazy a případne odpovědi k danému uživateli Seznam serverů vypiš všechny servery Seznam domén vypiš všechny domény Seznam hostingových programů vypiš všechny hostingové programy Seznam uživatelů vypiš všechny uživatele Seznam adresářu Kontextový diagram vypiš všechny adresáře přiřazené danému hostingovému programu uživatele, Uživatel
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 Datový typ Klíč NULL INDEX I O Popis id int( Y N Y primární klíč title ip_address N N N N N N state int(2) N N N stav serveru max_domain s int( N N N Domains Datový typ Klíč NULL INDEX I O Popis id int( Y N Y primární klíč server_id int( Y N Y user_id int( Y N Y title date_registratio n date N N N date_exiration date N N N hosting_id int( Y N N dns1 dns2
Hosting programs Datový typ Klíč NULL INDEX I O Popis id int( Y N Y primární klíč max_ftps int( N N N max_dbs int( N N N max_emails int( N N N price decimal(10, 2) N N N Users Datový typ Klíč NULL INDEX I O Popis id int( Y N Y primární klíč surname firstname street city postcode firm_name ico dic varchar(10 )
FTPS Datový typ Klíč NUL L INDEX IO Popis id int( Y N Y primární klíč domain_id int( Y N Y login password path Databases Datový typ Kl íč NU LL INDE X IO Popis id int( Y N Y primární klíč domain_id int( Y N Y name N N N login N N N password N N N codepath N N N DEFAULT 'utf8'
Emails Datový typ Klíč NULL INDE X I O Popis id int( Y N Y primární klíč domain_id int( Y N Y address password resend_to N N N Emails_disabled Datový typ Klíč NULL INDEX IO Popis id int( Y N Y primární klíč domain_id int( Y N Y address 5 Email_aliases Datový typ Klíč NUL L INDEX IO Popis id int( Y N Y primární klíč domain_id int( Y N Y address 5 alias_id int( Y N Y
Cron Datový typ Klí č NUL L INDEX IO Popis id int( Y N Y primární klíč domain_id int( Y N Y year int(4) month int(2) day int(2) hour int(2) min int(2) email script result_email Paths Datový typ Kl íč NU LL INDE X IO Popis id int( Y N Y primární klíč domain_id int( Y N Y path php_enabled int(1) ssl_required int(1) list_allowed int(1) DEFAULT '1' DEFAULT '0' DEFAULT '0' password_require d int(1) DEFAULT '0'
Path_passwords Datový typ Klíč NULL INDEX IO Popis id int( Y N Y primární klíč web_id int( Y N Y password N N N Path_ips Datový typ Kl íč NU LL INDE X IO Popis id int( Y N Y primární klíč web_id int( Y N Y ip_address varchar(1 0) state int(1) DEFAULT '1' 0-access denied 1-access allowed Messages Datový typ Klíč NULL INDEX IO Popis id int( Y N Y primární klíč user_id int( Y N Y admin_id int( Y N Y title message mediumtex t N N N from_user int(1) 0-from user 1-to user parent_id int( Y Y Y
FAQs Datový typ Klíč NULL INDEX IO Popis id int( Y N Y primární klíč title text mediumtex t N N N Orders Datový typ Klíč NUL L INDEX IO Popis id int( Y N Y primární klíč user_id int( Y N Y invoice_id var_num N N N N N N Order_items Datový typ Klíč NULL INDEX IO Popis id int( Y N Y primární klíč order_id int( Y N Y title 5 ) title z tabulky Hosting programs years int(1) N N N price decimal(10, 2) N N N 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í Registrace Přihlásit Registrovat TEXT INFO Kontakt Podpora Administrace Podmínky
Webhosting Registrace domény:. Kategorie: INFO Email: Jméno: Příjmení: Město: 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