Você está na página 1de 101

A Project Report on

Sales & Customer Tracking System

TABLE OF CONTENTS
Acknowledgment Chapter 1: Introduction 7
1.1 8 1.2 1.3 1.4 Introduction Objective Requirements Specification 20 Software/Package Used 20

Chapter 2: Literature Survey Chapter 3: Problem Formulation 10


3.1 3.2 3.3 3.4 3.5 Present State of Subject 11 Realization of the Problem 12 Problem Definition 13 Scientific Novelty of work 14 Steps Involved

15

Chapter 4: Project Design 19


4.1 4.2 4.3 DFDs E-R Diagrams Data Dictionary 43 48 49

Chapter 5: Experimental Results


5.1 5.2 5.3 Database Design 56 Form Design 57 Reports

66

Chapter6: Conclusion & Scope


6.1 6.2 6.3 6.4 6.5 83 Future Enhancements 81 Limitations 82 Advantages 82 Scope 83 Importance of Work

Bibliography

86

ABSTRACT

A well planned, systematically executed project development helps a lot in inculcating a good work culture. It provides linkage between students and industry in order to develop awareness of industrial approach to problem solving based on broad understanding of operations of the industrial organizations. The project Sales & Customer Tracking System has been an enriching experience for us in the field of programming. This project report provides an elaborate coverage of the salient features of developing software, its capabilities, and its limitations and of course all software development process followed. We hope this project report would prove to be a comprehensive source of information for the reader.

CHAPTER1: INTRODUCTION

INTRODUCTION TO SALES & CUSTOMER TRACKING SYSTEM


This Sales and Customer Tracking System project mainly deals with automating the tasks of maintaining and transacting the goods. In the Sales and Customer Tracking System inventory management is the key process. This process includes the activities such as maintenance of stock details, maintenance of receipts and items etc. It is a tedious job to maintain all these details manually. Hence we opted to automate the Sales and Customer Tracking System.

OBJECTIVE
To automate the Sales System for a warehouse and Customer Tracking

CHAPTER 2: PROBLEM FORMULATION

PRESENT STATUS
In the current scenario, many organizations do not have an online interface and all orders are physically placed by the customers and the warehouses. The company then receives these forms through courier or the channel partner sends the details physically. The administrative department then fills in these details into SQL Script where the database is maintained. The network operations department activates the account if all the details are received properly in accordance to the requirements. In this procedure the processing of a particular order takes about a week before which the end customer is supplied with the ordered items. This procedure was highly unreliable, tedious, time consuming and on the whole inefficient.

REALIZATION OF PROBLEM
The current procedure is completely manual and suffers from the following drawbacks: 1. Physically damageable orders The orders may get lost, torn burnt because of physical calamities or mismanagement leading to loss of important information, reproduction of which would take immense time and effort 2. High probability of manual errors Since the executives are manually filling in the details, the probability of making typing errors and redundancy may occur which can lead to inconsistency of data. 3. Time consuming The entire procedure of entering the details as received from paper into SQL Script was tedious and highly time consuming. 4. Time Lag The orders were not processed unless all details were received correctly at the firms end. This led to a time lag between the submission of the details and submission of the order and the customer had to suffer even though he had sent the order, a time lag of at least one week. 5. Difficult Reference and crosschecking procedures To refer to any particular details of an order the physical order of that customer had to be located and the details looked up manually. This was a waste of time and effort at the firms end. 6. No central database

A central database was not maintained for all the orders, customers, suppliers or items for all the departments, each department maintained the database corresponding to its duties which could lead to inconsistency of data at different ends. 7. No authorization There was no check on the authority of the customer being associated with the firm. Thus the possibility on an unauthorized customer submitting an order also existed.

PROBLEM DEFINITON
To design an automated inventory management system for an organization the key system requirements include: 1. Tracking inventory for various products as they enter into the warehouse shipped from a variety of suppliers. This refers to the creation, maintenance and updating of the central inventory database for all the products of an organization. New records are created every time a new product is introduced. The system should check for products whose stock levels are less than the recommended level or are pending against some orders, and then generate a purchase order to be given to the supplier and records are updated every time an order request is successfully met. 2. Tracking orders as they are received from a central telemarketing organization. The telemarketing organization provides details of each order as supplied by the customer. At this point the tracking system identifies the customer, processes the order and after the verification is duly completed the system will add the order in its database and automatically updates the central database. 3. Generating invoice and tracking amount receivable. The invoice should be generated automatically after checking the order to be shipped to the customer. 4. Providing Web based Application. Companies can log on to the Warehouses website and allows its registered customers to place an order through internet for the various products. Registered companies can also see all the previous orders they have made on the website. 5. Generating various printable reports.

The system allows its user to view and print various reports. These reports cover almost all sections like reports for invoices and orders categorized as all orders or particular order between some specified dates; reports for purchase of different products categorized as all purchases or particular purchase order between some specified dates; reports for customers and suppliers categorized as all or listed by their cities; reports for various products etc. 6. Tracking records of customers and suppliers. The system keeps track of each of its customers and suppliers. It involves storage of all the updated information about its customers and suppliers. The system keeps track of all sales made against each customer and all the purchases against each supplier. 7. Providing Customers Relation Management This is done by making advance reservations of orders for its clients, prioritizing its clients etc.

SCIENTIFIC NOVELTY OF WORK


Developing the software is an attempt to completely automate the management of an organization and overcome the drawbacks faced by the currently existing system. The software does this in the following manner: 1. Online Ordering The registered customers can place the order online. On the completion of an order, the order is forwarded to the concerned department and items requested are arranged. 2. Reliable The database is automatically filled with the details as submitted by the customer in online interface, thus eliminating any possibility of manual errors. Moreover, this software also controls the redundancy of data. 3. Time Efficient The software enables maintaining database easily, taking minimum time to add, edit or view data. 4. Simple to use The software is designed such that users with no prior exposure to the same can easily use it. Alerts are generated at the occurrence of any inconsistent transaction thus minimizing the probability of errors. 5. Minimized Time Lag Online ordering and easy database management through the desktop application simplifies and hence quickens the processing of the placed order to the customers satisfaction. 6. Specific Search Simplified

