Вы находитесь на странице: 1из 11

Automated Tax Form Validation

(aTFV)
Solution Detailed Design
Application Environment Control
IT Service

© 2009 EYGM Limited.


All Rights Reserved.

ERNST & YOUNG and the stylized EY symbol are registered with the US Patent and Trademark Office
and with other trademark offices around the world. All other trademarks and registered trademarks
contained herein are the property of their respective owners.

Notice
The information contained in this document is confidential and proprietary information of Ernst & Young,
and may not be distributed outside of the global Ernst & Young organization. Unauthorized distribution
of this document or any of its contents to any individual or entity outside the firm is a violation of firm
policy that may result in disciplinary action.

► Error! Unknown document p


Automated Tax Form Validation (aTFV) - SDD

Contents
Contents .......................................................................................................................................................................................... 3
1 Revision/Verification History......................................................................................................................................... 3
2 Purpose of the document .............................................................................................................................................. 3
3 Definitions, Acronyms and Abbreviations ....................................................................................................................... 4
4 Assumptions ................................................................................................................................................................ 4
5 Background .................................................................................................................................................................. 4
6 Development Tools ....................................................................................................................................................... 4
7 Implementation ............................................................................................................................................................ 5
7.1 High Level Data flow diagram ........................................................................................................................................ 5
8 Design and Implementation Scope................................................................................................................................ 5
9 Database schema ......................................................................................................................................................... 5
10 Tables .......................................................................................................................................................................... 5
11 Physical Model ............................................................................................................................................................. 6
12 Project Structure/Code/TFS Path ................................................................................................................................. 6
12.1 TFS Path ....................................................................................................................................................................... 6
12.2 Project Structure .......................................................................................................................................................... 6
13 Exception Handling ....................................................................................................................................................... 9
14 Initial Configurations/Logging and URL’s ....................................................................................................................10
15 Server Details .............................................................................................................................................................10
16 Security ......................................................................................................................................................................10
16.1 Database Connections ...............................................................................................................................................11

1 Revision/Verification History

Date Build Version Description Author

Nov 19th 2018 Draft version SDD

2 Purpose of the document

The purpose of this document is to explain the technical details that are required to implement Automated Tax Form
Validation (aTFV) Application.

Page 3 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD

3 Definitions, Acronyms and Abbreviations

Definitions, Acronyms, Abbreviations Description


aTFV Automated Tax Form Validation

4 Assumptions

TBD

5 Background

The aTFV is an automated tax form validation tool that will be used to support EY’s form
validation services. The aTFV uses OCR to extract data from our clients’ customers’
IRS Forms W-8, W-9, or CRS self-certifications. The tool then validates each data
point extracted using a rules engine with the logic developed in a prototyped version using MS Access for the performance
of the logic checks and processing of the data, and Captiva for OCR.

Since this access based prototype solution is not a long term solution by considering all security aspects. New aTFV will be
web based application which will be developed using .net and SQL server technologies.

6 Development Tools

 Development:
o IDE - Microsoft Visual Studio 2017 with approved Service Pack
o Source code management - Microsoft TFS 2017
o Database - Microsoft SQL Server 2016 Enterprise Edition (64 bit) with approved Service Pack
o Framework - .Net core 2.1
o Development language - C# (following E&Y’s coding standards)
o SQL (following E&Y’s database development standards)
 Components:
o User Interface - ASP.net Core Web Application
o Data Access – ADO.net
o Telerik Kendo UI for ASP.NET Core

 Deployment Platform:
o Server Operating System - Windows Server 2012 R2 Enterprise Edition x64 – SP1
o Client Operating System - Windows 10 64 bit with approved Service Pack

Page 4 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD

o Web Server - IIS 8.5


o Desktop Browser - Internet Explorer 11 and Google Chrome

7 Implementation
7.1 High Level Data flow diagram

The following diagram depicts the data flow from all data sources to aTFV.
TBD

