Програма "Софтуерни технологии в интернет" на тема уеб система за проверка на кредитоискатели Дипломант: Георги Желев Калчев



страница2/4
Дата27.09.2016
Размер0.62 Mb.
#10989
ТипПрограма
1   2   3   4

Проектиране на системата
Проектиране на Базата Данни[11]

Системата пряко използва две база данни и косвено чрез сървисите, които вика – повече от 20. Системата основно ползва базата с име „Customer22_QA” (поради което това е базата на която ще обърна внимание в дипломната работа), където е реализирана сигурността и запис на транзакциите от извиканите сървиси. Това е базата на която ще обърна внимание в дипломната работа.

Тази база данни е правена на Ms SQL, като тя се състои от 16 таблици, като 14 са свързани и 1 самостоятелна. Тази база се използва от системата за записване на транзакциите от съответните извикани сървиси, за да може в последствие да се изведе отчет с активността на съответните потребители и съответно да се формира един вид история на това което се е случвало в системата.

Може би тук е мястото да накратко споменем начина на определяне на правата на потребителите в системата, както и нейната организация. Както се вижда от фиг.3.1 всеки “User” има различни роли, които от своя страна включват различни права. Това са правата показващи вида на потребителя, а не до кой страници има достъп – например потребител с право администратор за дадена компания може да менажира потребителите на тази компания, да достъпва предоставяните услуги както през „уеб системата”, така и директно чрез извикване на сървисите, докато потребител с права само за „уеб достъп” може само да достигне и разглежда „уеб системата” и не може нито да менажира потребителите нито да стартира директно сървисите. От друга страна всеки потребител принадлежи към дадена компания или съответно има собствен „договор”. Като съответно всяка компания си е платила до достъп на точно определени „страници” и съответно определени „артикули” в тях. Условието тук е, че ако потребителя принадлежи към дадена компания, неговите лични договори не могат да надвишават определените „страници” и съответно определени „артикули” договорени от техните компании. Това правило важи и при йерархията на компаниите, т.е. ако си дъщерна компания на друга регистрирана в системата, не можеш да имаш достъп до повече артикул и страници от родителската такава. Ето сторнатата процедура, как се взимат тези страници:


-- =============================================

-- Author: Jinx Web

-- Create date: 11/07/2007

-- Description: Return list of avaible Pages by Company

-- =============================================

ALTER PROCEDURE [dbo].[spw_CompanyPagesByCompany]


@CompanyID uniqueidentifier

--,@ContractID uniqueidentifier


AS

BEGIN


-- SET NOCOUNT ON added to prevent extra result sets from

-- interfering with SELECT statements.

SET NOCOUNT ON;

SELECT DISTINCT

[Pages].[PageID]

,[Pages].[PageName]

,[Pages].[IsCustom]

,[CompanyPages].[OrderNumber]

,CASE WHEN [CompanyPages].[CompanyID] is null THEN 0 ELSE 1 END as IsSelected

FROM [dbo].[Pages]

LEFT JOIN [dbo].[CompanyPages] ON ([Pages].[PageID] = [CompanyPages].[PageID]) And ([CompanyPages].[CompanyID] = @CompanyID)

WHERE


(Pages.Active <> 0)

--And


--([CompanyPages].[CompanyID] = @CompanyID)

ORDER BY [Pages].[PageName]--IsSelected DESC,[CompanyPages].[OrderNumber]


END

База данни: Customer22_QA



Фиг.3.1 Customer22_QA

Това е накратко как се използва тази база. За по-подробно обяснение на таблиците в следващите етапи са изброени таблиците и следва по-подробното описание на всяка една от тях.



Имената на таблиците са следните:

  • Companies

  • CompanyContracts

  • CompanyHierarchy

  • CompanyPages

  • Contracts

  • ContractServices

  • Items

  • PageItems

  • Pages

  • Rights

  • RoleRights

  • Roles

  • TransactionHistory

  • UserContracts

  • UserRoles

  • Users