The software enables searching records on the basis of many criteria like customer name, items, orders, etc. 7. Central Database Maintained The software enables the management of a centralized database, the access to which is distributed as intended by the administrator depending on the kind of transactions they are able to undertake. Different departments are given access to different parts of the database, in which they can append or modify the records. 8. Data logging Printable reports are provided in the software to enable maintaining records for particular customers, orders, suppliers and to oversee transactions of a particular time period.

STEPS INVOVLED
The following table describes the steps involved in developing the project divided in various phases of work.

Phas e Phase 1 Phase 2 Phase 3

Step No. 1 2 3 1 2 1 2

Activity Process Analysis System Study SRS Formation Software Development Module Integration Unit Testing System Level Testing Software Maintenance

Phase 4

CHAPTER 3: PROJECT MONITORING SYSTEM

GANTT CHART
When creating a software project schedule, the planner begins with a set of tasks (the work break down structure). If automated tools are used, the work break down is input as a task network task outline. Efforts, duration and start date are then input for each task. In addition, task may be assigned to specific individuals. As a sequence of this input, a timeline chart, also called a Gantt Chart, is generated. A Gantt Chart can be developed for the entire project. Alternatively, separated it depicts a part of a software project schedule that emphasizes the concept scooping task for a new word processing software project. All project tasks (for concept scooping) are listed in the left hand column. The horizontal bars occur at the same time on the calendar, task concurrency is implied. The diamonds indicate milestones. Once the information necessary for the generation of the Gantt Chart has been input, the major of software project scheduling tools produce project tables a tabular listing of all project tasks, their planned and actual start and end dates and a verity of related information. Used in conjunction with the Gantt Chart project tables enable the project manager to track progress.

3.1.1 Gantt Table PROJECT :- Sales and Customer Tracking System


S.N O 1. TASK START FINISH Aug 26 Sep 2010 30 Aug 2010 04 Sep 2010 10 Sep 2010 26 Sep 2010 11 Oct 2010 01 Oct 2010 11 Oct 2010 DAY S 35 10 5 5 15 14 4 10

SYSTEM STUDY AND 22

ANALYSIS 2010 1.1 Survey & Plan the 22 Aug 2010 Project Survey Problem 31 Aug 2010 Plan the Project 05 Sep 2010 Analyze & study the 11 Sep 2010 Current System SYSTEM DESIGN 27 Sep

1.2 2.

2010 Database Design 27 Sep 2010 Design of User 02 Oct 2010 Interface

S.NO 1.

1.2 2.

WORK BREAKDOWN/TIME SYSTEM STUDY AND ANALYSIS 1.1 Survey & Plan the Project Survey Problem Plan the Project Analyze & study the Current System SYSTEM DESIGN Database Design Design of User Interface

22 Aug

26 Sep

27 Sep

11 Oct

PERT CHART
Program Evaluation and Review Technique (PERT) and Critical Path Method (CPM) are the project scheduling techniques that can be applied to software development. Both technique are driven by information already gathered in earlier planning activities: Estimation of Effort A decomposition of the product function The solution of the appropriate model and task set Decomposition of task Both PERT and CPM provide quantitative tools that allow the software planning to determine critical path the claim of task that determined the duration of the project establish most likely times estimates for individual task By applying statically models: and Calculation boundary times that define a time window for a particular task. Both PERT and CPM have been implemented in a wide verity of automated tools that are available for the personal computer. Such tools are easy to use and make the scheduling methods described previously available to every software project manager.

CHAPTER 4: SYSTEM STUDY

FEASIBILITY STUDY
Technical Feasibility
The Technical Feasibility of the software system developed is centered around the existing computer system (hardware and software etc.) and to what extent it can support the proposed addition. Its various aspects are discussed hereby.

Hardware Feasibility
The hardware feasibility of the software under development will be as a under 1. The present hardware setup of the organization may be sufficient for running the software applications to be developed. 2. System Support Group of the company provides the entire hardware requirement for the proposed system as and when needed. 3. Two servers will be used to manage the application.

Software Feasibility
The software feasibility of the software under development can be stated as under: 1. The new application requires .Net framework 1.1 which is available in the company. 2. System Support Group of the company provides the entire software requirement for the proposed system as and when needed.

Economic Feasibility: Cost and Benefit Analysis


The Economic Feasibility study or the Cost / benefit analysis gives the picture of various costs and benefits and rules associated with the system. The various costs and benefits associated with the system under development will be as under. The feasibility will evaluate over a five-year period. Costs: Since it is an External project for the company, there will be cost benefit analysis in terms of resources according to the company policy, which cannot be declared. Moreover the application being developed will assume Windows NT as its server and license from Microsoft for .Net.

Benefits: 1. Since it is an External project for the company, it help company in achieving financial support for further company development. 2. It helps client to sale the product to the property managers around the world. 3. It overall helps the community in managing the things like property.

Operational Feasibility
The Operational Feasibility of the system relates to the fact that, to what level the proposed system is able to achieve its objectives, for which it is designed. The various factors that decide the operational feasibility of the system are as under: System Performance Growth Potential

User friendliness / User Training Security Issues

System Performance The proposed system would be able to achieve the required performance level, it will be meant to achieve. System Performance can be classified into two major components namely: System Response Time The Response Time for fetching the data and displaying on the interface of the entire system is likely to be minimal. System Accuracy

The system under design is accurate to the desired level in its operations. The user interface provides all the desired information related to that interface accurately. Growth Potential Since the proposed system is likely to be designed using object oriented approach in such a way that it can be expanded and made more powerful with the changing requirements of the user as and when needed.

