"Secure Accounting & Logging System": Bachelor of Computer Application
"Secure Accounting & Logging System": Bachelor of Computer Application
"Secure Accounting & Logging System": Bachelor of Computer Application
PROJECT REPORT ON
INNOVATIVE INSTITUTE OF EDUCATION & TECHNOLOGY 6, KNOWLEDGE PARK II, GREATER NOIDA (U.P.)
1
CERTIFICATE
Certificate of Completion
This is to certify that the project report entitled SECURE ACCOUNTING & LOGGING SYSTEM carried out by MR. HIMANSHU BHATI & MR. SUNIL YADAV, the students of Bachelor of Computer Application [2009-2012], of INNOVATIVE INSTITUTE OF EDUCATION & TECHNOLOGY, Greaer Noida are hereby accepted and approved as a credible work submitted for the partial fulfillment of the requirements for the award of the degree of BACHELOR OF COMPUTER APPLICATION from CH. CHARAN SINGH UNIVERSITY, MEERUT. This is bonafide record of the work done by them under my supervision during their stay as a project trainee at INNOVATIVE INSTITUTE OF EDUCATION & TECHNOLOGY from 25.02.2012 to 10.05.12.
L.S.V. SINGH
14.05.12 (Project Leader) I.I.E.T., Gr. Noida
PROJECT REPORT
CHAPTER-1
The proposed project application architecture supports all events to be logged appropriately at multiple points during the application's operational life cycle. The proposed project application architecture Logs sensitive information that should not be accessible to unauthorized users.
Ensures the integrity of the data logged to determine if it was tampered by an intruder or not.
Captures output at one level for normal operations and at other levels for greater debugging in the event of a failure or an attack.
Supports cryptographic mechanisms for ensuring confidentiality and integrity of the logged data.
Promotes extensibility. Security is a constantly evolving process. The Secure Logger provides the requisite extensibility by hiding implementation details behind a generic interface.
Improves manageability. Since all of the logging control is centralized, it is easier to manage and monitor. The Secure Logger performs all of the necessary security processing prior to the actual logging of the data, which allows management of each function independently of the others without risk of impacting overall security.
1.2 Scope The proposed system has following advantages Entry of each of the new user login will be automated and a database or record of all users will be maintained. Record keeping of internet access will be easier. Since the whole record is on the database, external factors will hardly have any effect on them.
The following approach is used to design this system, which is called "classic life cycle" or "Waterfall model". This linear sequential model suggests a sequential, systematic approach to system development that begins at the system level and progress through the analysis, design, coding, testing and maintenance. The linear sequential model encompasses the following activities: System/ Information engineering and modeling. System requirement analysis
System
Analysis Design Code Testing Maintenance Fig. 1.1 Software Life Cycle Model
These above phases mark the progress of a system analysis and design effort. It is an orderly set of activities conducted and planned for each development project. In most business situations the activities are closely related, usually inseparable, and even the order may be difficult to determine. A project is a sequence of unique, complex and connected activities having one goal or purpose and that must be completed by specific time, within budget, according to specification. A project manager is an automated tool to help plan system development activities, estimate and sassing resources, scheduled activities and resources, monitor progress against schedule and budget, control and modify schedule and resources, and report progress.
2.2 Software Requirements Windows 7 MS office 2007 Professional Internet Information System (IIS) Active Server Pages (ASP.NET) SQL Server 2008
10
2.3 Hardware Requirements Pentium III 1.8 GHz and Above 128 MB DDR RAM or More 40 GB HDD
11
Information of Company
Submit Complaint/ Request Customer Get response Fig. 3.1 (CONTEXT LEVEL DFD) Abbreviation used in all DFDs C & RI Administrator GI
Enter Customer Detail Get Account Service Type Get Information Change & retrieve all Information
12
Valid User
Submit
D1 Master Database
Fig. 3.2
Assigned
Update
Fig. 3.3 3.2.3 Creating Customer Process Valid Admin Creates Custome r Assign to Company
Assigned
Update
14
Valid Admin
Report 5 Report 6
Take various Details D1 Master Database Fig. 3.5 Report 1: Report on Accounts. Report 2: Report on Edited Accounts. Report 3: Report on Adding Customer. Report 4: Report on Daily Added Customers.
15
Compan y Profile
Assign to
User
Send Request
Retrive Infrmation
Fig. 3.6
16
Interacts
End User
Service Provider
Stor e
Reope n
Solv e
Company Server
Clos e
Administrator
17
To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internetdistributed, or executed remotely.
To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.
The .NET Framework has two main components: the common language runtime and the .NET Framework class library. The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as
18
Web Forms
Windows Forms
C# VB.NET J# C++ Data and XML Classes Base Framework Classes Common Language Runtime
Fig. 4.1 For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET works directly with the runtime to enable ASP.NET applications and XML Web services, both of which are discussed later in this topic. Internet Explorer is an example of an unmanaged application that hosts the runtime (in the form of a MIME type extension). Using Internet Explorer to host the runtime
19
Interoperability between languages and execution environments. Uniformity in schema or formats for Data Exchange used XML, XSL. Extend or use existing code that is valid. Programming complexity of environment is reduced.
The Runtime: At the heart of .NET is the Common Language Runtime, commonly referred to as the CLR. The CLR is made up of a number of different parts.
Language Independence: One of the most important facets of the .NET Framework is language independence. .NET application can be written using any number of different programming languages. The most popular languages tend to be C# and VB.NET, but many other languages now have .NET versions including Python, COBOL, and more. Language independence is attained through the use of an intermediate language (IL).
Just-in-Time Compilation: When code is compiled and it is translated to the intermediate language it is then simply stored in an assembly. When that assembly is used the CLR picks up that code and compiles it on-the-fly for the specific machine that is running the code, the means the runtime could compile the code differently based on what CPU or operating system the application is
20
In the language of Microsoft, Active Server Pages is an open, compile-free application environment in which you can combine HTML, scripts, and reusable ActiveX server components to create dynamic and powerful Web-based business
21
22
4.3 ASP.NET ASP.NET is server-side i.e runs on the Web server. Most Web designers start by learning client-side technologies like HTML, JavaScript, and Cascading Style Sheets (CSS). When a Web browser requests a Web page created with client side technologies, the Web server simply grabs the files that the browser (the client) requests and sends them down the line. The client is entirely responsible for reading the code in the files and interpreting it to display the page on the screen. Server-side technologies, like ASP.NET, are different. Instead of being interpreted by the client, server-side code (for example, the code in an ASP.NET page) is interpreted by the Web server. In the case of ASP.NET, the code in the page is read by the server and used dynamically to generate standard HTML/JavaScript/CSS that is then sent to the browser. As all processing of ASP.NET code occurs on the server, its called a server-side technology. As Figure shows, the user (client) only sees the HTML, JavaScript, and CSS within the browser. The server (and server-side technology) is entirely responsible for processing the dynamic portions of the page.
Fig. 4.2
23
24
// web.config file
25
Fig. 4.3 In addition to authentication, ASP.NET provides an impersonation mechanism to establish the application threads security token. Obtaining the correct token relies upon you configuring IIS authentication, ASP.NET authentication providers, and ASP.NET impersonation settings appropriately. Figure 2 shows the most likely combinations between IIS authentication and ASP.NET providers.
4.3.3 ASP Authentication Methods You have a variety of options for authentication within your .NET Web applications. For example, you may choose to utilize one of the supported IIS authentication mechanisms, or you may instead decide to perform authentication within your application code. You should consider some or all of the following factors when choosing an authentication method:
26
27
28
4.3.10 Forms Authentication Forms authentication refers to a custom user interface component that accepts user credentials; for example, a user name and password. Many Internet applications used today present such forms for users to log on. It is important to note that the form itself does not perform the authentication and is provided solely as a way of obtaining the user credentials. The authentication is performed by accessing the user name and password database using custom code. When the user is authenticated, the server typically gives the client some means to indicate that it has already been authenticated for subsequent requests. If required, you can force the client to authenticate upon every request, although this impacts performance and scalability. There are two basic approaches that you should consider to identify a client who has previously logged on.
29
4.4 THE C# LANGUAGE The C# language is the disarmingly simple, with only about 80 keywords and a dozen built-in data types, but C# is highly expressive when it comes to includes all the support for implementingmodern programming concepts. C#
structured, compo component-based, object-oriented language built on the shoulders of C++ and Java.The C# language was developed by a small team led by two distinguished Microsoft engineers, Anders Hejlsberg and Scott Wiltamuth. At the heart of any object-oriented language is its support for defining and working with classes. Classes define newtypes, allowing you to extend the language to better modelthe problem you are tryingto solve. C# contains keywords for declaring new classes and their methods andproperties, and for implementing encapsulation, inheritance, and polymorphism, the three pillars of object-oriented programming. In C# everything pertaining to a class declaration is found in the declaration itself. C# class definitions do not require separate header files or Interface Definition Language (IDL) files. Moreover, C# supports a new XML style of inline documentation that greatly simplifies the creation of online and print reference documentation for an application. C# also supports interfaces, a means of making a contract with a class for services that the interface stipulates. In C#, a class can inherit from only a single parent, but a class can implement multiple interfaces. When it implements an interface, a C# class in effect promises to provide the functionality the interface specifies. C# also provides support for structs, a concept whose meaning has changed significantly from C++. In C#, a struct is a restricted, lightweight type that, when instantiated, makes fewer demands on the operating system and on memory than a conventional class does. A struct can't inherit from a class or be inherited from, but a struct can implement an interface. C# provides component-oriented features, such as properties, events, and declarative constructs (called attributes). Component-oriented programming is supported by the CLR's support for storing metadata with the code for the class. The metadata describes the class, including its methods and properties, as well as its
30
C# is built on the C++ language, so it behaves much like the language. Like C++, C# lets you write enterprise applications, and C# contains many C++ features, including statements and operators. C# also provides access to common Application Program Interface (API) styles including Component Object Model (COM) and C-style APIs. 4.4.2 DIFFERENCES BETWEEN C# AND C++
Microsoft includes Visual C++ and C# in Visual Studio .NET. On the surface, C# has few differences from Visual C++: C# has an alternate method of accessing the C++ initialization list when constructing the base class. A class can inherit implementation from only one base class. You can call overridden base class members from derived classes. C# has a different syntax for declaring C# arrays.
31
The goal of C# is to provide a simple, safe, modern, object-oriented, Internet-centric, high-performance language for .NET development. C# is a new language, but it draws on the lessons learned over the past three decades. In much the way that you can see in young children the features and personalities of their parents and grandparents, you can easily see in C# the influence of Java, C++, Visual Basic (VB), and other languages. The focus of this book is the C# language and its use as a tool for programming on the .NET platform. In my primers on C++, I advocate learning the language first, without regard to Windows or UNIX programming. With C# that approach would be pointless. You learn C# specifically to create .NET applications; pretending otherwise would miss the point of the language. Thus, this book does not consider C# in a vacuum but places the language firmly in the context of Microsoft's .NET platform and in the development of desktop and Internet applications. 4.5 CLASSES, OBJECTS, AND TYPES
The essence of object-oriented programming is the creation of new types. A type represents a thing. Sometimes the thing is abstract, such as a data table or a thread;
32
A class has both properties and behaviors. A method is a function owned by your class. In fact, member methods are sometimes called member functions. The member methods define what your class can do or how it behaves. Typically, methods are given action names, such as WriteLine( ) or AddNumbers( ). In the case shown here, however, the class method has a special name, Main( ), which doesn't describe an action but does designate to the Common Language Runtime (CLR) that this is the main, or first method, for your class. Unlike C++, Main is capitalized in C# and can return int or void. The CLR calls Main( ) when your program starts. Main( )is the entry point for your program, and every C# program must have a Main( ) method. Method declarations are a contract between the creator of the method and the consumer (user)
33
A C# program can also contain comments. Take a look at the first line after the opening brace: // Use the system console object The text begins with two forward slash marks (//). These designate a comment. A comment is a note to the programmer and does not affect how the program runs. C# supports three types of comments. The first type, just shown, indicates that all text to the right of the comment mark is to be considered a comment, until the end of that line. This is known as a C++ style comment. The second type of comment, known as a CStyle comment, begins with an open comment mark (/*) and ends with a closed comment mark (*/). This allows comments to span more than one line without having to have // characters at the beginning of each comment line. It is possible to nest C++ style comments within C-style comments. For this reason, it is common to use C++
34
Console is only one of a tremendous number of useful types that are part of the .NET Framework Class Library (FCL). Each class has a name, and thus the FCL contains
35
36
Rather than writing the word System before Console, you could specify that you will be using types from the System namespace by writing the statement at the top of the listing, as shown in Example: The using keyword using System; class Hello { static void Main( ) { Console.WriteLine("Hello World"); //Console from the System namespace } } Notice the using System statement is placed before the HelloWorld class definition. Although you can designate that you are using the System namespace, unlike with some languages you cannot designate that you are using the System.Console object. The using keyword can save a great deal of typing, but it can undermine the advantages of namespaces by polluting the namespace with many undifferentiated names. A common solution is to use the using keyword with the built-in namespaces and with your own corporate namespaces, but perhaps not with third-party components. 4.7 CASE SENSITIVITY
C# is case-sensitive, which means that writeLine is not the same as WriteLine, which in turn is not the same as WRITELINE. Unfortunately, unlike in Visual Basic (VB), the C# development environment will not fix your case mistakes; if you write the same word twice with different cases, you might introduce a tricky-to-find bug into your
37
Access modifiers determine which class methods, including methods of other classes, can see and use a member variable or method within a class. It is generally desirable to designate the member variables of a class as private. This means that only member methods of that class can access their value. Because private is the default accessibility level, you do not need to make it explicit. Table summarizes the C# access modifiers. Access Modifier Public Private Protected Restrictions No restrictions. Members marked public are visible to any method of any class. The members in class A that are marked private are accessible only to methods of class A. The members in class A that are marked protected are accessible to methods of class A and also to methods of classes derived from class A. Internal Protected internal The members in class A that are marked internal are accessible to methods of any class in A's assembly. The members in class A that are marked protected internal are accessible to methods of class A, to methods of classes derived from class A, and also to any class in A's assembly. This is effectively protected OR internal (There is no concept of protected & internal.) Table. 4.1 4.9 SECURITY Considerations
38
describe
understand the significance of potential threats as they relate to your business. validating those credentials against a designated authority. The users (or potentially an applications or computers) identity is referred to as a security principal. The client must provide credentials to allow the server to verify the identity of the principal. After the identity is known, the application can authorize the principal to access resources on the system. Various criteria, which help you choose the appropriate authentication mechanism, are presented in the next section of this document. 4) 5) Authorization. This is the process of determining whether the proven identity Securing data transmission. By encrypting your data as it crosses the network, is allowed to access a specific resource. you can ensure that it cannot be viewed or tampered with while in transit. You must consider the degree to which your data needs to be secured while in transit. 6) Impersonation. This mechanism allows a server process to run using the security credentials of the client. When the server is impersonating the client, any operations performed by the server are performed using the clients credentials. Impersonation does not allow the server to access remote resources on behalf of the client. This requires delegation. 7) Delegation. Like impersonation, delegation allows a server process to run using the security credentials of the client. However, delegation is more powerful and allows the server process to make calls to other computers while acting as the client. 8) Operating system security. This refers to the establishment of appropriate Access Control Lists (ACLs), and network security to prevent intruders from 39
40
41
42
43
44
45
46
47
Login Form
Company List
Company
Customers
Vendor
Search
48
Company Chart of Accounts Detail Account Type List Account Type List Products & Services Standard Terms Division List
Fig. 6.2 Company
49
Chart Of Accounts Home Add New Account Type Detail Type Account Number Name Description Amount
50
Add New
Account
Detail Name
Type Name
Update
Cancel
51
Home
Edit
Name
Description
Name
Description
Rate
Rate
Update
Save
Cancel
Cancel
52
Standard Terms
Home
Edit
Name
Days
Name
Days
Save
Cancel
Update
Cancel
53
Division List
Home
Edit
Branch
Name
Branch
Name
Save
Cancel
Update
Cancel
54
Customer Add Customer Enter Invoice Show All Invoice Release Hold Invoice Invoice Search Apply Payment
55
Secure Accounting & Logging Add Customer Name Company name Print On Check Street City State Zip Code Country Customer Message Email Phone Mobile Fax Payment Mode Terms Delivery Method Save Home
Fig. 6.10 Customer Add Customer
56
57
Show All Invoices Edit Delete Enter Invoice Date Type Memo Description Name Due Date Amount Home
58
Release Hold Invoice Date Type Name Memo Description Due Date Amount Save Home
59
60
Home
61
Vendor Add Vendor Enter Bill Show All Bill List Bill Search Pay Bill
62
Add Vendor Name Company Address Account Number Phone Terms Save Home
63
Enter Bill Type Vendor Bill Date Terms Memo Division Preferences Amount Description Customer
64
Show All Bill List Bills Date Type Name Memo Description Due Date Amount
Fig. 6.19 Vendor Show All Bill List
65
66
Pay Bill Payment Account Create Account Type Name Description Detail Type AccountNumber Amount Division
Pay To The Order Of
67
Search
Invoice Search
Bill Search
68
69
70
71
7.3 Table3: User This table stores the description of all the users made till date. The description involves the ids of users, user who has made the booking and the accounts that has been created. In addition to these ids the table also stores the start time and end time of the booking along with the date of user. The table also has a field for storing the title of the meeting.
72
7.4 Table4: Vendor This table stores the description of all the Vendors made till date. The description involves the ids of venors, user who has made the booking and the accounts that has been created. In addition to these ids the table also stores the date created and date modified by the vendor along with the date of vendor. The table also has a field for storing the name also.
73
74
After log in the users get the corresponding functions that have been assigned to them. The administrators and the others have different privileges so the project performs accordingly. This separation is needed to maintain database effectively and to maintain integrity of the whole system. The entries are retrieved and manipulated according to the selected status. 8.2. Administrative Module:
The Administrator logs in and then he/she has to select what tasks he/she wants to perform from the ADMINISTRATIVE TASKS that are assigned to the administrator. (COMPANY LIST FORM)
75
In this part of project users, sub users and accountants are created by administrator with different rights according to the requirements.
76
In this administrative tasks form the first part is related to tasks corresponding to company. In this module everyone(user and Admin) can see the details of the company like chart of accounts, details acc. Type list, acc. Type list etc. But these can be changed by the admin only and not by the user.
77
In this we can view the records of a company like chart of acc., detail acc. Type, acc. Type list, product and services, standard terms and division list. These records can be changed by the administrator only but not by the user.
78
In this module the customer which was added by admin can see all the information of account and add further sub customers. But he is not able to edit any information in that module. In this user and admin can add customer and information related to him in form of invoice. In this module they can see all the invoices and payment can be applied.
79
In this module vendor is added by both user and administrator. In this mdule bill is also entered in which bank account is created as per the requirement. They cay also be able to see the bill which has been added by them and those bills are also paid by them. Vendor is added for the customer. By vendor a customer can only pay the payment to the company. Here vendor plays the role of third party.
80
This module is used to search the invoices and bills which are entered in the company records. It is the easy way to find the complete information of required invoice and bills.
81
This part of the project shows the chart of accounts which is having all types of accounts available in the company.
82
This Part is the same as above but it can only be changed or modified by the administrator part only and not by the user, sub user or by the accountant.
83
This page of the project keeps or fills the customer information added by the admin or by the user of the company.
84
After adding the customer we have to add the vendor because a customer has to pay his payment with the help of the vendor. Here vendor may act as the third party person.
85
CHAPTER-9 VALIDATION
(1) Date Validation: The validation on date data type has been specified to be of the format YYYY/MM/DD. Any other format is unacceptable. (2) Time validation: The validation on time data type has been specified to be of the format hours-minutes. Any other format is unacceptable. (3) From Date to To Date: The from date always has to be less than the To date, e.g. From 1 April 2003 to 30 June 2003 cannot be other way round. (4) From Time to To time: The From time always has to be less than the To Time, e.g. From 5-30-05 to 10-35-30 cant be other way round. (5) Number field validation: The field specified with number as then their data- type will not accept character. (6) User Authentication: When a Depot branch logs on to the system to access data or Add data from tables and database, the Id & password needs to be checked.
86
The software engineering process may be viewed as a spiral. Initially the system engineering defines the role of software and leads to software requirement analysis where the information domain function, behavior, performance, constraints and validation criteria for the software are established. A strategy for software testing must accommodate low-level tests that are necessary to verify that a small source code segment has been correctly implemented as well as high-level tests that validate major system functions against user requirements.
87
REQUIREMENTS S DESIGN
CODE
UNIT TEST
Fig. 10.1 Testing Strategy Moving upwards along the arrow we come to design and finally to coding. So the testing can be carried out at various levels. These are: 10.2 White Box Testing It is a test case design method that uses the control structure of the procedural design to derive test cases. Exhaustive white-box testing at our end resulted in guaranteeing that: All independent paths within a module have been executed at least once. All logical decisions on their true and false sides have been exercised. All loops within their boundaries and within their operational bounds have been executed. All internal data structures have been exercised and assured of their validity.
88
10.4 Unit Testing Unit testing comprises the set of tests performed by an individual programmer prior to integration of the unit into a large system. Coding and debugging -> Unit testing -> Integration testing There are four categories of tests should be performed. Functional Testing Performance Testing Stress Testing Structure testing
Function test cases involve exercising the code with the nominal input values for which the expected results are known, as well as boundary values maximum. Performance testing determines the amount of execution spent in various parts of the unit program throughput, response time and device utilization by the program unit. Stress tests are those tests designing to initially break the unit. Structure tests are con concerned with exercising the internal logic of a program and traversing particular execution path. Establishing a test completion criterion is another difficulty encountered in the unit testing of real programs. Unit testing includes.
89
Bottom up integration testing consists of unit testing followed by system testing. Unit testing has the goal of testing individual modules in the system. Subsystem testing is concerned with verifying the operation of the interfaces between modules in the sub systems. System Testing is concerned with subtleties in the interfaces, decision logic, and control flow recovery procedure, throughput, capacity and timing characteristics. Top down integration starts with the main routine and one or two immediately subordinate routines in the system structure. Top down integration requires the use of program stubs to simulate the effect of lower level routines that are called by those being tested.
90
Top-level interfaces are tested first and mist often. The top-level routine provides a natural test harness for lower level routines. Errors are localized to the new modules and interfaces that are being added Sandwich integration is predominately top down, but bottom up techniques are used on some modules and sub system. This mix alleviates many of the problems encountered in pure top down and retains the advantages of the top down integration at the subsystem and system level.
91
CHAPTER-12
92
2. Heuristic Technique 3. Analytical Estimation Technique We have spend more than 3 months of time to make this project. We were also struggle to collect the information about this project. We were going from one shopping mall to another to collect the useful information about this project. To make this project as a Web Application some courses is also done. The tools that are used to make this project also matters to calculate the cost of the project. So the estimated cost of this project matter these entire think. Then on the basis of these all the estimated cost that I have to calculate is: -
CHAPTER-13
93
1. 2.
3 4. 5. 6.
Patrick Dalton, Microsoft SQL-Server Black Book, E-Book Beginning ASP.NET 1.1 with VB.NET 2003, Wiley Publishing NIIT Futurz - Programming in ASP.NET Microsoft .NET Framework Quick Starts, Tutorials and Samples
13.1 REFERENCES
www.msdn.microsoft.com www.niitstudents.com www.sqlcourse.com www.w3cschool.com
94
Work Performed Remarks [Performed By] Feasibility Study (A) Requirements and Analysis (B) Arrangement and installation of software (A,B) Database creation and management (A,B) Designing of the module 1 (A) Coding of the module 1 (B) Testing of the module 1 (A) Designing of the module 2 (B) Coding of the module 2 (A) Testing of the module 2 (B) Designing of the module 3 (A) Coding of the module 3 (B) Testing of the module 3 (A) System Testing of the whole Project Maintenance of the Project
95