8 Design and Implementation Scope

 Implement aTFV application with SSO.

 Implement a process to track logged-in details with first name, last name, time logged in, server details, page accessed and
their role.

 Design a common solution that can be plugged-in for db schemas.

 Define the common E&Y approved naming standards/conventions throughout the applications.

 Design and Implement a screen for manipulating IRS form data.

 Implement application security based on the roles.

 Define error codes to capture all possible exceptions.

 The system should log appropriate errors generated by the system.

9 Database schema

The following attached PDF file contains the aTFV DB schemas.


aTFV has a master database and multiple client databases.
aTFV requirement is to isolate client data in a separate data file or database. This has been achieved through dedicated
database per client. Database structure of each client will be common. System will not support custom logic for different
customer. Business logic will be common for each customer.
Master database is used to manage users, user roles, clients and error logging.

10 Tables

Page 5 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD

11 Physical Model

12 Project Structure/Code/TFS Path


12.1 TFS Path

$/Tax.CTORS/Dev/Source/aTFV/Development/EY.TAX.aTFV

12.2 Project Structure

aTFV fabricated upon multi-tier architecture to decouple Business logic from Data Access logic underneath. Following Projects are the
building blocks from aTFV –
 EY.TAX.aTFV.Common
 EY.TAX.aTFV.DTO
 EY.TAX.aTFV.Database
 EY.TAX.aTFV.DataAccess
 EY.TAX.aTFV.Services
 EY.TAX.aTFV.WebApp

EY.TAX.aTFV.Common – Common is a class library project which defines common components (objects, variables and methods) used
throughout the application. Common consist definition of constants (JS, Session etc.), enumerations, connection string and extension
methods etc.
Following projects add reference of Common project –
 EY.TAX.aTFV.DataAccess
 EY.TAX.aTFV.WebApp

EY.TAX.aTFV.DTO – DTO (Data Transfer objects) is a class library project which is a data container for moving data between layers. DTO
is only used to pass data and does not contain any business logic. They only have simple setters and getters. DTO objects consist of
properties depict DB tables and columns underneath.
Following projects add reference of DTO project –
 EY.TAX.aTFV.DataAccess
 EY.TAX.aTFV.Services
 EY.TAX.aTFV.WebApp

Page 6 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD

EY.TAX.aTFV.Database – Database project contains definition of all the DB objects (tables, SPs, functions, indexes etc.)

EY.TAX.aTFV.DataAccess – DataAccess is a class library project which holds the common set of methods that are required to perform
any operation in database. These classes have methods for Insert, Delete, Update and Select operation from a database. These
methods will get the parameters (DTOs) from Business logic layer or create DTO from the data received.

Decoupling – Concept which attach and detach components of any class without affecting another class.
For every DAL component interfaces and concrete implementations are created which helps to decouple the logic, enables to attach
the DAL component ( via interface reference) with Service layer without worrying about the underneath implementation of DAL
concrete classes.

Ado.NET is used for CRUD operation in DAL.


Following projects add reference of DAL project –
 EY.TAX.aTFV.Services

EY.TAX.aTFV.Services – Services is a class library project which implements business logic of aTFV.

For every Services component interfaces and concrete implementations are created which helps to decouple the logic, enables to
attach the Services component ( via interface reference) with presentation layer without worrying about the underneath
implementation of Services concrete classes.
Following projects add reference of DAL project –
 EY.TAX.aTFV.WebApp

EY.TAX.aTFV.WebApp – WebApp is a console application which is the presentation layer of UKI RND. WebApp follows MVC
architecture to build GUI and service interactions.

Page 7 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD

aTFV Technical flow – Following is the project structure of aTFV Web App. ASP Core 2.1 is the framework underneath the aTFV
WebApp.

Program.cs - ASP.NET Core is a console application which means that the runtime environment looks for Main() method, like what we
were doing earlier in the actual console app. Now, Runtime environment looks for Main() method in Program.cs file.