Описание на Таблиците

    1. Companiesв тази таблица се пазят данните за компаниите в системата. Полетата в таблицата са:



        • CompanyID – уникален идентификатор за таблицата

        • CompanyNameиме на компанията

        • LogoFile – път до логото на фирмата

        • ParentID – външен ключ към същата таблица. Определя на коя компания е дъщерна текущата компания.

        • CreatedDate – дата когато компанията е създадена в базата.

        • UpdatedDate – последно обновяване на данните за компанията

        • GeoRadius – идентификационен номер на компанията по който може да се проследи къде се намира точно

        • Status – последен статус на компанията



    1. CompanyContractsтази таблица e връзка между компанията и нейните контракти. Тук се пазят данните за контрактите на компаниите в системата. Полетата в таблицата са:



        • CompanyID – уникален идентификатор за таблицата

        • ContractID– идентификатор на контракта принадлежащ на дадената компания



    1. CompanyHierarchyтази таблица е не задължителна. Единствената причина да се създаде подобна таблица е за да може да се определят нивата на йерархията на таблиците, т.е. на кое ниво е примерно дадената таблица. Полетата в таблицата са:

        • CompanyID – уникален идентификатор за таблицата

        • ParentID – уникален идентификатор за таблицата. Определя на коя компания е дъщерна текущата компания.

        • TreeLevel – На кое ниво в йерархия спрямо главната компания е текущата.




    1. CompanyPagesв тази таблица се пазят данните за страниците до които има достъп дадена компания в системата. Полетата в таблицата са:

        • CompanyID – уникален идентификатор за таблицата

        • PageIDуникален идентификатор

        • OrderNumber – във какъв ред да излизат табовете на страницата




    1. Contractsв тази таблица се пазят възможните договори които дадена компания или човек може да сключи. Полетата в таблицата са:

        • ContractID – уникален идентификатор за таблицата

        • Name – име на договора

        • ContractCode – вътрешен код на договора

        • Status – статус на договора.

        • QuizzerQuestionCount – колко въпроса да генерира уеб сървиса „Quizzer” според текущия контракт. Има такъв отдел в системата който е разгледан в следващата глава.

        • QuizzerMinToPass – минимално на колко въпроса трябва да е отговорил потребителя правилно за да се приеме, че е той а не друга личност.




    1. ContractServicesв тази таблица се определя даден контракт до кои „артикули”(продукти) има достъп Като на дадена страница или подсекция даден потребител няма достъп да дадените продукти, той няма да вижда страницата дори и да има достъп до нея или ще вижда само продуктите които ги има в тази таблица за дадения контракт. Полетата в таблицата са:

        • csID – уникален идентификатор за таблицата

        • ContractID – име на компанията

        • itemID

        • ProductID – идентификатор за връзка с таблици от други бази.

        • ProductCategory – определя от къде може да бъде извикан дадения продукт – например от уеб, от даден интерфейс или директно от уеб сървиса.




    1. Itemsв тази таблица се пазят данните за всичките „артикули” (продукти) в системата. Полетата в таблицата са:

        • itemID – уникален идентификатор за таблицата

        • Item – име на артикула което се показва и за име на секцията в системата

        • Descriptionописание на продукта

        • BillingCode – код по който се извършват отчитанията за кой продукт е извикван и се определят плащанията.




    1. PageItemsв тази таблица се пазят данните за компаниите в системата. Полетата в таблицата са:

        • PageID – уникален идентификатор за таблицата

        • ItemID – външен ключ към таблица “Items”

        • OrderNo – Ред във който да се подреждат продуктите на страницата

        • Active – определя дали дадения продукт е активен за тази страница. Ако не е то той няма да се показва на нея. По този начин се избягва изтриването на продуктите, като просто се деактивират.




    1. Pagesв тази таблица се пазят данните за всички страници в системата. Полетата в таблицата са:

        • PageID – уникален идентификатор за таблицата

        • PageName – име на страницата, което се погазва в менюто на системата

        • IsCustom – определя дали страницата е от тип специфична страница за дадена компания.

        • Active – определя дали дадената страница е активна. Ако не е то тя няма да се показва По този начин се избягва изтриването на временно ненужни страници, като просто се деактивират.




    1. Rightsв тази таблица се пазят възможните права в системата. Полетата в таблицата са:

        • RightID– уникален идентификатор за таблицата

        • RightName– име на даденото право.

        • Active– дали е активно даденото право.




    1. RoleRightsв тази таблица е връзката между ролите и правата. Полетата в таблицата са:

        • RoleID– външен ключ за таблицата

        • RightID– външен ключ за таблицата




    1. Rolesв тази таблица се пазят ролите в системата. Всяка роля обединява множество права. Полетата в таблицата са:

        • RoleID – уникален идентификатор за таблицата

        • RoleName – име на компанията

        • Active – определя дали ролята е активна и може ли да се използва в даден момент.




    1. TransactionHistoryв тази таблица се пазят данните за всички направени транзакции в системата. По нея се определя кои сървиси са викани и съответно се определят сметките на клиентите използващи системата. Полетата в таблицата са:

        • TransactionID – уникален идентификатор за таблицата

        • ContractCode – кода на договора на компанията.

        • UserAccount – потребителя който е използвал услугите на системата.

        • ItemID – кой сървис или продукт е използван.

        • StatusCode – статуса на транзакцията – дали е била успешна или не.

        • StatusMessage – ако има грешка тук се изписва цялостния текст

        • Criteria – Какви данни са били въведени за търсенето.

        • Memo – Допълнителна информация (свободен текст)

        • DTStamp– момент на извършването на транзакцията




    1. UserContractsв тази таблица се опива даден потребител към кои договори е включен. Полетата в таблицата са:

        • UserID– за кой потребител се отнасят договорите

        • ContractID– договорите прикачени към този потребител

        • Active– дали е активен дадения договор към този потребител за дадения момент

        • DTStamp– точния момент в който договорите на дадения потребител са променяни.




    1. UserRolesв тази таблица се пазят ролите които даден потребител притежава. Полетата в таблицата са:

        • UserID– за кой потребител се отнася

        • RoleID– ролята която е прикачена за потребителя с посочения идентификатор




    1. Usersв тази таблица се пазят данните за потребителите в системата. Полетата в таблицата са:

        • UserID – уникален идентификатор за таблицата

        • CompanyID – към коя компания принадлежи потребителя

        • UserAccount – потребителско име

        • Email – адреса на електронната поща на потребителя.

        • Password– парола на потребителя.

        • CreatedDate – дата когато потребителя е регистриран в базата.

        • UpdatedDate – последно обновяване на данните на потребителя

        • LastLoginDate– последно влизане в системата

        • LoginCount– колко пъти потребителя е влизал в системата

        • LoginFailCount– колко пъти потребителя е въвеждал грешни данни при опит за влизане в системата

        • Status– последен статус на потребителя

        • LastName– Фамилия на потребителя

        • FirstName– Първо име на потребителя

        • Telephone– Телефон на потребителя