Security issues The System designed gets login id and password of the end user automatically from his login and displays the relevant screen for him/her. The application has its data in the MS-Access database, which is Run in only Office 2000 and Operating system will be Windows 2000 professional.

Appropriate backup of the code and the database will be regularly taken, so as to not have a crisis situation in the event of a server crash.

CHAPTER 5: SYSTEM ANALYSIS

REQUIREMENT SPECIFICATION
4.1 Hardware Requirements
Processor RAM Hard disk PC with a Pentium II-class processor, 600 MHz (Recommended) 256 MB (Recommended) 10GB (4GB space required to install VS .NET and related softwares)

4.2 Software Requirements


System Software The software can be executed in the Windows 2000 (Professional or Server) or Windows XP Professional environment. Application Software It requires VISUAL STUDIO 2005 .NET runtime environment with SQL server installed for database related programming. It also requires .net 2.0 framework to be installed on the client PC. It requires MDAC (Microsoft Data Access Component) to be installed on the PC to support data access components such as SQL server.

ASP Requirements Processor RAM Free HD Space Operating System WindowsXP Microsoft Visual Studio .NET Requirements Processor 450 MHz RAM : Windows 2000 Professional 96 MB; Windows 2000 Server 192 MB; Windows NT4.0 Workstation 64 MB; Windows NT 4.0 Server 160 MB; Windows Free HD Space XP Professional 160 MB : PC with a Pentium II-class processor, : Pentium or AMD Athlon 200 MHz or greater : 32 MB RAM : 100 MB disk space : Windows 98 (Enterprise only), Win 2000,

: 500 MB on system drive 3 GB installation drive

Operating System 4.0

: Windows 2000, Windows XP, or Windows NT

Microsoft Access Requirements Processor RAM Free HD Space : Pentium 75 MHz or higher processor : 8 MB RAM : 161 MB Disk Space

Operating System Workstation

: Windows 95 or later or Windows NT

version 4.0, Service Pack 3 or later.

Getting Started

To start the software, the following steps are followed:1. Install the software on the centralized server with the database. This server must have .NET Framework installed on it. 2. The software is then installed on each node by installing the .exe and the .Net framework on the node. 3. The site is installed on the centralized, IIS enabled web server which can be accessed from any node for maintenance. 4. Site is however uploaded on the internet for providing online customer interface. But this option is optional and depends on the warehouse. 5. Each user is given rights by the administrator according to which he can access the authenticated parts of the software. 6. Customers are given passwords by which they can access the site.

SOFTWARE/PACKAGE USED
Microsoft Visual Studio .NET
Visual Studio is a complete suite of tools for building both desktop and team-based Enterprise Web applications. In addition to building highperforming desktop applications, you can use Visual Studio's powerful component-based development simplify team-based design, Enterprise solutions. Visual Studio .NET is a complete set of development tools for building ASP Web applications, XML Web services, desktop applications, and mobile applications. C# .Net, Visual C++ .NET, and Visual C# .NET all use the same integrated development environment (IDE), which allows them to share tools and facilitates in the creation of mixed-language solutions. In addition, these languages leverage the functionality of the .NET Framework, which provides access to key technologies that simplify the development of ASP Web applications and XML Web services. Visual Studio .NET Highlights Some of the latest features available in the Visual Studio .NET are: tools and other and technologies deployment to of development,

Language Enhancements Microsoft Visual Basic, Microsoft C++, and Microsoft JScript have all been updated to meet your development needs. Additionally, a new language, Microsoft C#, has been introduced. These languages leverage the functionality of the .NET Framework, which provides access to key technologies that simplify the development of ASP Web applications and XML Web services The .NET Framework The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The .NET Framework is designed to fulfill the following objectives:

To

provide

consistent

object-oriented

programming

environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.

To

provide

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 unmanaged code. The class library, the other main component of the .NET Framework, is a comprehensive, object-oriented collection of reusable types that you can use to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services. The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts. Features of the Common Language Runtime The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime.

With regards to security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it is being used in the same active application. The runtime also enforces code robustness by implementing a strict type- and code-verification infrastructure called the common type system (CTS). The CTS ensures that all managed code is selfdescribing. The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety. In addition, the managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common application errors, memory leaks and invalid memory references. The runtime also accelerates developer productivity. For example, programmers can write applications in their development language of choice, yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing applications.

.NET Framework Class Library The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code can derive functionality. This not only makes the .NET Framework types easy to use, but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components can integrate seamlessly with classes in the .NET Framework. For example, the .NET Framework collection classes implement a set of interfaces that you can use to develop your own collection classes. Your collection classes will blend seamlessly with the classes in the .NET Framework. As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. For example, you can use the .NET Framework to develop the following types of applications and services:

Console applications. Scripted or hosted applications. Windows GUI applications (Windows Forms). ASP.NET 20052005applications. XML Web services. Windows services.

For example, the Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. If you write an ASP.NET 20052005Web Form application, you can use the Web Forms classes.

Visual Studio .NET 2005


C#. Net is one of the easiest programming tool to master. With some basic guidance, anybody could come up with a nice little windowsbased program within a short time, age is not the limit. In addition to this, Visual Basic enables one to you could develop very advance and powerful applications. Indeed, Visual Basic 6.0 even allows you to develop web applications.

C# .Net, the next generation of Visual Basic, is designed to be the easiest and most productive tool for creating .NET applications, including Windows applications, Web Services, and Web applications. While providing the traditional method ease-of-use of Visual Basic