main() method calls the CreateWebHostBuilder() method which actually creates web application host. The CreateDefaultBuilder()
encapsulates some default functionality, e.g. - UseKestrel(), UseStartup() etc.

Startup.cs – UseStartup method in Program.cs file uses the name of the startup class. This class is always a public class and contains
two important methods. Webhost automatically calls methods inside start up class in following sequence.
 ConfigureServices method (optional) - Adding services to the service container makes them available within the app and in
the Configure method.
 Configure method (mandatory) - Configure method defines how the application will respond to HTTP request and in order to
do that, it adds middleware to the Applicationbuilder

Appsettings.json – application setting (connection string, logging details etc.) defined in appsettings.

Following basic steps needs to be followed to build new feature –

 Create necessary DTO object (.cs class file) corresponds to the underneath database table and columns

Page 8 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD

 Add classes for DAL interface and Concrete (implementation class) in EY.TAX.aTFV.DataAccess project.

 Add classes for Services interface and Concrete (implementation class) in EY.TAX.aTFV.Services project.

 Add controller and required views inside folder (folder name should match with controller name) in EY.TAX.aTFV.WebApp
project.
 Register newly created service into Start up class inside ConfigureServices() method so that the Service objects will be
available in application container.
Below code is used for DI\registering user defined services to container.

services.AddTransient<IHomeClientService, HomeService>();

Above steps are the basic blocks to start with any new feature in RND application.

12.3 Validation Logic

13 Exception Handling

Application maintains Exception or Error log details in the ApplicationErrorLog table in aTFVMasterDatabase. Below given is
the table structure of ApplicationErrorLog table.

ErrorLogId bigint

ErrorDate datetime

RouteURL varchar(4000)

SamAccountName nvarchar(100)

IpAddress varchar(100)

Page 9 of 11 v.0.1
Automated Tax Form Validation (aTFV) - SDD

ErrorDesc varchar(MAX)

Source varchar(100)

StackTrace varchar(MAX)

Exception Handler middleware will be added in application Startup.cs Configure method.


HttpContext.Features.Get<IExceptionHandlerPathFeature> () gives the details of the exception occurred in application.

14 Initial Configurations/Logging and URL’s

URLs

Environment URL Description


DEV http://derusvmdtdmwb04.eydev.net:86/ Development Site URL
QA testing Site URL - Production
QA http://DERUSVMQTDMWB03.EYQA.NET:76/ issue fixes are tested here.
QA testing Site URL - Current
QA http://DERUSVMQTDMWB03.EYQA.NET:82/ Release items are tested in this.
UAT https://atfvstg.ey.com UAT Site URL
PROD https://atfv.ey.com Production Site URL
15 Server Details

Environment Server Type Server Name


DEV Web Server DERUSVMDTDMWB04.eydev.net
DEV SQL Server DEFRNVMDSQCET20.eydev.net,1367
QA Web Server DERUSVMQTDMWB03.eyqa.net
QA SQL Server DEFRNVMQSQCET20.eyqa.net,1367

16 Security

Environment Endpoints Description

Page 10 of 11 v.2
Automated Tax Form Validation (aTFV) - SDD

Endpoint for local


Local https://accessidp.idaas.eydev.net/idp/startSSO.ping?PartnerSpId=ATFV development site
Endpoint for DEV
DEV https://accessidp.idaas.eydev.net/idp/startSSO.ping?PartnerSpId=ATFV&ACSIdx=0 site
QA Endpoint for QA site
Endpoint for UAT
UAT site
Endpoint for PROD
PROD site
Application uses IDAAS in order to integrate with EY SSO. Endpoints used for SSO:

Application uses Microsoft.AspNetCore.Authentication middleware to handle authentication and authorization.


In order to integrate with IDAAS custom AuthenticationHandler was written: IdaasAuthenticationHandler.
User will be logged out after 20 minutes of inactivity of 10 hours of continues usage.

16.1 Database Connections

Page 11 of 11 v.0.1