Generation of the World
In this generation of the world, the business tends to evaluate their performance and carries out all the actions and executions of the operations only with the latest updates of the news in the market and updating with the newest technologies. All the business organizations are successfully moving ahead, as business cannot suffer competitive advantage in this scenario of economical environment. So for an industry, all its branches must be interconnected with each other and the all records must be maintained of the different departments within the organization. So this can only be managed by the means of internet, by which all the persons can update themselves by pressing just a click. In this web enabled system there are different departments such as sales, production, warehouse, accounts, purchase, and customer relationship management. For this reason the main aim of this project is to study the concept of all the existing technologies which can be applied in order to build this project so that the users of this system doesn't have any type of difficulties in using it. It is a unique system in its own respect with the various unique features provided. It is designed so as to automate the whole process of industry reducing the manpower and paper work involved. Through this all the different departments, customers, suppliers etc. can be updated and can viewed from anywhere. Here information is integrated so as to maintain and group together information from various departments of sales, production, warehouse, etc. In this system all the records of an individual is also maintained who is affecting the assets of the organization directly or indirectly. So this system is made on java as front end and mysql as back end as they were most suitable for the proposed project. The functionalities of this project are divided into three different parts core, enhanced and special. The process of project planning includes project management, the development plan, work breakdown structure, time management, and quality management which will ease the process of the steps for building this system. To manage the complicacies of software development organizations use standard steps called the System development methodology to develop and support their SDLC (Software development life cycle). The most suitable methodology for this project so that it can be completed on time is Prototype model. The four phases which are used in prototype model are identify needs and establish requirements, develop alternative designs, build interactive versions of the designs and evaluate designs.
A critical issue in the design of any complex software system is its architecture, that is, its gross organization as a collection of interacting components. A good architecture can help ensure that a system will satisfy key requirements in such areas as performance, reliability, portability, scalability, and interoperability. So in the domain research the system architecture is explained with a suitable diagram in which the flow of data is shown from client to server. The process of primary research is done by the means of questionnaires and interviews. Questionnaires were distributed to the selected responders in order to gather their views and the requirements. Finally the project is concluded with the learning experience, system limitations and future enhancements which can be enhanced later on.
I would like to take this opportunity to thank each and everyone who have helped me in every way to achieve the success of this project
Firstly, I would like to thank
- Mr. R.K. Choudhary - Director APIIT SD INDIA
- Mrs. Ravi Sachdeva - Project Manager
- Mrs. Geeta Nagpal - Project Supervisor
- Mr. Arun Choudhary - Project Advisor
For all their valuable suggestions, comments as well as guidance throughout the entire process of developing this system. I am truly indebted to them for their guidance in helping me to complete this report. Their comments and suggestions have helped me tremendously in producing a report that has met the academic requirements, well organized and professional.
Special thanks would also go to all my friends who have helped me through their constructive suggestions as well as information in completing the project. I would also like to thank all the participants who took time off to do my survey and which has contributed a lot in my research.
Chapter 1: Introduction
1.1 Context and Preliminary Investigation
1.1.1 Topic Background:
Integrated ERP and CRM Solution is a Rich Internet Application that provides ERP functionalities for small and middle level enterprises. The main features of it contains strong functions which allows to manage Sales of products manufactured, Purchases of the raw materials, Warehouse (inventory management), Bill of materials and production, Accounting (maintaining the transaction logs), CRM (Customer Relationship Management), Customers and contacts hierarchies, managing Documents(reports generated within the organization), to manage database schema, report generation and its customization.
The correct administration of the master data is a basic feature for guaranteeing the consistency and tracking of the organization process. The main objectives for developing this system are:
- Important information is shared between all areas of the organization
- It provides the most important characteristics of accounting system such as payment dues, costs, debits & credits of the suppliers and the customers, etc.
- Reports customization is also provided with the application. Customization function prompts the user to make changes in the report and can also add images instead of the standard report template.
- For companies providing services, this system allows to define services and resources and to manage of all actions.
- Each employee can graphically manage appointments
- Showing scheduled activities of each and every employee and specifying an interval of dates
1.1.2 Topic of the System: Integrated ERP and CRM and Solution
1.1.3 Target Audience: Integrated ERP and CRM Solution application is being developed generally for the Small and Midsize Enterprises. The primary target readers for this application are the businessmen who can implement this application within their organization. The enterprises which sales their products, purchase raw materials from different vendors, keeps records of the inventory in the warehouse, maintains the records of all the transactions taken place in the enterprise, prints reports, keeps tracks of the customer (customer relationship management).
1.1.4 Problem Context and rationale:
To enhance flexibility and adapting the specific organization particularities, an organization has to familiarize with the latest technologies and must enhance the skills with of the employees. There are a lot of functionalities which goes under an organization and the native method generally involves a lot of paperwork, consumes time and has geographical limitations. So there is always a need of updating the organization with the existing technologies. As an organization grows, however, it becomes increasingly difficult to manage without more formal work assignments and some delegation of authority. Advances in technology are the most frequent cause of change in organizations since they generally result in greater efficiency and lower costs for the firm. Technology is the way tasks are accomplished using tools, equipment and techniques. There is no such system all in one which can handle all the operations of an organization in it. This Web based ERP with an integrated of basic CRM will take care various issues within an organization. It will automate the whole processes and will reduce the manpower. There will be no need for manual records maintenance. As this is a web based application, so any authorized person can view any details at any time and from anywhere. It will also generate reports and it also supports customizing of reports within the application through customization functionality. In warehouse it shows future item quantities per warehouse related to figure availabilities of the current item, as defined in purchase orders and the estimated arrival date.
1.1.5 Tangible Benefits:
- The data transmitted between the client and the server are limited and there is no presentation content transmitted, therefore the reaction time over the Internet is very good because of the limited quantity of transmission.
- The master data is managed by the Master Data Management i.e. the Administrator such as report customization, database management, etc.
- In warehouse it allows the inventory in the specified organization to be up to date as the item amount availability in the warehouse are timely managed according to reshuffling of the items and products by the delivery notes, etc.
- In this application appointments can be managed graphically and can be viewed through a search panel by selecting suitable criteria.
- This application provides features to decrease the input of data manually. It frees the user from heavy burden of tasks and automatically it becomes free from human errors.
- This application allows to store different types of reports which are generated within the organization. Documents can also be recovered and displayed through search panel.
1.1.6 Intangible Benefits:
- Avoiding duplications by maintaining exclusive coding
- Important and reliable information is shared among all areas of the organization.
- Information is flowed easily between all the areas and are implemented in the different company processes.
- It will increase the productivity of the employees who are using the application.
- As this application will decrease the man-power required, so overall it will decrease the cost.
- Everything in the application is automated so there will be very minimal amount of paper work.
- As this is a web based application so everything in it will be up-to-date and can be accessed from anywhere and anytime. There is no time constraint.
- This automated application will increase the efficiency & productivity of the organization or the enterprises using it.
- This application will reduce the chance of human errors so there cannot be any type of fake results in front of the top level managements.
1.1.7 Objectives of system Development
126.96.36.199 Project goals and objectives
The main objectives of the system are:
- Provide Common Platform: A fair and competitive platform for organizations to enable sale, purchase, warehouse, accounting, etc.
- Demand Aggregation: The capacity to aggregate different departments (modules) of an organization.
- To provide a powerful layer including support of MDI (Multiple Document Interface)
- Information is flowed easily between all the areas and are implemented in the different company processes.
- Minimize Resource Costs: Improved planning and management to reduce the cost of resources traditionally required.
- Important and reliable information is shared among all areas of the organization.
- Accurate database design and re-usage of code in several applications.
1.1.8 Scope and function of the project:
188.8.131.52 Functions to be implemented
184.108.40.206.1 Core Functionalities: -
- Sales: - this system allows to manage the selling process. The document and reports which are generated are well defined and therefore it avoids repetitive human errors which could have occurred due to their negligence or by mistake. Sale document allows to define customer discounts and item discounts. In this module several types of sale documents are also available such as sale orders, sale contracts.
- Warehouse Management: - it allows the inventory in the specified organization to be up to date as the item amount availability in the warehouse are timely managed according to reshuffling of the items and products by the delivery notes, etc.
- Production Management: - this module assures the integrity and homogeneity of the whole system. In it the user can create different types of reports and they are also related to each other such as purchase order, invoice, payments scale, etc. The Bill of materials purchased from the suppliers are also generated in this module.
220.127.116.11.2 Enhanced Functionalities: -
- Accounting: - it allows to maintain all the types of transaction logs between the organization, suppliers and the customers, debits and credits of the customers and the suppliers, etc. It will automatically reduce the human effort therefore the user can be free from this type of tedious work and the organization will be benefited from the human errors.
- Document Management: - In this application document management is one of the enhanced functions. It will store all the different types of reports generated within the organization, such as all the transaction logs related to finance, all the sales orders, purchase orders, invoices, etc.
- Administration: - administrator has all the privileges of the application. Administrator can
- Change functions description
- Users definition and user-roles association
- Parameters definition, per application, company and user
- Database Management
18.104.22.168.3 Special Functionalities: -
- Customer Relationship Management: -
- Each employee can graphically manage appointments
- In Call-out types functionality it is possible to define the hierarchy of a specific call-out type
- Contacts management is also one of the feature in CRM
- Customer's management
- In CRM, a user can define activities and search them through a filter panel.
1.1.9 Major Deliverables of the project
- Project Proposal Form
- Project Specification Form
- Fully Working System
- User Manual
- Screen Shots of the application
1.1.10 Challenges involved in the project
- Domain research about Customer Relation Management. Tracking and organizing the contacts and details with its customers.
- Improving the services which are provided to customers.
- Research about the Enterprise Resource Planning. Implementation of ERP in an organization, core requirements of it, synchronizing multiple systems in it.
- The inventory management in the warehouse. Regularly updating the inventory data, managing the stock of different items, etc.
- Choosing the best front-end in which the application can be built on. The platform in which all the modules of the ERP can be built easily without any type of technical platform hindrance. The back-end should also be compatible with the front-end and it should be a heavy one. The database which can store lot of data, can handle network traffic easily (or which can answer multiple queries at the same time), etc.
- Multiple report generation in different modules.
- Providing option of report customization in report generation.
1.2 Project Planning
1.2.1 Project Management
As the competition in software industry in increasing rampantly vendor are look to increase their profits not by increasing the cost of software but by reducing the cost and time requirements of project development. One of the tools to efficiently supervise the software development process is though care full Project Management. The most crucial part is to manage the projects and to gain the confidence of the client. The developer should also realize the ratio and effectiveness in all the modules of the system, so that the project life cycle utility improves.
Project management in broader sense can be assumed as the framework within which a project lives its life cycle. Effective management of time, cost and resources are involved to achieve the best quality, top efficiency, ideal delivery performance, overall customer pleasure and project quality all with lower cost.
The entire project management can be divided into following parts namely:-
- Proposal writing
- Project planning and scheduling
- Project costing
- Project monitoring and reviews
- Personnel selection and evaluation
1.2.2 Project Development Plan:
1. Project Idea Generation and Planning
- Idea Generation
- Project Proposal Form
- Project Specification form
- Gantt chart
- Project Background
- Primary Research
- Secondary Research
- Selection of Methodology
- Selection of Programming Language
- Selection of Database
- Identification of Core Requirements of module
3. 1ST Increment (Personal Assistant):
Duration: 5 Weeks
2nd Increment (Project Management)
Duration: 5 Weeks
3rd Increment (Customer Management)
Duration: 4 Weeks
4th Increment (Accounting)
Duration: 2 Weeks
5th Increment (Report Generation)
Duration: 5 Weeks
Tasks during each increment:
- Requirement Analysis
- Creating Prototypes
- Evaluate Prototypes feedback
- Context flow diagram
- Data Flow Diagram
- Data Dictionary
- Sequence diagram
- ER diagram
- Screen layout
- Database design
- Content Design
Testing and evaluation
- Test Plans
- Unit testing
- Integration Testing
- System Testing
- White Box Testing
- Black Box Testing
- Regression Testing
- Configuration Testing
4. Critical Evaluation:
Duration: 2 Weeks
5. Project Submission:
Duration: 2 Weeks
1.2.3 Higher Level WBS - Graphical Representation
1.2.4 Time Management
22.214.171.124 Gantt Chart
1.2.5 Quality Management
126.96.36.199 Test Plan
188.8.131.52.1 Introduction to Testing
Testing is a process of technical investigation which helps in indentifying the integrity, correctness, logicality, security and quality of the developed applications on behalf of the individuals which specifies to disclose the quality related information about the product.
The difficulty in testing generates from the complexity of the software/application. Testing is generally more than just debugging the code.
184.108.40.206.2 Test Plan and Strategies
- Each and every web page, function, module will be tested individually under Unit Testing, again unit testing may be based upon Functional Testing, Structural Testing or Mutation Testing based upon conditions and requirements.
- Then there will be Integration Testing whenever the modules will be inter-related after successful completion of unit testing of these modules. Integration testing would be in Bottom-Up Approach. Ex. - Navigational Designs and Architectural Designs would be an important aspect to be tested inside this testing.
- There will be System Testing too; it can be in form of White Box Testing, Black Box Testing. As it will serve a chance to test the entire system at once checking almost everything right from small functions up to entire integration, from environment to platforms, etc.
- White Box Testing will be done for the core functionalities and Black Box Testing will be done for the enhanced and special functions.
- Regression Testing will also be done for the all the module to check whether the application works as specified even after the changes/additions/modification were made to it.
- Configuration Testing will also be done to check whether the system is supported by each of the configuration of software and hardware.
220.127.116.11.3 Three Layers of the System and Success Criteria
Detailed Test Plan & Evaluation of Success Criteria will be judged by following steps -
- Type of Testing
- Features to be tested
- Approach for the Testing
- Pass / Fail Criteria.
Evaluation on Success Criteria
The project would be considered successful if it meets the following criteria:
- Successful execution of test cases for Black Box Testing: All the test cases designed for black box testing should show expected results. Successful execution of test cases shows that system meets functional requirements.
- Proper Integration of unit modules: When modules are integrated, it should show expected results. Passing of parameters and return of results should be in expected manner. Successful Integration testing will prove the criteria
- A good user interface: User interface of ERP should follow HCI guidelines.
- Meeting of deadlines: The entire deadline set in the PSF should be met successfully. A good project management is one of criteria of a successful project.
- A normalized Database: In a ERP, database is of very crucial importance. A database should be designed in such a way so that there is minimum repetition of information. Moreover all the queries should be executed efficiently. Database should be designed up to maximum possible normal form
- Well Documented Report: A well done documentation helps in maintenance of system. It should be well formatted. Level of English should be good. No grammatical mistakes are accepted. Standard structure and font size would be appreciable.
- Follow of coding standards: The coding standards like proper commenting, proper indentation, proper naming of variables helps in easy maintenance of system. Future enhancements are always required. Without coding standards maintenance cost would be too high.
- Follow of SDLC: Generally while developing a system people do not follow SDLC. Literally following model chosen increase probability of successful system
- Consistency across phases: Generally Design does not says as said by research and analysis phase. Similarly Implementation does not say as said by Design phase. In a successful project all the phases of SDLC should speak same language.
Chapter 2: Problem Description
2.1 Introduction to problem Area
In today's period there are a lot of functionalities which goes under an organization and the native method generally involves a lot of paperwork, consumes time and has many geographical limitations. Current ERP's and CRM's don't have standardized application which can manage all the modules within an organization. Different systems implements different type of functionality within it, but it does not consider all of it together.
Suppose some existing systems in the market and which are currently used by most of the industries have some of the missing functions in each and every module of the system. For example accounts module consists of many functions such as debits, credits, etc. and the sales module consists of invoice, payments, pricelist, discounts, etc. but only some of these functions are only included in this modules and the rest of the things are done manually. And for maintaining relationship with the customers different system is used.
2.2 Proposed Solution
This Integrated ERP and CRM will have an impact on two most important parts of an organization, basically the core modules and the customer relationship management. The core modules such as:
- Sales: this system allows to manage the selling process. The document and reports which are generated are well defined and therefore it avoids repetitive human errors which could have occurred due to their negligence or by mistake. Sales is also integrated with the finance department so that up to date information and reliable data is given to them.
- Purchase: this module assures the integrity and homogeneity of the whole system. In it the user can create different types of reports and they are also related to each other such as purchase order, invoice, payments scale, etc.
- Warehouse Management: it allows the inventory in the specified organization to be up to date as the item amount availability in the warehouse are timely managed according to reshuffling of the items and products by the delivery notes, etc.
- Accounting: it allows to maintain all the types of transaction logs between the organization, suppliers and the customers, debits and credits of the customers and the suppliers, etc. It will automatically reduce the human effort therefore the user can be free from this type of tedious work and the organization will be benefited from the human errors.
- Documents Management: it allows to maintain the different types of reports generated within the organization such as the sales order, purchase orders, different types of invoices, all the transaction logs, etc.
- Report Generation and Customization: it generates multiple reports of different above mentioned modules and also customization of reports provided in the system. Customization functionality prompts the user to make changes in the report and they can edit the designing of it according to their wish. It can only be done by the administrator.
- Customer Relationship Management: this module ensures the services and the flow of activities within the organization. In it appointments can be managed on a particular date of a month and the user can also view their list of appointment through a search panel if any.
2.3 Benefits of the System
As this system is an integration of ERP and CRM, ERP related to sales, purchase, warehouse management, accounts, report generation, etc and Customer Relationship Management, which is a rare combination. This system takes care of all the above mentioned modules with total integration and relating to each other. Many existing system which have the features of sales, purchase, accounts, etc. does not have Customer Relationship Management in it and vice versa. This indeed makes the enterprises to purchase two different kinds of system which is difficult to maintain and both the systems has no relationship within themselves. This way a lot of time is wasted and the user have to put a lot of extra efforts to maintain both the systems simultaneously.
2.4 Relevancy of Title of Project
This system consists of many modules which are integrated into a single system and the Customer Relationship Management is also built in it as well, which is infact a different large module and generally made in separate system. And generally an ERP system has many components in it including hardware and software. So, as all this are included in this distinct system so I have named it as Integrated ERP and CRM Solution.
Chapter 3: Literature Review
3.1 Domain Research
3.1.1 Academic Research
- Hanson, J.J, 2004 "Successful ERP Implementations Go Far Beyond Software" San Diego Business Journal
- Bligh, Philip; Douglas Turk (2004). CRM unplugged - releasing CRM's strategic value. Hoboken: John Wiley & Sons
- Dyche, Jill, The CRM Handbook: A Business Guide to Customer Relationship Management (Addison-Wesley Information Technology) , August 2001, Addison-Wesley Professional
- Swift, Ronald S, Accelerating Customer Relationships: Using CRM and Relationship Technologies, September 2000, Prentice Hall PTR
- Merlin Stone, Neil Woodcock, Liz Machtynger, Customer Relationship Management, April 2000, Paperback publishing.
- Michael Gentle, CRM Project Management, October 2002, paperback publishing.
- Bligh, Philip, Enterprise CRM, April 2004, John Wiley & Sons
- Blokdijk, Gerard, CRM 100 Success Secrets - 100 Most Asked Questions on Customer Relationship Management Software, Solutions, Systems, Applications and Services, February 2008, Emereo Pty Ltd
- Brian Larson, Microsoft SQL Server 2000 Reporting Services, 2004, McGraw Hill.
- Matthew MacDonald, ASP.NET: The Complete Reference, 2002, McGraw Hill.
- Luke Welling, Laura Thomson, PHP and MySQL web development, September 2004, Sams; 3rd Edition
- Hugh E. Williams, David Lane, Web Database Applications with PHP and MySQL, March 2002
- RamaKrishnan, R & Gehrke, J 2000, Database Management Systems, Tata McGraw Hill, Singapore.
- Russell S. Winer, Customer Relationship Management: A Framework, Research Directions, and the Future, April 2001, Haas School of Business, University of California at Berkeley.
- David Lowenthal, Pioneering Stewardship: New Challenges for CRM, CRM Journal Fall 2003
3.2 Research on Development Methodology
Software development is a highly unorganized and diverse field. To manage the complicacies of software development organizations use standard steps called the System development methodology to develop and support their SDLC (Software development life cycle). This is very similar to any other commercial product's life cycle. Like they are created, tested, introduced in the market and finally removed and replaced with something else, so do software's go through their life cycle.
Various development methodologies are available for the process modelling. The most common of them are Prototype model, Spiral model, evolutionary model, waterfall model and RAD model. Selection of process methodology should be such that it responses to all the milestones to be performed, analyzed for completeness and consistently & documented in a requirement document, then the development team can go on to system development activities.
Why not Waterfall Model: -
- In waterfall model a module cannot be undertaken until and unless all previous modules are completed.
- Waterfall model freezes the requirements of the system and as Integrated ERP and CRM solution is a large project, so it might take a long time to complete.
- In this century where technology matters a lot and evolves rapidly, therefore it makes choices very much less effective and obsolete.
- In waterfall model changes are difficult to accommodate after the process has been started. Next module cannot be started before completion of first one.
- It is a sequential flow of model. The waterfall model accommodates iteration indirectly, so as a result, change can cause confusion as the project team proceeds.
- It also has difficulty in accommodating the natural uncertainty that exists at the beginning of a project.
- In my project as requirements are not very clear in the beginning. Exact requirements would be gathered by launching prototypes and getting user feedback. So waterfall model cannot be used for development.
Why not Hybrid Model: -
The common approach in this model is to use a structured method for the requirements analysis and specification stages and then shift to a more RAD-based approach, using prototyping for the incremental delivery of software.
Why not Spiral Model: -
- In Spiral model first of all a baseline plan is created and then an overall idea of the architecture is developed. After that the deployment of the product is incremented by successive iterations through designing, building, testing and next phase planning.
- Final solution can be inadequately documented and poorly structured
- Requires expertise in risk evaluation and reduction
- If system requirement are straightforward it will not be appropriate as iterations will not deliver any real benefits and will take up valuable time
- Complex, relatively difficult to followstrictly
- Risk assessment could cost more than development
- Applied differently for each application
Why not Rapid Application Development model?
Rapid application development (RAD) is a model which highlights an enormously short development cycle. Rapid Application development is a linear sequential model in which development is attained by component based construction. If requirements are well understood and project scope is constrained, then RAD process modifies a development squad to make a fully functional system within very short period of time.
- For the success of the RAD process it is very difficult for the users to perform the time management.
- In RAD scalability is diminished because the developed system starts as a prototype and develops into a finished system. Features are reduced due to time constraint and they are pushed to release in a very short span of time.
- If the developing system is large, then RAD would require very much well trained and highly skilled developers in the team and also both the end customers and the developing team should be well committed to complete the project within the time span otherwise RAD will fail.
3.3 Reason for Selecting Model
Why Prototype model?
Prototyping of information systems is a worthwhile technique for quickly gathering specific information about user's information requirements. As this system is a complex one and has unstructured or semi-structured problems so prototyping model will be the perfect candidate between all the methodologies. Prototype model will also elicit feedback about the proposed system and about how readily it is fulfilling the information needs of its users. The main advantage of prototyping model are the potential for changing the system early in its development and the possibility of developing a system that are more closely addresses users needs and expectation. As involvement of user is very much important for building this system, so prototyping model makes users secure enough to give an open reaction part of the relationship between the developer and users.
- Reduced time and costs
- Improved and increased user involvement
- Feedback is given by the users as they come to know about the system
- Application is refined regularly over time and therefore the developed system is more clear.
3.4 Research Outcome Conclusion
From the above research on development methodology and selecting model I have came to the conclusion that Prototyping model will be the perfect candidate for developing this system.
3.5 Technical Research
3.5.1 Programming Environment Research
In this section the various programming languages that can be used to make this project are being discussed. The various languages that can be used in this web based project are JAVA, C# and ASP.NET. Research on the various languages is being performed so as to choose the best suited language for the proposed system. The various languages will be discussed below.
Advantages of JAVA:
It is an approach that provides a way of modularizing programs by creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand. Its most significant property is platform independency, due to which it can be deployed on any system. Some of its advantages are as follows:
- SIMPLE: -
Java is one of the simplest languages as this automatically allocates the memory and for garbage collection. Simple and easy syntax makes it easy to learn.
Platform independency is one of the most important features which make it famous among other languages. It can run on any platform e.g. Windows 95 or Xp or NT, Macintosh, LINUX etc.
In an application many tasks can be performed simultaneously. This feature is needed in any application related to network and visual. This system requires multithreading and java is easily providing it.
This property of java helps the various computers to interact with each other as these clients are on distributed network. Through help of java interaction between various clients is possible.
Error detection at early stage make java robust in nature as possibility of errors at later stage is minimized.
Disadvantages of C Sharp:
C sharp mainly counts on .NET platform. It is developed only in windows platform and if something is not found in .NET platform then it is very hard to implement.
- GARBAGE COLLECTION
- TYPE UNIFICATION
- OPERATOR OVERLOADING
Proper management of any project is only possible if the garbage is managed properly. Handling memory management, garbage collection is added as a great feature to C# uses during runtime.
C# provides direct support for events. Although event handling has been a fundamental part of programming since programming began, there has been surprisingly little effort made by most languages to formalize this concept.
Most languages have primitive types (int, long, etc), and higher level types which are ultimately composed of primitive types. It is often useful to be able to treat primitive types and higher level types in the same way. For instance, it is useful to have collections which can take both ints as well as strings. Smalltalk achieves this by sacrificing some efficiency and treating ints and longs as types like String or Form. Java tries to avoid sacrificing this efficiency, and treats primitive types like in C or C++, but provides corresponding wrapper classes for each primitive - int is wrapped by Integer, double is wrapped by Double. C++'s templates allow code to be written which takes any type, so long as the operations done on that type are provided by that type.
Operator overloading allows programmers to build types which feel as natural to use as simple types (int, long, etc.). C# implements a stricter version of operator overloading in C++, but it allows classes such as the quintessential example of operator-overloading, the complex number class, to work well.
3.5.2 Database Research:
MySQL is a multithreaded, multi-user, SQL Relational Database Management System. It is completely compatible with JAVA developer's development language for this project. MySQL has special compatibility with Java and PHP. The reasons behind choosing MySQL as back-end are as per following:
- MySQL is good in compatibility with JAVA and is one of the best database for developing web applications.
- MySQL provides graphical user interface with command line prompt.
- While comparing with the other similar databases, MySQL installation is very much easy.
- MySQL database software comprises of a multi-threaded SQL Server which supports many kinds of backends as well as different kind of APIs.
- MySQL does not require any cost for the developing applications as it is a Open Source. Other databases such as DB2 and Oracle charges are very high when compared to MySQL.
- MySQL server has in-built support for SQL statements to check, optimize, and repair tables. These statements are available from the command line through the mysqlcheck client.
Some more additional MySQL features too -
- A broader subset of ANSI SQL 99, and the extensions
- Supports Cross-platform
- Supports Stored procedures, Triggers, Cursors, updatable Views
- Has True VARCHAR support, INFORMATION_SCHEMA , Strict mode
- X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using Oracle's InnoDB engine
- Independent storage engines (MyISAM for reading speed, InnoDB for transactions and referential integrity)
- Has Archival support for storing historical data in little space
- Transactions with the InnoDB, BDB and Cluster storage engines; savepoints with InnoDB
- SSL support, Query caching, Nested SELECTs
- Replication with one master per slave, many slaves per master, no automatic support for multiple masters per slave.
- Full-text indexing and searching using MyISAM engine
- Has Full Unicode support, Embedded database library
- ACID compliance using the InnoDB, BDB and Cluster engines
3.6 Domain Research
3.6.1 Research on System architecture
The main consequence in designing or building any complex application is its architecture, which is its total organization as a collection of interacting elements. To satisfy the basic requirements of an application by means of performance, movability, dependability, scalability and interoperability a good architecture of the application is very must. It is the key element for achieving the objectives successfully.
Integrated ERP and CRM solution will be developed in JSP and Servlets, and is based on Model View Controller (MVC) paradigm. Its basic idea is to minimize the coupling among objects in a system by aligning them with a specific set of responsibilities in the area of the persistent data and associated rules (Model), presentation (View), and the application logic (Controller). In Model View Controller architecture model is responsible for the maintenance of the application state and the data. It receives and answers to queries from the View. It also provides notifications to the View when any type of changes takes place. Whereas the Controller updates the Model based on the execution of system logic in response to the users dialog buttons, form, submit requests, etc. The Controller is also responsible for telling the View what to show in response to user requests and the View is responsible for the actual delivering of data provided by the Controller. MVC simplifies the communication between the Client side system and the Server Side system and thus the system can be benefited as it can be potentially be used with other databases.
3.6.2 Peer-To-Peer Architecture and Client Server
Normally a client-server communication takes place in this order:
- The client software creates a query.
- It connects to the server and sends the query to it.
- The server analyzes the query.
- It processes the query.
- It sends the results to the client.
- The client presents the results to the user
Every client-server application contains three functional units:
- Presentation logic or user interface
- Business logic
These functional units can reside on either the client or on one or more servers in our application.
- In 2-tier client-server architecture, the business logic is buried inside the user interface on the client or within the database on the server in the form of stored procedures.
- In 3-tier client-server architecture, the business logic resides in the middle tier, separate from the data and user interface. Thus, 3-tier systems can integrate data from multiple sources.
In this project the developer have used 3-tier client-server model where the application layer resides in the application layer, the business layer resides within the business layer and the data layer resides within the database. Here the form is acting as the client and the database is acting as the server. Hence in this case both the client and the server exist on the different machine. In this case the client is the web browser that makes request and the server is the data server of the application that holds the centralized database.
4. Research Method
4.1 Primary Research
Integrated ERP and CRM's solution is a Rich Internet Application which provides functionalities of an ERP for small and middle level enterprises. It also includes strong functions such as of sales, procurement, warehouse, accounting, customer and contacts hierarchies, manufacturing appointment management, document management, and reports. In it basic Customer Relationship Management is built in as well. The correct administration of the master data is a basic feature for guaranteeing the consistency and tracking of the organization process.
Kindly answer the questions listed below. Your response will be of much help in developing the system.
1. Which type of user are you?
2. Do you face difficulties in maintaining relationship with your customers?
c. Can't say
3. What is the major problem that you face?
Customer Relationship Management
4. Is authentication required for accessing the system?
c. Not necessary
5. What type of authentication should be present in your system?
Session timed out
6. Which type of communication you usually use?
7. What type of communication services do you think should be included in the software?
8. Have you ever used any kind communication software?
c. Can't say
9. Does report generation is included in your system?
c. Not necessary
10. Are you satisfied with the current report generation system of your organization?
c. Can't say
11. According to your opinion which module is the most important?
Accounts CRM Sales Report Generation
12. For which modules do you print the report most?
Sales Purchase Accounts Warehouse
13. Does your system provide information in correct time?
c. Can't say
14. In which terms the proposed system will help you to solve your problems?
Customer Relationship Management
15. Rate the level of importance of the software that requires having an effective communication within the organization?
a. Urgently required
c. Less required
d. Not required
16. Have you ever heard of similar type of system?
c. Can't say
17. Do you require any type of online help after the system is completed?
c. Can't say
18. Does your management system provide effective way to provide feedback?
c. Can't say
4.1.2 Interview Questions
1. In your opinion how would an Integrated ERP and CRM Solution system be useful for your organization?
Justification: This question will give an idea to the developer to know the advantages and its implementation of the system.
2. How report is generated by your system and are you satisfied by it?
Justification: This question will give an idea to the developer to know that which type of software they are using for report generation.
3. For which modules would you like to get an option for printing the report?
Justification: This question will give an idea to the developer that for which modules the report generation should be there.
4. How would the customization of report will be useful to your organization?
Justification: This question would let the developer know that is customization of report really useful for the organization and upto what extent.
5. How is Customer Relationship Management important for your organization?
Justification: This question would let the developer know the importance of Customer Relationship Management in the organization.
6. How do you maintain the inventory system of your organization?
Justification: This question will give an idea to the developer about the way in which the inventory system is managed and are they updated within the time frame.
7. How do you manage the accounts of your organization? Do you use different system for managing it?
Justification: This question will give an idea to the developer to know the accounting system the organization is currently using and what functionalities should be mainly present in this module.
8. According to you, how the users should be trained to use the system?
Justification: This would help the developer to keep in mind the level of targeted users and develop the system accordingly.
9. What are the problems that the users might face while using the system?
Justification: This question would help the developer to know the limitations of the system and ways to overcome them.
10. What type of suggestions would you like to give about the system?
Justification: This is an open-ended question which would provide the overall feedback of the system.
4.1.3 Conclusion of Questionnaire
- Does report generation is included in your system?
- According to your opinion which module is the most important?
- For which modules do you print the report most?
- What is the major problem that you face?
- In which terms the proposed system will help you to solve your problems?
- Is authentication required for accessing the system?
- Do you face difficulties in maintaining relationship with your customers?
- Rate the level of importance of the software that requires having an effective communication within the organization?
- Have you ever heard of similar type of system?
- Does your management system provide effective way to provide feedback?
Conclusion of Questionnaires
Based on our survey done by collecting data by questionnaires I have concluded that:
- This system is very urgently required.
- Report Generation is not included in the previous systems used by the users.
- Report generating module is very much important in the ERP.
- Reports are mostly generated for Account department.
- Customer Relationship is not managed in properly in the previous systems.
- Authentication for accessing the system is required.
- The major problem faced in the existing systems is in the Report generation, as many of the existing systems do not have the option of generating report.
- Feedback by the users is not taken seriously or not taken by them.