development, C# .Net also allows optional use of new language features. Inheritance, overloading, structured exception handling, and free threading all make Visual Basic a powerful objectoriented programming language. C# .Net fully integrates with the .NET Framework and the Common Language Runtime, which together provide language interoperability, simplified deployment, enhanced security, and improved versioning support. Asp.Net 200520052005 is the second release of C# .Net, building on the high productivity and outstanding performance of the first release. Using a single programming model, Asp.Net 200520052005 enables you to easily create rich desktop applications for Microsoft Windows, and powerful Web applications. This release also includes integrated support for the creation of applications for wireless, Internet-enabled hand-held devices. You can accomplish these capabilities using the Visual Basic programming skills that you already have. Unless otherwise noted, all of the features listed below are available in every member of the Visual Studio family product line which enables C# .Net development including: Asp.Net 200520052005 Standard, Visual Studio .NET 2005 Professional, Visual Studio .NET 2005 Enterprise Developer, and Visual Studio .NET Enterprise Architect. Its Features include: 1. Powerful Windows-based Applications in Less Time

In addition to great C# .Net 2002 features such as a powerful new forms designer, an in-place menu editor, and automatic control anchoring and docking, Asp.Net 200520052005 delivers new productivity features for building more robust applications easily and quickly. With an improved integrated development environment (IDE) and a significantly reduced startup time, Asp.Net 200520052005 offers fast, automatic formatting of code as you type, improved IntelliSense, an enhanced object browser and XML designer, and much more. 2. Direct Access to the Platform Visual Basic developers have full access to the powerful capabilities available in the new and improved .NET Framework 1.1. Now, developers can easily program system services including the event log, performance counters, and file system eliminating the need to use cumbersome 'Declare' statements. The new Windows Service project template enables Visual Basic developers to build real Microsoft Windows NT Services. Please note, programming against Windows Services and creating new Windows Services is not available in C# .Net Standard, it requires Visual Studio 2005 Professional, or higher. 3. .COM Interoperability Maintain your existing code without the need to recode. COM interoperability enables you to leverage your existing code assets and offers seamless bi-directional communication between Visual Basic 6.0 and C# .Net applications. 4. Web-based Applications Create Web solutions in Asp.Net 200520052005 using the shared Web Forms Designer and the familiar "drag and drop to build your forms, double-click and write code to respond to events" mechanism. New to

Asp.Net 200520052005 is an enhanced HTML Editor for working with complex Web pages. Use IntelliSense technology and tag completion, or choose the WYSIWYG editor for visual authoring of interactive Web applications. 5. Full Object-Oriented Constructs Create reusable, enterprise-class code using full object-oriented constructs. Language features include full implementation inheritance, encapsulation, and polymorphism. Structured exception handling provides a global error handler and eliminates spaghetti code. 6. Simplified Deployment With Asp.Net, you can build applications more rapidly and deploy and maintain them with greater efficiency. Together, Asp.Net 20052005and the new .NET Framework 1.1 solve your application setup and maintenance problems and make "DLL Hell" a thing of the past. Sideby-side versioning enables multiple versions of the same component to live safely on the same machine so that applications can consume a specific version of a component. XCOPY-deployment and Web autodownload of Windows-based applications combine the simplicity of Web page deployment and maintenance with the power of rich, responsive Windows-based applications 7. Mobile Applications Asp.Net 2005and the .NET Framework 1.1 now offer integrated support for developing mobile Web applications for more than 200 Internetenabled mobile devices. These new features give developers a single, mobile Web interface and programming model to support a broad range of Web devices, including WML 1.1 for WAPenabled cellular phones, compact HTML (cHTML) for i-Mode phones, and HTML for Pocket PC, handheld devices, and pagers.

8. XML Web Services XML Web services enable you to call components running on any platform using open Internet protocols. Working with XML Web services is easier than ever in Asp.Net, where enhancements simplify the discovery and consumption of XML Web services that are located within your firewall. XML Web services can be built as easily as you would build any class in Visual Basic 6.0. The new XML Web service project template builds all underlying Web service infrastructure for you.

9. Reuse Existing Investments Reuse all your existing ActiveX Controls. Windows Forms in Asp.Net 20052005provide a robust container for existing ActiveX controls. In addition, full support for existing ADO code and data binding enable a smooth transition to Asp.Net.

10. Upgrade Wizard Upgrade your code to receive all of the benefits of Asp.Net. The C# .Net Upgrade Wizard, available in Asp.Net 20052005Standard Edition, and higher, upgrades up to 95 percent of existing Visual Basic code and forms to C# .Net with new support for Web classes and User Controls. 11. The Easiest, Most Popular Language Develop applications using the most readable and easy-to-write programming language available. Background compilation provides instant feedback and squiggles for error detection.

12. The Largest Developer Community Incorporate resources, components, and code from more than 3 million Visual Basic developers worldwide. Utilize components from the immense third-party control vendor market to build rich .NETconnected applications.

Active Server Pages


ASP is a server-side scripting feature that can be installed with IIS 5 on Windows 2000. Earlier versions of IIS and ASP were included with IIS 3 and 4 (NT Option Pack). Once you've installed Windows 2000 with IIS 5, you're ready to create scripts that run on your server and generate pages and Web content. Active Server Pages are HTML pages that contain scripts which are processed on the server. The result of the script is converted to HTML before being sent to the Web browser. These server-side scripts, written in VB Script, JScript, Perl or other scripting language, can make use of custom or packaged ActiveX Server components to extend the Web server with application-specific functionality. Because only HTML need be sent to the client, a user can access the pages using a wide variety of browsers on different operating systems. Figure 1 shows a schematic of the processing behind a browser request to an ASP page.

Figure 1. Active Server Pages is a powerful Web application development framework for building dynamic Web sites. Since an ASP page is an HTML document, all HTML tags are allowed in the ASP file and can be used normally. ASP files provide the ability to dynamically generate HTML tags within the source ASP page before it is sent to the browser. You can freely include server side script anywhere in the ASP file and intermingle it with HTML. Specifically, functionality: Server-side scripting. The ability to embed scripting such as VB Script, JScript, Perl, or other language syntax directly in an HTML page for execution on the Web server as opposed to the Web browser. Flexible Web-to-database connectivity. Through serverside scripting and Active Data Objects (ADO), developers can easily build rich database functionality into their Web sites. State Management. Active Server Pages provide the ability to easily track and manage application state on a per-user, perapplication, and per-server basis using built-in objects. This helps overcome the limitations of the stateless HTTP protocol for building rich Web applications. Active Server Components. Perhaps the most important feature of Active Server pages is the ability to instantiate and use programmable components. These components can be created in tools such as Visual Basic, Visual C++, Visual J++, Borland Delphi and Powersoft PowerBuilder. This enables Active Server Pages provide the following core