Проектиране на входно-изходен интерфейс
Интерфейса на системата е първото впечатление което клиента вижда и до голяма степен от това зависи дали ще продължи напред. В случая тази система изисква основно функционалност тъй като това е целта е, но да не забравяме че хората които я ползват не са програмисти и те виждат основно интерфейса и освен добре подреден и функционален е добре и да е с приветлив дизайн.
В тази точка ще засегна функционалността на отделните компоненти на системата и техните интерфейси, като за нагледност ще бъдат приложени и снимки със съответните компоненти. Снимките на така наречените „страници със съдържание” ще бъдат разделени отделно входните данни и резултатите. Причината е да не се повтарят еднаквите части. Резултантните данни ще бъдат скривани тъй като са реални данни за съществуващи хора.
Статична част на системата

Статичните части в системата, надявам се това да е точния превод, представляват части от страницата които са еднакви в голям брой от страниците на системата. Тази роля в ASP.NET се изпълнява от така наречените “основни страници (master pages)”, които са основата на така наречените „страници със съдържанието (content pages)”. В главната страница влиза менюто обвивката на входните данни, тъй като по този начин се избягва повторение както на програмния код, така и на скрипта за скриване на входните данни. Самите полета на входните данни обаче са част от „страниците със съдържанието” тъй като са различни за различните страници. Фигура 3.2 е как изглежда статичната част.




Фиг.3.2
Частта с заглавие “LEGEND” е мястото показващо според цвета, кои полета са задължителни, препоръчителни или не се използват в конкретния случай.
Частта с наименование „Result Summary” е мястото където се обобщава резултата от търсенето – например колко записа е върнало търсенето или каква грешка е възникнала.
Частта с наименование “Search Results” е мястото където се извеждат пълните резултатите от направеното търсене.
Страница за влизане в системата