developers

to

integrate

Web

applications

with

existing

client/server systems. The Scripting Engine Active Server Pages features an environment that processes scripts that may be incorporated into HTML pages. It is not a scripting language. It contains specific language-specific syntax required for operations, based on the scripting engine being used. VBScript and JScript scripting languages are contained within ASP. The default scripting language is VBScript, but this can easily be changed to JScript. Scripts are written in languages that have specific rules. A user must employ the correct syntax for successful application. To use another scripting language, the server must run the scripting engine that understands the language. Users may refer to Using Scripting Languages for more information on changing the primary scripting language default, use of VBScript, JScript and other scripting languages with ASP.

Java Script JavaScript is used in millions of Web pages to improve the design, validate forms, and much more. JavaScript was developed by Netscape and is the most popular scripting language on the internet. JavaScript works in all major browsers that are version 3.0 or higher.

What is JavaScript?

JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language - a scripting language is a lightweight programming language A JavaScript is lines of executable computer code A JavaScript is usually embedded directly in HTML pages JavaScript is an interpreted language (means that scripts execute without preliminary compilation) Everyone can use JavaScript without purchasing a license JavaScript is supported by all major browsers, like Netscape and Internet Explorer

What can a JavaScript Do?

JavaScript gives HTML designers a programming tool : HTML authors are normally not programmers, but JavaScript is a scripting language with a very simple syntax! Almost anyone can put small "snippets" of code into their HTML pages

JavaScript can put dynamic text into an HTML page A JavaScript statement like this: document.write("<h1>" + name + "</h1>") can write a variable text into an HTML page

JavaScript can react to events : A JavaScript can be set to execute when something happens, like when a page has finished loading or when a user clicks on an HTML element

JavaScript can read and write HTML elements :

A JavaScript can read and change the content of an HTML element

JavaScript can be used to validate data : A JavaScript can be used to validate form data before it is submitted to a server, this will save the server from extra processing

VB Script VBScript is a Microsoft technology that requires Microsoft's Internet Explorer! VBScript is a script version of visual basic supported by Internet Explore 3.0 and above. With VB Script, you can make your web site dynamic and interactive. VB Script code is interpreted as an script by the browser and Visual Basic terms are used. For example declaring a variable, writing sub, or function in VB Script is done similar to Visual Basic but keep in mind that Visual Basic is programming language for applications while VB Script is small script version coded with HTML or ASP documents. To place VB Script with ASP or HTML document, use <script language = "vbscript">. With this term script tells the browser that the content from this tag to the end tag </script> to be interpreted as script language. We also inform the browser that this is a VB Script by setting the language equal to "vbscript". VB Script code can be placed in head or body section of any HTML document depends on the favored result. The head section is good place to insert any procedures while the body section is good place to execute the final results. What is VBScript?

VBScript is a scripting language

A scripting language is a lightweight programming language VBScript is a light version of Microsoft's programming language Visual Basic

How Does it Work? When a VBScript is inserted into a HTML document, the Internet browser will read the HTML and interpret the VBScript. The VBScript can be executed immediately, or at a later event. ASP Framework

The ASP Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The ASP Framework is designed to fulfill the following objectives:

To provide a consistent programming environment whether object code is stored and 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 Asp Framework can integrate with any other code. The ASP Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code; thereby creating a software environment that can exploit both managed and unmanaged features. The asp Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts. For example, ASP hosts the runtime to provide a scalable, server-side environment for managed code. ASP works directly with the runtime to enable ASP applications.

Microsoft Access Microsoft Access is a powerful program to create and manage your databases. It has many built in features to assist you in constructing and viewing your information. Access is much more involved and is a more genuine database application than other programs such as Microsoft Works. Microsoft Access 2000 gives you powerful new tools for managing your databases. Share your database with co-workers over a network, find and retrieve information quickly, and take advantage of automated, pre-packaged wizards and solutions to quickly create databases

First of all we need to understand how Microsoft Access breaks down a database. Some keywords involved in this process are: Database File, Table, Record, Field, Data-type. Here is the Hierarchy that Microsoft Access uses in breaking down a database.
Database File: This is your main file that encompasses the entire database and that is saved to your hard-drive or floppy disk. Example) StudentDatabase.mdb Table:A table is a collection of data about a specific topic. There can be multiple tables in a database. Example #1) Students Example #2) Teachers Field:Fields are the different categories within a Table. Tables usually contain multiple fields. Example #1) Student LastName Example #2) Student FirstName

Datatypes:Datatypes are the properties of each field. A field only has 1 datatype. FieldName) Student LastName Datatype) Text

ADO .NET ADO .NET is extremely flexible and dynamic and you can do anything. A simplified diagram of ADO .NET objects was given below:

The Active-X data object data control (ADODC) allows the user to create a connection to the data source. A connection can be established to any type of database whether relational or nonrelational, local or remote. It provides an object-oriented programming interface for accessing a data source using an OLE DB data provider. The ADO model has three main components: the connection object, the command object, and the recordset object. Objects Connection Object: The connection object is the highest-level object in the ADO object model. It is used to make a connection between your application and an external data source, here Microsoft Sql server. Command Object: The command object is used to build queries, including user-specific parameters, in order to access records from a data source. Typically, these records are returned in a recordset object. Recordset Object: The recordset object is used to access records returned from a SQL query. Using this object, you can navigate through the records returned, modify the existing record, add new record or delete specific records.

The main benefit of this, and one of the greatest innovations of ADO .NET, is that once you build a DataSet in your project, you can process it in about the same way no matter what the original source of the data was. It doesn't really matter to your program where the data came from. The DataAdapter objects provide the unique capability that different sources of data require but they all create the same DataSet object.

A key advantage is that this means ADO .NET works great with muli-tiered ('client/server' or 'client/middleware/server') systems -- such as the Internet! After a Dataset is created, your program can disconnect from the actual physical source of the data (the database) and only needs to reconnect once either a change or more data is needed. A Dataset can be thought of as being like a custom database just for your program. There are tables, columns, relationships, constraints, views, and so forth. Changes to the 'real' database are communicated using messages (that is, SQL commands in our case) and this further isolates your program from changes, differences, or even problems (such as the database being taken offline) to the 'real' database.

ANALYSIS

Data Flow Diagrams (DFDS). Entity Relationship Diagram (ER-Diagram). Structured charts. Data flows. Database Design.

DATA FLOW DIAGRAMS (DFDS)

A DFD is a graphical representation that depicts information flow and the transitions that are applied as data now from input to output, the basic form of a DFD is also known as a Data Flow graph, or a Bubble chart. DFD may be used to represent a system or software at any level of abstraction. DFDS can be portioned into levels that represent increasing information flow and functional detail. A level 0 DFD, also called a fundamental system model or a context model, represents the entire software element or a single bubble with input and output data indicated by incoming & outgoing arrows, respectively.

A level 1 DFD may contain five or six bubbles with interconnection arrows. Each of the processes represented at level 1 is a sub function of the overall system depicted in the context model.

DFD NOTATIO

It represents a processor or transform that is applied to data.

It represents data store-stored information that is used by software. It represents one or more data items.

It represents an external entity.

Transaction information database Accessing

Customer

Pharma Helpline

Information Query from Members Query solved

Use Case Diagram

Masters Suppliers Details Login Receiving

Customer

Retailer Details Parts Details Products Details

Users
Billing Shipment Sub location in charges Details

Report

Graph

Activity Diagram

Custome r

Users

Start

Login

Masters

Receiving

Validation

New Customer
Billing
Stop

No
Send Validation Error message

Yes

Shipment Report Show Details

Graph

Zero level DFD

Client database

Gathering information Gathering Query Customer Query Details Gathering Information Stockist database Brand report database Pharma Helpline information Generic information database

ER DIAGRAM

Sales and Customer Tracking System

Has

Users

User Name

Passwor d CPerson

Manage

Suppliers
Sid BName Photo CName Website Gender

Email

Address

Photo

Manage
Co.Name RName

Retailer

Email

MNo Pno Address

Manage

Products

Parts

ProName

Cost. ID Name Remarks PName Qty.

Manage

Sub location
Qty.
Country State City

Cost
ProName

Manage

Purchase Order
Co.Name RName SNo. CName Date Gender

Total MNO Address

Manage

Billing

Inventory

Administrative

Purchase Order

Manage

Transfer Inventory

Put Inventory

ENTITY RELATIONSHIP DIAGRAM

ER Diagrams are used to represent the output relationship pair. It was originally proposed for the design originally of relational database system. A set primary component is identified for the ER Diagrams, data objects, attributes, relationship and various type indicators. This primary purpose of ER Diagram is to represent data object & their relationships. Data objects are real world entities represents by a labeled rectangle. A labeled diamond represents relationships. Connections between data objects and relationships are established using a special symbol that indicates cardinally and modularity.

ER notations

Entity

Relationship

Attribute

Composite attribute

ENTITY RELATIONSHIP DIAGRAM (ER-DIAGRAM)

E1 R

E2

E1 R

E2

E R

ER- DIAGRAM SHOWING CUSTOMER AND PHARMA HELPLINE RELATIONSHIP STRUCTURED CHARTS

Structured charts are rough guidelines that explain the working of the program. The structure chart of the program is a graphical representation of its structure. The structure of a program is made up of the modules of that program together with the interconnections between modules. The general structured chart about the working of Pharma helpline system i.e. as follows:

Pharma Helpline

Client information

Brand information

Generic name information

Stockist information

Report

DATA FLOWS

Start

Enter client ID

Yes

Does the ID Exists ?

No

Feedback

Stop

DATA DICTIONARY
User tabel Rid: A unique ID that is allocated to each Customer in order to identify him. Name: FName: Gender: Quali: DOB: Address: MobileNo: UName: Pass: Photo: The name of the New Customer. The Father name of the New Customer. The Gender of the New Customer. The Qualification of the New Customer. The Date of Birth of the New Customer. The Address of the New Customer. The Mobile Number of the New Customer. The User Name of the New Customer. The Password of the New Customer. The Photo of the New Customer.

Suppliers table Rid: A unique ID that is allocated to each in order Suppliers to identify him. Sid: A unique ID that is allocated to each in order Suppliers to identify him. BName: CName: Gender: Address: Mob: Email: Website: CPerson: Photo: The Business Name of the Suppliers. The Contact Name of the Suppliers. The Gender of the Suppliers. The Address details of the suppliers. The contact details of the Suppliers. The contact details of the Suppliers. The contact details of the Suppliers. The contact person of the Suppliers. The Photo of the Suppliers.

Retailer table Rid: A unique ID that is allocated to each Item that is in the catalogue of the warehouse in order to identify it. CoName: RName: Address: PNo: MNo: Email: Photo: The name of the Retailer Company. The name of the Retailer. The Address of the Retailer. The phone Number of the Retailer. The contact number of the Retailer. The Email address of the Retailer. The Photo of the Retailer.

Products table Rid: A unique ID that is allocated to each Item that is in the catalogue of the warehouse in order to identify it. Id: A unique ID of the Products.

Name:

The name of the Products.

Remarks:

The Products of Remarks.

Parts table Rid: A unique ID that is allocated to each Item that is in the catalogue of the warehouse in order to identify it. ProName: PName: Qty: Cost: Remarks: The name of the Products. The Part name of the Products. The Quantity of the Parts. The Cost of the Parts. The Parts of Remarks.