Това е страницата която потребителя въвежда на първо място и е единственото място през което може да се добие достъп до системата. Тук потребителя въвежда данните си за идентификация и в зависимост от правата му е допуснат или не в системата. Страницата е изчистена от излишни елементи – фиг.3.3.



.

фиг.3.3
Страница за избиране на договор

Тази страница (фиг. 3.4) се появява само ако потребителя има повече от един възможен договор. Ако потребителя е администратор на дадена компания и компанията има дъщерни компании той може да избере договорите на коя компания да вижда и с кой от тях да влезе. Ако няма права минава към първата от страниците които са му разрешени.




Фиг.3.4
Страница SureLoc

Тази страница изкарва данни(фиг.3.6) за кредитоискателя в зависимост от въведените данни(фиг.3.5) според избраната опция за търсене от радио бутоните Това е обобщена секция за търсене на кредитоискател по дадени непълни данни. Често се използват повече от една от опциите, тъй като е възможно съвпадение на имена, непълни адреси и т.н.





Фиг.3.5
Опциите за търсене са следните:

  • Address Lookup – това е търсене по адреса на кредитоискателя и извежда данни кои хора са живели на въведения адрес.

  • Phone Lookup – това е търсене по стационарен телефон и извеждане на лист с всички известни хора, на чието име е бил регистриран този номер.

  • Cellular/Unlisted – това е търсене по клетъчен или друг вид телефон и извеждане на лист с всички известни хора, на чието име е бил регистриран този номер.

  • Billing Name And Address – търсене по адреса на кредитоискателя и неговото име, както се е регистрирал да плаща сметките си.

  • Skip Search – този вид търсене позволява въвеждането на всички входни полета, като от полетата с отметка разположени в дясната страна се избира кои резултати само да се покажат и кои да се пропуснат

  • SureLoc – този вид търсене обединява по-горните опции за търсене, като в при използването на този вид търсене не се губи информация и в същото време излиза с много по-ниска цена от това да извикаш горните търсения.

  • Data Authentication – това търсене сравнява това което е въведено от кредитоискателя и това което стои в публичната база за дадената личност. По този начин се проверява за разлики между въведената информация и тази в базата, като разликите се показват като резултат. При резултата разликите с най-висок ранг се показват най-отгоре.

  • Wildcard Search – това е търсене което търси по въведените данни в няколко различни бази, като при наличие на попълнения към полетата резултата примерно на първото търсене се добавят и резултатите от следващото търсене. При липса на даден резултат в първото търсене този резултат се изтрива. Това помага за изкарването на по-малко резултати, но по-пълна информация, т.е. голяма част от излишната информация се изчиства.

  • Address Correction – този вид търсене е безплатно. Ако въведения адрес е непълен този търсенето връща като резултат възможните допълнения до пълния адрес. Вида на резултата върнат от този вид търсене е на фигура 3.7.

При извеждане на резултати има възможност адреса и имението да се види директно през maps.Google.com или през майкрософтската контрола за 3D карта на земята. Това става чрез натискане на връзката „Sky Map” след всеки резултат.



Фиг.3.6


Фиг.3.7
Страница Sentinel и Sentinel2

Двете страници съм ги обединил тъй като представляват абсолютно еднаква функционалност с единствената разлика в определянето на цената и въпросите които се задават. В случая и двете страници се презентират в системата и се оставя на клиента да избере кой от двата продукта ще използва.


Относно данните които този вид търсене очаква от кредитоискателя са(фиг.3.8): трите му имена, адреса, SSN номера, телефона, дата на раждане и допълнителен код за достъп(CTN). Възможно е и въвеждане на само част от данните, като при недостатъчни данни системата връща грешка, че данните са непълни.


Фиг.3.8
Страница Batch Processes

Това е страницата където се качват файлове с различни видове запитвания (фиг.3.9). В тези файлове(batches) се намира входящата информация на хиляди търсения, както и кога да бъда стартирано търсенето - ако не е спешно търсенето минават първо тези които са по-спешните. С цел да се избегне преписването на информацията и правенето на търсения едно по едно, тази страница позволява качването на тези файлове регистрирането им в базата данни, от където друг компонент - windows сървис, извършва работата със събирането на информацията. През цялото време може да се провери статуса на тези файлове и при завършването им резултатите могат да бъдат свалени в желания формат.





Сподели с приятели:
1   2   3   4




©obuch.info 2024
отнасят до администрацията

    Начална страница