Sublocaton table Rid: A unique ID that is allocated to each Item that is in the catalogue of the warehouse in order to identify it. Country: State: SLocation: The Name of the Country. The name of the State. The sub location of the State.

Purchase table Rid: A unique ID that is allocated to each in order Purchase to identify him. CoName: RName: Address: Mob: Email: Date: SNo: RefNo: ProName: PName: Cost: Qty: Total: The name of the Company Name. The Name of the Retailer. The Address details of the Retailer. The contact details of the Retailer. The contact details of the Retailer. The Purchase Date. The Bill Number of the Purchase. The Reference number of the Purchase. The name of the Products. The Part name of the Products. The Cost of the Parts. The Quantity of the Parts. The Total Cost of the Parts.

TInventory table Rid: A unique ID that is allocated to each in order Transfer Inventory to identify him. Date: CoName: RName: ProName1: Remarks1: Parts: Parts1: The date of Transfer Inventory. The name of the Company Name. The Name of the Retailer. The name of the Products. The Products of Remarks. The Part name of the Products. The Part name of the Products.

Billing table Rid: A unique ID that is allocated to each in order Billing to identify him. BillNo: Date: The Bill No of the Billing. The date of the Billing.

CoName: RName: Address: Mob: Email: ProName: PName: Des: Stotal: Vat: TCartage: PExpense: RounOff: GrandTotal: Cost: Qty: Disc: Total:

The name of the Company Name. The Name of the Retailer. The Address details of the Retailer. The contact details of the Retailer. The contact details of the Retailer. The name of the Products. The Part name of the Products. The Description of the Part. The Sub total of the Parts. The vat (%) in parts. The Transport Cartage fair of the parts. The Packing Expense fair of the parts. The Round off of the parts. The Grand Total of the Parts. The Cost of the Parts. The Quantity of the Parts. The Discount (%) of the Part. The Total Cost of the Parts.

CHAPTER 6: SYSTEM DESIGN

FORM DESIGN

frmLogin.cs

frmMain.cs

frmSuppliers.cs

frmRetailer.cs

frmProducts.cs

frmPart.cs

frmSubLocation.cs

frmPurchaseOrder.cs

frmBilling.cs

frmTInventory.cs

frmViewIBalance.cs

FrmviewITranstions.cs

frmInventoryReport.cs

frmPOReport.cs

frmAdminReport.cs

CHAPTER 7: SYSTEM TESTING

TESTING
Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software. The difficulty in software testing stems from the complexity of software: we cannot completely test a program with moderate complexity. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing

can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing. Software testing is a trade-off between budget, time and quality. Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible, but because the complexity of software is generally intractable -- and humans have only limited ability to manage complexity. It is also true that for any complex systems, design defects can never be completely ruled out. There are two types of testing required in software:

Black-box Testing
The black-box approach is a testing method in which test data are derived from the specified functional requirements without regard to the final program structure. It is also termed data-driven, input/output driven or requirements-based testing. Because only the functionality of the software module is of concern, black-box testing also mainly refers to functional testing -- a testing method emphasized on executing the functions and examination of their input and output data. The tester treats the software under test as a black box -- only the inputs, outputs and specification are visible, and the functionality is determined by observing the outputs to corresponding inputs. In testing, various

inputs

are

exercised

and

the

outputs

are

compared

against

specification to validate the correctness. All test cases are derived from the specification. No implementation details of the code are considered. It is obvious that the more we have covered in the input space, the more problems we will find and therefore we will be more confident about the quality of the software. Ideally we would be tempted to exhaustively test the input space. But as stated above, exhaustively testing the combinations of valid inputs will be impossible for most of the programs, let alone considering invalid inputs, timing, sequence, and resource variables. Combinatorial explosion is the major roadblock in functional testing. To make things worse, we can never be sure whether the specification is either correct or complete. Due to limitations of the language used in the specifications (usually natural language), ambiguity is often inevitable. Even if we use some type of formal or restricted language, we may still fail to write down all the possible cases in the specification. Sometimes, the specification itself becomes an intractable problem: it is not possible to specify precisely every situation that can be encountered using limited words. And people can seldom specify clearly what they want -- they usually can tell whether a prototype is, or is not, what they want after they have been finished. Specification problems contribute approximately 30 percent of all bugs in software. The research in black-box testing mainly focuses on how to maximize the effectiveness of testing with minimum cost, usually the number of test cases. It is not possible to exhaust the input space, but it is possible to exhaustively test a subset of the input space. Partitioning is one of the common techniques. If we have partitioned the input space and assume all the input values in a partition is equivalent, then we

only need to test one representative value in each partition to sufficiently cover the whole input space. Domain testing partitions the input domain into regions, and considers the input values in each domain an equivalent class. Domains can be exhaustively tested and covered by selecting a representative value(s) in each domain. Boundary values are of special interest. Experience shows that test cases that explore boundary conditions have a higher payoff than test cases that do not. Boundary value analysis requires one or more boundary values selected as representative test cases. The difficulties with domain testing are that incorrect domain definitions in the specification can not be efficiently discovered. Good partitioning requires knowledge of the software structure. A good testing plan will not only contain black-box testing, but also white-box approaches, and combinations of the two.

White-box testing
Contrary to black-box testing, software is viewed as a white-box, or glass-box in white-box testing, as the structure and flow of the software under test are visible to the tester. Testing plans are made according to the details of the software implementation, such as programming language, logic, and styles. Test cases are derived from the program structure. White-box testing is also called glass-box testing, logic-driven testing or design-based testing. There are many techniques available in white-box testing, because the problem of intractability is eased by specific knowledge and attention on the structure of the software under test. The intention of exhausting some aspect of the software is still strong in white-box testing, and some degree of exhaustion can be achieved, such as executing each

line of code at least once (statement coverage), traverse every branch statements (branch coverage), or cover all the possible combinations of true and false condition predicates (Multiple condition coverage). Control-flow testing, loop testing, and data-flow testing, all maps the corresponding flow structure of the software into a directed graph. Test cases are carefully selected based on the criterion that all the nodes or paths are covered or traversed at least once. By doing so we may discover unnecessary "dead" code -- code that is of no use, or never get executed at all, which cannot be discovered by functional testing. In mutation testing, the original program code is perturbed and many mutated programs are created, each contains one fault. Each faulty version of the program is called a mutant. Test data are selected based on the effectiveness of failing the mutants. The more mutants a test case can kill, the better the test case is considered. The problem with mutation testing is that it is too computationally expensive to use. The boundary between black-box approach and white-box approach is not clear-cut. Many testing strategies mentioned above, may not be safely classified into black-box testing or white-box testing. It is also true for transaction-flow testing, syntax testing, finite-state testing, and many other testing strategies not discussed in this text. One reason is that all the above techniques will need some knowledge of the specification of the software under test. Another reason is that the idea of specification itself is broad -- it may contain any requirement including the structure, programming language, and programming style as part of the specification content. We may be reluctant to consider random testing as a testing technique. The test case selection is simple and straightforward: they are randomly chosen. Study in indicates that random testing is more cost effective for many programs. Some very subtle errors can be

discovered with low cost. And it is also not inferior in coverage than other carefully designed testing techniques. One can also obtain reliability estimate using random testing results based on operational profiles. Effectively combining random testing with other testing techniques may yield more powerful and cost-effective testing strategies.

CHAPTER 8: DOCUMENTATION

USERS MANUAL
The following points provide the user sample knowledge on HOW TO USE the project: (1) As this project is menu based, on the start up the user will see the main menu consisting of seven options, the user is required to click any one of these options.

(2)

According to the option selected, the user will get a new screen where all the necessary information is asked from him. The working of this project has been done in such a way that user is given every information about his current working.

(3)

If a new item is to be registered the user will automatically be asked to enter all the relevant details. If the user wants to view any details related to customer or supplier the user is required to just click on the view menu and the record of that automatically generated.

(4)

If some transaction is to be made which can either be purchase or invoice of items the user will automatically be asked to enter the relevant details. Also when the user clicks on the purchase order option the changes are automatically saved at the backhand.

(5)

If the user wants to add, edit or delete the supplier details he just has to click on Enter/View other information in the main menu. Automatically the relevant information is asked from him. The user just has to click on add, edit to save the changes.

(6)

Last but not the least, if the user wants to see the reports that include list of items that are categorized as customer information report, product information report user just has to click on the caption of the report and automatically that report will be generated.

(7)

The Back option in the sub menus enable user to come back to the previous menu and Exit option in the main menu enable user to quit from the project itself.

(8)

In certain cases it is required that only integer values should be entered so a validation is made which allows the user to enter only integer values in that places. Any other value is not entertained.

(9)

When the user is entering the date a validation has been put to check that the date entered by the user is a valid one.

(10) Also various type of exception handlers have also been included throughout the application which raise an error message when some error occurs while running the application.

CHAPTER 9: CONCLUSION

CONCULSION
The system is a step to completely automate the management system of AIMS, with respect to the customers, Suppliers, items and the orders. It aims at reducing the time and effort of the officials at AIMS , hence enabling proficient resource management. The system is expected to be a complete CRM solution that will enhance the Clients business value. From the features of the system discussed in this report, it is evident that the objective of this software has been met as per the client requirements successfully.

CHAPTER 11: SCOPE

FUTURE ENHANCEMENTS

Distribution System If the warehouse has several branches then a proper allotment of resources and distribution of products should be carried out in an opposite and efficient manner.

VAT Implementation. With the advent of Value Added tax in the industry, it will eventually become essential to consider the new tax system in the generation of the bills and invoices.

Providing Dynamic Help A dynamic application to provide the user with real-time help could be included to make the application more users friendly.

Use of Bar Codes Using bar code scanners to log stock movement in or out greatly improve accuracy and efficiency. Bar code labels can easily be printed from stock records held in the database.

LIMITATIONS
1. A centralized database increases the possibility of single point errors. I.e. any incorrect data in any module of the software will affect all modules. 2. In case the administrators password is not secure, access can be obtained to all modules of the software.

ADVANTAGES

The Online interface simplifies the user interaction with the firm thus increasing revenues. A fully automated Database management system simplifies the work at the companys end. Easy retention of customers as well as increase in the market penetration. Updating customer records is greatly simplified through this software. Activation of customer accounts with minimum time lag. The possibility of unauthorized access is completely eliminated.

SCOPE OF PROGRAM
The Automated Inventory Management System (AIMS) is efficient software that is being used to maintain customer, supplier, items and orders accounts related to the submission of orders and supplying them. This software can be used at various levels of management by determining the respective rights of users to completely automate the system as required by the staff of AIMS.

IMPORTANCE OF WORK
The work carried is of great importance from the CRM point of view. In addition to this, the other important aspects of developing this software are: Simple The software developed is simple to use by any user without prior knowledge of software development. Efficient The software is developed such that maximum no. of transactions are enabled in minimum time and with minimum errors. Alerts and checks are provided at every step of the software to eliminate errors. Reduced Overhead The software reduces the overhead of maintaining the database manually, thus saving on time and effort. Time Efficient The development of this software has greatly reduced time taken for maintaining records, updating records and activating customer accounts. Security

Each user is given access to only those components to which he has rights through this software thus eliminating the possibility of unauthorized access.

BIBLIOGRAPHY

Reference Books
Microsoft C# .Net : By Michael Halvorson Fundamentals of Database Systems : By Elmasri Navathe Active Server Pages : By A. Russell Jones

Websites
http://msdn.microsoft.com/ http://www.w3schools.com/ http://www.murach.com/

Você também pode gostar