The objective was to take the latest information and knowledge inputs to farmers so that they can improve their productivity and improve their economic wellbeing. Since cooperative societies benefit from the improved living conditions of farmers, they in turn can safeguard company's long term business needs. Encouragement of latest technology for farming even in remotest areas emphasis on latest machines and tools. Aware farmers about the usability of bio fertilizers and less use of chemical ones. Aware about the other option apart from the traditional crops. Govt.wants farmers to grow like bio diesels, herbs for medicines. Also try out the animal husbandry and many other aspects. The recent developments have been observed all around the nation, the latest machinery and techniques have reduced the burden of the hard working farmers. Farmers are getting aware and are conscious about the quality level of the crops.
The site will guide the farmers in all the aspects, the current market rate of different products, the total sale and the earned profit for the sold products, access to the new farming techniques through e-learning , get the current rates of market, get in touch with SMS through the cell phones, can gather the knowledge of different tips regarding crops.
The Smile-Farm is a vision of extending e-revolution to farmers and cooperatives through a three pronged strategy:
a) development of knowledge inputs and e-services of relevance to rural India,
b) evolve effective dissemination strategies to encourage active use of the facilities by farmers &
c) the broad aim is to empower
The purpose of this website is to aware farmers with new tips and technologies of farming and solve their queries. It is a vision of extending e-revolution to farmers and cooperatives through a three pronged strategy: a) development of knowledge inputs and e-services of relevance to rural India, b) evolve effective dissemination strategies to encourage active use of the facilities by farmers & cooperatives, c) the broad aim is to empower farmers and cooperatives through latest in information and communication technology.
Our vision is extending e-revolution to farmers and cooperatives through development of knowledge inputs and e-services of relevance to rural India, evolve effective dissemination strategies to encourage active use of the facilities by farmers & cooperatives, to empower farmers and cooperatives through latest in information and communication technology.
In the existing system, the solution of the farmers query or information about existing systems were given to farmers through SMS and they need to login to raise query. But, here we will provide Content Manager who will raise query on behalf of farmers and call them to give solution. So that the illiterate farmers can also use this very well.
The proposed system is a web application which will become more helpful to farmers who are illiterate. In our system farmers will haven't any need to login in system. We will provide Content Manager to farmers who will raise query on behalf of farmers and call them to give solution. Also by calling we will inform them about new tips and latest technologies.
The admin will controls and manages the personal database such as farmers information, catagories, SME information and CM information.
In addition to manipulating the personal data, our admin will provide authentication and authorization mechanism. Every user with any role type can be able to login to the system with his/her username and password. CM and SMEs can see the data but they can't update or delete data.
Farmers will call to CM and then query can be raised from CM. Farmers haven't any ride to update or delete data.They can only see the data. Farmers can't login to the system. They can register in website through CM and visit the website to check tips and latest news,
Finally Admin have all rights. Admin can access all records and can do anything with that data records. Admin can apply permission to CM and SME to access different panels.
1.5 Technology And Literature Review
IBM Rational Application Developer for WebSphere Software
IBM?? Rational?? Application Developer for WebSphere?? Software accelerates the development and deployment of Java', Java EE, Web 2.0, mobile, OSGi, portal and service-oriented architecture (SOA) applications. Both expert and novice developers can increase productivity and efficiency by using its many integrated capabilities for easier development, testing, analysis, and delivery of applications.
This trial is fully functional. Download the trial for an evaluation period of 60 days.
This trial is fully functional except for the optional components which are only available in the for-purchase version of Rational Application Developer for WebSphere Software:
' WebSphere Application Server Test Environment V7.x (Optional)
' WebSphere Application Server Test Environment V8.0.x (Optional)
' WebSphere Portal Server Test Server V8.x (Optional)
' Rational Application Developer for WebSphere Software Build Utilities for Windows, Linux and z/OS (Optional)
' Worklight Studio (Optional)
' Mobile Test Workbench for Worklight (Optional)
Arabic, Chinese Simplified, Chinese Traditional, Czech, English, French, German, Hungarian, Italian, Japanese, Korean, Polish, Portuguese Brazilian, Russian, Spanish
IBM DB2 is a family of database server products developed by IBM. These products all support the relational model, but in recent years some products have been extended to support object-relational features and non-relational structures, in particular XML.
Historically and unlike other database vendors, IBM produced a platform-specific DB2 product for each of its major operating systems. However, in the 1990s IBM changed track and produced a DB2 "common server" product, designed with a common code base to run on different platforms.
Today, there are three main products in the DB2 family: DB2 for Linux, UNIX and Windows(informally known as DB2 LUW), DB2 for z/OS (mainframe), and DB2 for iSeries (formerly OS/400).
A fourth product, DB2 for VM / VSE is also available.
DB2 can be administered from either the command-line or a GUI. The command-line interface requires more knowledge of the product but can be more easily scripted and automated. The GUI is a multi-platform Java client that contains a variety of wizards suitable for novice users. DB2 supports both SQL and XQuery. DB2 has native implementation of XML data storage, where XML data is stored as XML (not as relational data or CLOB data) for faster access using XQuery.
DB2 has APIs for REXX, PL/I, COBOL, RPG, FORTRAN, C++, C, Delphi, .NETCLI, Java, Python, Perl, PHP, Ruby, and many other programming languages. DB2 also supports integration into the Eclipse and Visual Studiointegrated development environments.
2.1 Project Planning and Scheduling
Project planning is perhaps one of the most important works in developing any project. Before the project can begin estimate regarding work to be done, what resources will be required and how much time will elapse from start to the finish of a project. Planning helped us to prepare a framework that enabled to make us a reasonable estimate of all such things.
2.1.1 Project Development Approach
' Software Process Model
To solve actual problems in an industry, software developer or a team of developers must incorporate a development strategy that encompasses the process, methods and tools layers and generic phases. This strategy is often referred to as process model or a software/website developing paradigm. A process model for software developing is chosen based on the nature of project and application, the methods and tools to be used, and the controls and deliverables that are required. All software development can be characterized as a problem solving loop in which four distinct stages are encountered: Status quo, Problem definition, technical development and solution integration. Regardless of the process model that is chosen for a software/website project all of the stages coexist simultaneously at some level of detail.
' Our Project Follows the Incremental Model:
When the elements of waterfall model are applied in iterative manner, the result is the Incremental Model. In this, the product is designed, implemented, integrated and tested as incremental builds. This model is more applicable where software requirements are well defined and basic software functionality is required early.
In incremental model, a series of releases called 'increments' are delivered that provide more functionality progressively for customer as each increment is delivered. The first increment is known as core product. This core product is used by customers and a plan is developed for next increment and modifications are made to meet the needs of the customer. The process is repeated.
Fig. 2(a) Incremental process model
Requirements analysis can be broken down into two distinct activities: capturing requirements and analyzing requirements. Capturing requirements is the task of communicating with stakeholders to determine what the requirements are. This is commonly done via formal and informal meetings, e-mails and phone calls. Analyzing requirements is the tasks of using standard tools and practices to generate a single unambiguous baseline of the requirements. Once all the stakeholders agree on the requirements, the baseline is created and becomes the formal requirements source. The goal of system analysis is to determine where the problem is in an attempt to fix the system. This step involves breaking down the system in different pieces to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to engage users so that definite requirements can be defined.
The Planning Phase focuses principally on required project planning work. Proper comprehensive project planning is essential to a successful IT project, and incomplete project planning and analysis are frequently root causes of project failure. Most project planning is conducted as part of the PMBOK
Integration Management work, which includes defining the processes necessary to identify, define, combine, unify, and coordinate all project activities for successful project deployment
' Project plan includes:-
Project Overview: It provides outline of project plan. Should identify the project, project sponsor, and project manager, should describe the project goals, background information, and development strategies.
Roles and Responsibilities: project plan should define the responsibility of project sponsor, manager and team member.
Communication: Techniques to enhance the project efficiencies. Standard report forms, defined requirement document, meeting schedules.
Defined Deliverables: Clearly defined the expectation for successful completing the project.
Control Requirements: planning process involve designing and automated control and security features for application.
Risk Management: Managers should monitor, and mange the internal and external risk in project lifecycle.
Change Management: Modification of functional requirement during the software development life cycle.
Standards: Project plan should reference the applicable standards.
Documentation: Should identify the type and level of documentation
Scheduling: Identify and schedule major project phases and the task completed within each phase.
Budget: Manager should estimates the overall cost of the project. Manager should monitor the budget through out the project completion
During the Design Phase, the system is designed to satisfy the requirements identified in the previous phases. The requirements identified in the Requirements Analysis Phase are transformed into a System Design Document that accurately describes the design of the system and that can be used as an input to system development in the next phase.
The purpose of the design phase is to plan a solution of the problem specified by the requirement document. This phase is the first step in moving from problem domain to the solution domain. The design of a system is perhaps the most critical factor affecting the quality of the software, and has a major impact on the later phases, particularly testing and maintenance. The output of this phase is the design document. This document is similar to a blue print or plan for the solution, and is used later during implementation, testing and maintenance.
The design activity is often divided into two separate phase-system design and detailed design. System design, which is sometimes also called top-level design, aims to identify the modules that should be in the system, the specifications of these modules, and how they interact with each other to produce the desired results. At the end of system design all the major data structures, file formats, output formats, as well as the major modules in the system and their specifications are decided.
During detailed design the internal logic of each of the modules specified in system design is decided. During this phase further details of the data structures and algorithmic design of each of the modules is specified. The logic of a module is usually specified in a high-level design description language, which is independent of the target language in which the software will eventually be implemented. In system design the focus is on identifying the modules, whereas during detailed design the focus is on designing the logic for each of the modules. In other words, in system design the attention is on what components are needed, while in detailed design how the components can be implemented in software is the issue.
Like every other phase, the design phase ends with verification of the design. If the design is not specified in some executable language, the verification has to be done by evaluating the design documents. One way of doing this is thorough reviews. Typically, at least two design reviews are held-one for the system design and one for the detailed and one for the detailed design.
Management should develop the testing plan that identify testing requirement and schedule the testing procedure through out the initial phase of the project. Staff Development: Should develop the training plans that identify the training requirement and schedule the training procedure to ensure employees are able to use and maintain the application after implementation.
' It generates working software quickly and early during the software life cycle.
' Flexibility is more and less costly.
' Testing and debugging becomes easier during a smaller iteration.
' Risk can be managed more easily because they can be identified easily during iteration.
' Early increments can be implemented with fewer people.
' Each phase of an iteration is rigid and do not overlap each other.
' Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle.
2.1.2 Project Plan
The road to the successful project development is the well planned strategy for the best and optimal use of resource available.
' First of all, we did the System Analysis which guided us regarding the system parts.
' Then we went for Requirement Analysis which guided us for requirements.
' Then, we went for Project Scheduling and Planning that lead us to decide the time period of our project.
' We started the system design.
' We started to design the forms.
' Then, we started to do the coding.
' Next was the Testing Phase.
' Then, we went for Implementation Planning where it will be useful.
' The Report Generation work was ongoing during the whole project work.
' Milestones and Deliverables:
Milestones and Deliverables are the important task for the project scheduling because if milestones is achieved in the specified time than it will increase customer faith and deliverables means that software is delivered with all the requirements specified by the user. Below pie chart shows how our milestone for the system was achieved.
Fig. 2(b) Milestone chart
R&D on system to be
developed Feasibilty Study
' Roles and Responsibilities:
Following are our project members with their roles in the project and their responsibilities.
' Literature review: Dhara, Devangi
' Requirement gathering: Dhara, Devangi
' Requirement analysis for software needs: Dhara, Devangi
' Data flow, use cases, architecture design: Dhara, Devangi
' Designing Modeling: Dhara, Devangi
' ER and Database design Dhara, Devangi
' Coding: Dhara, Devangi
' Testing : Dhara, Devangi
' Deployment Dhara, Devangi
A project Guide provides the technical leadership and is designated as the chief programmer. The chief programmer partitions the task into small activities and assigns us. She also verifies and integrates the products developed by us and we worked under the constant supervision of the project Guide.
2.1.3 Schedule Representation
Fig 2(c) Time line chart
2.2 Risk Management
Simplest and possibly best definition of risk is 'the possibility of loss or injury, disadvantage or destruction'.
Risks are of many types:
1. Programmatic risk
2. Schedule risk
3. Cost risk
4. Technical risk
5. Supportability risk
Risk management is the sum of all proactive management directed activities within a program.
2.2.1 Risk Identification
There are some risks, which can occur during this project.
' Technology: While system is building or compiling and end-user request to access and manipulate information then system get re-configure and user get configuration error.
' Hardware: In our Project, we have used hardware which is a simple computer that must have basic configuration on client side while on the server side to handle the load of the application it should be equipped with heavy electronics so that no hardware failure is encountered.
' Software: Our Project is mainly depending on website. There are other external libraries and tools like Web-Server, db2 and client tools etc. requires regular maintenance so it won't get failure and we can prevent data lost.
' People: As Our Project requires understanding of all features and functionalities, also how it get implemented and affected by web-module. So team members need to interact to each other to understand system effectively
So we try to make this risk as small as by writing tutorials about tools and techniques we will be using.
' Cost: Cost in terms of only one time of hardware and software. As main run-time environment.
' Schedule: Each team member should respect the deadlines that the project guide has given to him. When a team member knows that he will be unable to respect a given deadline, he should inform the project manager as soon as possible (preferably more than two days before the deadline), so that the project manager can find a way to solve the problem.
' Delay Due to illness: This is one natural risk that can occur at any moment during project development. Illness of any person working for system in future can cause delay to the project completion.
2.2.2 Risk Analysis and Planning
Risk analysis is a systematic approach for describing and/or calculating risk. During risk analysis process, each identified risk is considered in term and a judgment made about the probability and the seriousness of the risk.To handle the risks we have prioritized it. The damaging risks can be handled first and then most likely risks. Since the risk related to the schedule slippage arise primarily due to the intangible nature of the software, so I had to do the visibility of software requirements documentation and reviewing the relevant documents during the developments. Every phase can be broken into the reasonably sized tasks and milestones can be scheduled for these tasks.
In this process each identified risk is considered in turn and a judgment made about the probability and the seriousness of the risk.
1. The probability of the risk might be assessed as very low (less than 10%), low (10-25%), moderate (25-50%), high (50-75%) or very high (greater than 75%).
2. The effects of the risk might be assessed as catastrophic, serious, tolerable or insignificant.
' Risk Planning
In this section we will develope the strategies that will be used in case of any risks materializes. These strategies are listed below:
1. The first risk of technology not meeting the expectation is very serious risk.
Solution: This risk should not be keep away in any situation. The design of the modules and the database should be constrained so that they can be implemented in the particular language.
2. The second risk of team inexperience is also the serious risk.
Solution: In case of team inexperience the related members will be trained or given time to learn that thing. So their disability to work can be overcome.
3. Team member turnover is a serious issue and cannot be forecasted.
Solution: In this scenario a new member should be inducted into the team. The project manager will have to induct him and explain him his role.
2.3.1 Effort Estimation
The total estimate is calculated in person per months, which can easily be converted to other units of effort using the following conversion factors:
' 2 Person Days/Person Month
' 5 Person Hours/Person Month
These time units represent project effort, rather than project duration. Project effort represents the absolute number of time units that need to be expended to complete a project. Project duration, on the other hand, is a measure of the length of time in calendar units between the beginning of a project and the end of a project. Actual project duration can be calculated from project effort by taking into consideration such company dependent factors as the total number of resources assigned to the project, how many hours per day each resource can work on the project, resource attendance, holidays, etc. To give a simple example of such a conversion, consider a CS/10,000 project estimate of 2 person months for a project to which 10 people have been assigned. 2 person months converts to 2*176 = 352 person hours. For a 10 person team, this result divides into 35.2 hours per person. If each of the team members effectively works 5 full hours on the project per day, the project will take about 7 full work days to complete. If the project begins on a Thursday, and team members are not scheduled to work on the weekend, the actual project duration will be 9 calendar days.
3.1 Hardware Requirements:
' Server Configuration:
High speed processor up to 2.13GHz 2 GB RAM
120 GB Hard Disk (Because of large DB management)
' Client Configuration :
Minimum speed of 550 MHz or Higher 128 MB RAM or Higher
10 GB Hard Disk or Higher
Network Card (To establish connection with server)
3.2 Software Requirements:
' For project development:
Operating System : Windows
Technology : Java and J2EE
Web Server : Web Sphere Server(RAD)
Database : DB2
Java Version : JDK1.5
Tools and Applications : RAD (IBM Tool), MS Office and WebBrowser .
INTRODUCTION TO JAVA
Initially the language was called as 'oak' but it was renamed as 'java' in 1995.The primary motivation of this language was the need for a platform-independent(i.e. architecture neutral)language that could be used to create software to be embedded in various consumer electronic devices.
Java is a programmer's language
Java is cohesive and consistent
Except for those constraint imposed by the Internet environment. Java gives the programmer, full control
Finally Java is to Internet Programming where c was to System Programming.
Importance of Java to the Internet:
Java has had a profound effect on the Internet. This is because; java expands the Universe of objects that can move about freely in Cyberspace. In a network, two categories of objects are transmitted between the server and the personal computer. They are passive information and Dynamic active programs. in the areas of Security and probability. But Java addresses these concerns and by doing so, has opened the door to an exciting new form of program called the Applet.
Applications and applets:
An application is a program that runs on our Computer under the operating system of that computer. It is more or less like one creating using C or C++ .Java's ability to create Applets makes it important. An Applet I san application, designed to be transmitted over the Internet and executed by a Java-compatible web browser. An applet I actually a tiny Java program, dynamically downloaded across the network, just like an image. But the difference is, it is an intelligent program, not just a media file. It can be react to the user input and dynamically change.
Java architecture provides a portable, robust, high performing environment for development. Java provides portability by compiling the byte codes for the Java Virtual Machine, which is then interpreted on each platform by the run-time environment. Java is a dynamic system, able to load code when needed from a machine in the same room or across the planet.
Compilation of code:
When you compile the code, the Java compiler creates machine code (called byte code)for a hypothetical machine called Java Virtual Machine(JVM). The JVM is supposed t executed the byte code. The JVM is created for the overcoming the issue of probability. The code is written and compiled for one machine and interpreted on all machines .This machine is called Java Virtual Machine.
Compiling and interpreting java source code:
Fig3(a) Compiling & interpreting java source code
During run-time the Java interpreter tricks the byte code file into thinking that it is running on a Java Virtual Machine. In reality this could be an Intel Pentium windows 95 or sun SPARCstation running Solaris or Apple Macintosh running system and all could receive code from any computer through internet and run the Applets.
Java was designed to be easy for the Professional programmer to learn and to use effectively. If you are an experienced C++ Programmer. Learning Java will oriented features of C++ . Most of the confusing concepts from C++ are either left out of Java or implemented in a cleaner, more approachable manner. In Java there are a small number of clearly defined ways to accomplish a given task.
2) Object oriented:
Java was not designed to be source-code compatible with any other language. This allowed the Java team the freedom to design with a blank state. One outcome of this was a clean usable, pragmatic approach to objects. The object model in Java is simple and easy to extend, while simple types, such as integers, are kept as high-performance non-objects.
The multi-platform environment of the web places extraordinary demands on a program, because the program must execute reliably in a variety of systems. The ability to create robust programs. Was given a high priority in the design of Java. Java is strictly typed language; it checks your code at compile time and runtime.
Java virtually eliminates the problems of memory management and deal location, which is completely automatic. In a well-written Java program, all run-time errors can and should be managed by your program.
INTRODUCTION TO SERVLETS/JSP
1. A Servlet Is a generic server extension. a Java class that can be loaded
2. Dynamically to expand the functionality of a server.Servlets are commonly used with web servers. Where they can take the place CGI scripts.
3. A servlet is similar to proprietary server extension, except that it runs inside a Java Virtual Machine (JVM) on the server, so it is safe and portable
4. Servlets operate solely within the domain of the server.Unlike CGI and Fast CGI, which use multiple processes to handle separate program or separate requests, separate threads within web server process handle all servlets. This means that servlets are all efficient and scalable.
5. Servlets are portable; both across operating systems and also across web servers. Java Servlets offer the best possible platform for web application development.
6. Servlets are used as replacement for CGI scripts on a web server, they can extend any sort of server such as a mail server that allows servelts t extend its functionality perhaps by performing a virus scan on all attached documents or handling mail filtering tasks.
7. Servlets provide a Java-based solution used to address the problems currently associated with doing server-side programming including inextensible scripting solutions platform-specific API's and incomplete interface.
8. Servlets are objects that conform to a specific interface that can be plugged into a Java-based server.Servlets are to the server-side what applets are to the server-side what applets are to the client-side-object byte codes that can be dynamically loaded off the net. They differ form applets in than they are faceless objects(with out graphics or a GUI component).
9. They serve as platform independent, dynamically loadable,plugable helper byte code objects on the server side that can be used to dynamically extend server-side functionality.
10. For example an HTTP servlet can be used to generate dynamic HTML content when you use servlets to do dynamic content you get the following advantages:
They're faster and cleaner then CGI scripts
They use a standard API( the servlet API)
They provide all the advantages of Java (run on a variety of servers without needing to be rewritten)
11. Servlets are classes and interfaces from tow packages,javax .servlet and javax.servlet.http.The java.servlet package contains classes t support generic, protocol-independent servlets.The classes in the javax.servelt.http package To and HTTP specific functionality extend these classes.
12. Every servlet must implement the javax.servelt interface.Most servlets implement it by extending one of two classes.javax.servlet.GenericServlet or javax.servlet.http.HttpServlet.A protocol-independent servlet should subclass Generic-Servlet.while an Http servlet should subclass HttpServlet, which is itself a subclass of Generic-servlet with added HTTP-specific functionality.
13. Unlike a java program, a servlet does not have a main() method,Instead the server in the process of handling requests invoke certain methods of a servlet.Each time the server dispatches a request to a servlet, it invokes the servelts Service() method,A generic servlet should override its service() method to handle requests as appropriate for the servlet.The service() accepts two parameters a request object and a response object .The request object tells the servlet about the request, while the response object is used to return a response.
Features of Servlet:
Servlets are persistent.Servlet are loaded only by the web server and can maintain services between requests.
Servlets are fast. Since servlets only need to be l\loaded once, they offer much better performance over their CGI counterparts.
Servlets are platform independent.
Servlets are extensible Java is a robust, object-oriented programming language, which easily can be extended to suit your needs.
Servlets are secure
Servlets are used with a variety of client.
4.1 Study of Current System
' There is no computerized system for the farmers to raise query and get latest information. Currently, the farmer goes to nearest mandi handover his product to a particular sahokar or middle men, and asks the farmer to collect the cash earned out of the sold product.
' Middle men sell the product to another dealer at the cost of that market. Every Agent tries to cuts his commission out of that. There is no way for farmer to know about the deal and the exact amount at which their product was sold. In short there is no transparency.
' No facility is present for the farmers to know the product rates at different markets where they can sell their products for achieving high profits. Many times, farmers are not even aware of the schemes and compensation provided by government. In spite of all the opportunities banging the doors the farmers are not able to benefit out of those. Current system does not provide the way of e-learning for farmer that will provide the knowledge of new techniques in farming through experts in various domains. So they doesn't get the maximum profit through the current system.
4.2 Limitation of Existing System:
' The Indian farmers are dependent on timely supply of the fertilizers for maintaining their soil productivity.
' Majority of the Indian farmers are very poor and illiterate which results in improper application of fertilizers.
' They lack in awareness and education and often depend on unscrupulous middle men for advice.
' The objective is to take the latest information and knowledge inputs to farmers so that they can improve their productivity and improve their economic well being.
4.3 Requirement of new system:
To remove deficiencies from the existing system we have to develop a new system with some additional features as described below.
1. The objective was to take the latest information and knowledge inputs to farmers so that they can improve their productivity and improve their economic wellbeing. Since cooperative societies benefit from the improved living conditions of farmers, they in turn can safeguard company's long term business needs.
2. Encouragement of latest technology for farming even in remotest areas emphasis on latest machines and tools. Aware farmers about the usability of bio fertilizers and less use of chemical ones. Aware about the other option apart from the traditional crops. Govt.wants farmers to grow like bio diesels, herbs for medicines. Also try out the animal husbandry and many other aspects.
3. The recent developments have been observed all around the nation, the latest machinery and techniques have reduced the burden of the hard working farmers. Farmers are getting aware and are conscious about the quality level of the crops.
4. The site will guide the farmers in all the aspects, the current market rate of different products, the total sale and the earned profit for the sold products, access to the new farming techniques through e-learning , get the current rates of market, get in touch with SMS through the cell phones, can gather the knowledge of different tips regarding crops.
4.4 Analysis for new system:
Smile-Farm will provide a secure user-id/password based secured login mechanism to access its services. Internal users will be provided user id/password pair
separately.Once user logs in, s/he can view the dashboard of farmer queries with status, Latest Tips and Advisories added by SMEs are displayed.
1. Farmer is the customer for the Smile-Farm Query Management System.
2. Farmers from various locations contact the Content Manager enquiring for assistance.
3. The Smile-Farm system maintains information Categories and associates all the content of query.
4. The farmer subscribes to the information category(s) for seeking updates or information.
5. The queries are recorded by content manager on behalf of the farmer and resolved also based on the information displayed by the system for a similar query(s) in the past.
6. There are Subject matter experts who resolve queries for a category.
6. The subject matter expert also creates Tips and advisories that are useful for solving the query.
Non Functional Requirements of System:
1. Secure access of confidential data (user's details).
2. 24 X 7 availability
3. Better component design to get better performance at peak time
4. Flexible service based architecture will be highly desirable for future extension
4.5 Functions of System:
Fig4.5.1(a) Use Case Diagram
5.1Basic flow of System:
5.1.1Following are the basic modules involve in project:
' Maintain masters: System prompts for the file name to be uploaded. Standard file upload dialog is presented to select a file from the local system. The selected file data is uploaded in the related tables; if an existing record is encountered, the old details are replaced with the new details.
' Raise Query: The content manager types the customer mobile number to pull the customer data automatically.
' If existing in database then any open or unresolved query is displayed on the
top clearly highlighting the status.
' In addition last few resolved queries are also displayed.
' The Query asked by the farmer is entered in the query box.
' User selects the Category in which query falls. Eg. Seeds Sowing or Crop is
infested. Leaves are falling etc.
System automatically lists various relevant content on the basis of query
categorization to help rapid resolution of query.
' Resolve Pending Queries: Any open or unresolved query is displayed on the top clearly highlighting the status for the logged in SME or Content Manager who created the query in the system.
' The SME user reads the Query from customer and enters the solution to be communicated to customer.
' SME Clicks on Communicate.
' An email for the same is sent form the system.
' The Query moves to Communicated State
' Content Manager can access the query and the solution provided by SME
' The customer is contacted for any assistance with solution.
' Latest Info: The system displays list of Information Categories to select from
The selected entries are saved as subscription for the farmer whose query form
is being worked upon.
' Create Tips: System displays a list view of the Tips already created for the domain SME belongs to.
' The user can select a tip to modify. The Tip details open up in a form for the
user view edit.
' The user creates a new Tip by clicking on Add Tip, a blank form appears with
the following fields.
' The system saves Tip along with its Information Domain.
Performance is measured in terms of the output provided by the application. Requirement specification plays an important part in the analysis of a system. Only when the requirement specifications are properly given, it is possible to design a system, which will fit into required environment. It rests largely with the users of the existing system to give the requirement specifications because they are the people who finally use the system. This is because the requirements have to be known during the initial stages so that the system can be designed according to those requirements. It is very difficult to change the system once it has been designed and on the other hand designing a system, which does not cater to the requirements of the user, is of no use.
The requirement specification for any system can be broadly stated as given below:
' The system should be able to interface with the existing system
' The system should be accurate
' The system should be better than the existing system
The existing system is completely dependent on the user to perform all the duties.
5.2 Data Modeling:
5.2.1 Class Diagram
Fig. 5.2.1(a) class diagram for system
5.2.2 Data Dictionary
1. FARMERSINFO_MASTER TABLE
Name of the column Type Constraint
ID Varchar(5) Primary key
NAME Varchar(20) Not null
CITY Varchar(20) Not null
PREFERENCES Varchar(20) Nullable
MOBILE NUMBER Decimal(10) Primary key
Table 184.108.40.206 FARMERSINFO_MASTER TABLE
2. STATE_MASTER TABLE
Name of the column Type Constraint
STATE_ID Varchar(5) Primary key
STATE_NAME Varchar(20) Not null
Table 220.127.116.11 STATE_MASTER TABLE
3. LOCATION_MASTER TABLE
Name of the column Type Constraint
LOCATION_ID Varchar(5) Primary key
LOCATION_NAME Varchar(20) Not null
STATE_ID Varchar(5) Not null
Table 18.104.22.168 LOCATION_MASTER TABLE
4. SME_MASTER TABLE
Name of the column Type Constraint
SME_ID Varchar(5) Primary key
SME_NAME Varchar(20) Not null
Table 22.214.171.124 SME_MASTER TABLE
5. CATEGORY_MASTER TABLE
Name of the column Type Constraint
CATEGORY_ID Varchar(5) Primary key
CATEGORY_NAME Varchar(20) Not null
Table 126.96.36.199 CATEGORY_MASTER TABLE
6. SMECATEGORY_MASTER TABLE
Name of the column Type Constraint
SME_ID Varchar(5) Foreign key
Table 188.8.131.52 SMECATEGORY_MASTER TABLE
7. QUERIES TABLE
Name of the column
DECIMAL(10) Not null
DATE Not null
Table 184.108.40.206 QUERIES TABLE
8. LOGIN_MASTER TABLE
Name of the column
Varchar(20) Not null
Varchar(20) Not null
Varchar(10) Not null
Varchar(40) Not null
Table 220.127.116.11 LOGIN_MASTER TABLE
9. WHEAT_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 18.104.22.168 WHEAT_TIPS TABLE
10. RICE_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 22.214.171.124 RICE_TIPS TABLE
11. COTTON_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 126.96.36.199 COTTON_TIPS TABLE
12. VEGETABLES_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 188.8.131.52 VEGETABLES_TIPS TABLE
13. GROUNDNUTS_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 184.108.40.206 GROUNDNUTS_TIPS TABLE
14. BAJARA_TIPS TABLE
Name of the column
INTEGER(4) Not null
Table 220.127.116.11 BAJARA_TIPS TABLE
5.3 Functional & Behavioral Modeling:
Fig. 5.3.1(b) System Context Diagram
Smile-Farm Maintain Farmers profile by uploading their basic contact, geographical details along with crop preferences and animals if they have. Content Managers at the state level cater to information needs for farmers in their state. Maintain an Expert Panel as Subject Matter Experts for handling queries received from farmers. Create a subscription based model for information services offered by the company.
Smile-Farm Database Designed to store Farmers profile, geographical areas, Mapping of Marketing Exec and content managers to the geographies. Information categories, Experts are mapped to Categories. Services farmers subscription to queries on Information categories.
CSV Masters like locations, Farmers, categories, SMEs are uploaded via CSV
Mail Server All notifications are routed through the Mail Server.
5.3.2(c) Dataflow Diagram
5.4.1 Object Diagram:
Fig. 5.4.3(h) Object Diagram
5.5 System Architecture Design:
' Two-Tier Client/Server Model:
The Two-Tier model is tied to the physical implementation, a desktop machine operating as a client and a network server housing the back-end database engine. In the Two-Tier model, logic is split between these two physical locations, the Client and the Server. In a Two-Tier modal, the Front-end piece is commonly being developed in Power Builder, Visual Basic, or some other 4GL. The key point to remember is that, in a Two-Tier Model, business logic for your application must physically reside either on the Client or be implemented on the back-end within the DBMS in the form of triggers and stored procedures. Both triggers and stored are precompiled collections of SQL statements and control-of-flow statements.
Consider a situation in which you set up a series of stored procedures to support a particular application's needs. Meanwhile, the developers of five other applications are making similar efforts to support their own needs, all in the same database. Sure, they are naming conventions and definitions of who owns what objects, but the bottom line is that this scenario makes implementing and maintaining business rules downright ugly.
Paradigms, which implement a strict Two-Tier architecture, make developing Client/Server applications look easy, such as the data windows in Power Builder where a graphical window of fields is magically bound to the back-end data source. In Visual Basic, using any of the data controls that provide a graphical link to the back-end data source creates a Two-Tier Client/Server application. This is because these implementations of application directly tie the graphical user interface to back-end data access. The upside is that data access is simplified, allowing very rapid development of applications.
The GUI is bound directly to the data source and all the details of data manipulation are handled automatically. This strength is also its weakness. While data access is simplified, it is also less flexible. Often you will not have complete control over your interactions with the data source because it is being managed for you. Of course, this extra management costs resources on the Client and can result in poor performance of your applications.
5.5.1 User Services (Client-Tier)
Is responsible for the presentation of data, receiving user events and controlling the user interface. The actual business logic has been moved to an application-server. A Logical layer of a distributed system that typically presents data and process input from the user, sometimes referred to as the front end. Usually, the client tier requests data from a server based on input, and then formats and displays the result.
5.5.2 Business Services (Application-Server-Tier)
This is the logical layer in a distributed system between user interface or Web client and the database. This is typically where business objects are instantiated. It is a collection of business rules and functions that generate and operate upon receiving information. They accomplish this through business rules, which can change frequently, and are thus encapsulated into components that are physically separate from the application logic itself.
Business-objects that implement the business rules "live" here, and are available to the client-tier. This level now forms the central key to solving 2 tier problems. This tier protects the data from direct access by the clients. Furthermore, the term "component" is also to be found here. In the non-visual area of the system, components on the server-side can be defined as configurable objects, which can be put together to form new application processes.
5.5.3 Data Services (Data-Server-Tier)
This tier is responsible for data storage. Besides the widespread relational database systems, existing legacy systems databases are often reused here. It is important to note that boundaries between tiers are logical. It is quite easily possible to run all three tiers on one and the same (physical) machine. The main importance is that the system is neatly structured, and that there is a well-planned definition of the software boundaries between the different tiers.
Below architecture diagram represents mainly flow of requests from users to database through servers. In this scenario overall system is designed in three tires separately using three layers called presentation layer, business logic layer and data link layer. This project was developed using 2-tier architecture.
Testing is a process of executing a program with the interest of finding an error. A good test is one that has high probability of finding the yet undiscovered error. Testing should systematically uncover different classes of errors in a minimum amount of time with a minimum amount of efforts. Two classes of inputs are provided to test the process:
1. A software configuration that includes a software requirement specification, a design specification and source code.
2. A software configuration that includes a test plan and procedure, any testing tool and test cases and their expected results.
6.1 Testing Plan
' Test Plan: Testing usually starts with test plan and ends with acceptance testing.
' Test plan is a general document that defines the scope and approach for testing for the whole project.
' Inputs for test plan are
' Project plan,
' Requirement Document (SRS)
' Design document
' Test plan identifies what levels of testing will be done, what units will be tested, etc in the project.
' Test plan usually contains
' Test unit specs: what units need to be tested separately
' Features to be tested: these may include functionality, performance, design constraints and attributes
' Approach: testing criteria and evaluating to be used, when to stop, how to evaluate, etc
' Test deliverables: it can be list of test cases that were used, details of results, including defects, test summary report etc.
' Schedule and task allocation: who are responsible for performing them.
6.2 Testing Strategy:
6.2.1 Unit Testing
Unit test comprises of a set tests performed by an individual program prior to the integration of the unit into large system. A program unit is usually the smallest free functioning part of the whole system. Module unit testing should be as exhaustive as possible to ensure that each representation handled by each module has been tested. All the units that makeup the system must be tested independently to ensure that they work as required.
During unit testing some errors were raised and all of them were rectified and handled well. The result was quiet satisfactory and it worked well.
6.2.2 Integration Testing
Integration testing is a system technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested modules and build a program structure that has been dictated by design.
Bottom-up integration is the traditional strategy used to integrate the components of a software system into functioning whole. Bottom-up integration consists of unit test followed by testing of the entire system. A sub-system consists of several modules that communicated with other defined interface.
The system was done the integration testing. All the modules were tested for their compatibility with other modules .They test was almost successful. All the modules coexisted very well, with almost no bugs. All the modules were encapsulated very well so as to not hamper the execution of other modules.
6.2.3 System testing
' Here the entire software system is tested
' Goal is to see if the software meets its requirements as stated in requirement specification.
' Generally the final testing stage before the software is delivered
' Most time consuming test phase
6.2.4 Acceptance Testing
' Focus: Does the software satisfy user needs?
' Generally done by end users/customer in customer environment, with real data
' Any defects found, are removed by developers
' Acceptance test plan is based on the acceptance test criteria in the SRS
' Reference document for this process is the requirement document, and the goal is to see if the software meets its requirements.
' It is essentially a validation exercise.
' Only after successful AT software is deployed.
6.2.5 Regression Testing
' Regression testing is the re-execution of some subset of test cases.
' Regression testing is the activity that helps to ensure that changes do not introduce unintended behavior or additional errors.
' Regression testing may be conducted manually, by re-executing a subset of all test cases or using automated testing also.
' Hence test cases are executed again on modified system and its output compared with earlier output.
' It is impractical and inefficient to re-execute every test for every program function once a change has occurred.
' This requires selection of test cases from the test suites. Consider those test cases that could be affected by the change.
' Advantage of Regression testing:
' Ensures that unchanged parts of a software work properly.
' Ensures that all errors that have occurred in the software due to modifications are corrected and are not affecting its working.
' Time consuming activity
' Considered to be expensive
6.3.1 White-Box Testing
White-box testing, often called glass-box testing is a test case design method that uses the control structure of the procedural design to derive test cases. Using white-box testing methods, the software engineer can derive test cases that
(1) Guarantee that all independent paths within a module have been exercised at least once,
(2) Exercise all logical decisions on their true and false seeds,
(3) Execute all loops at their boundaries and within their operational bounds, and
(4) Exercise internal data structures to ensure their validity.
6.3.2 Black-box Testing
Black-box testing, also called behavioral testing, focuses on the functional requirements of the software. That is, black-box testing enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for a program. Black-box testing is not an alternative to white-box techniques. Rather, it is a complementary approach that is likely to uncover a different class of errors than white-box methods.
Black-box testing attempts to find errors in the following categories:
' Incorrect or missing functions,
' Interface errors,
' Errors in data structures or external data base access,
' Behavior or performance errors, and
' Initialization and termination errors.
Unlike white-box testing, this is performed early in the testing process; black box testing tends to be applied during later stages of testing. Because black-box testing purposely disregards control structure, attention is focused on the information domain. Tests are designed to answer the following questions:
' How is functional validity tested?
' How is system behavior and performance tested?
' What classes of input will make good test cases?
' Is the system particularly sensitive to certain input values?
' How are the boundaries of a data class isolated?
' What data rates and data volume can the system tolerate?
' What effect will specific combinations of data have on system operation?
By applying black-box techniques, we derive a set of test cases that satisfy the
' Test cases that reduce, by a count that is greater than one, the number of additional test cases that must be designed to achieve reasonable testing and
' Test cases that tell us something about the presence or absence of classes of errors, rather than an error associated only with the specific test at hand.
6.3.3 Performance Testing
Performance testing is designed to test the runtime performance of the system within the context of the system. These tests were performed as module level as well as system level. Individual modules were tested for required performance.
' In performance testing we counted the processing time and response from the system with respect to request.
' We also checked out the total-execution time, which takes 10 to 15 seconds for loading.
6.3.4. Statistical Testing
Used to test the program's performance and reliability and to check how it works under operational conditions. Tests are reflecting the actual user inputs and their frequency. The stages involved in the static analysis for this system are as follows:-
' Control Flow analysis
' Unreachable code
' Unconditional branches into loops
' Data use analysis
' Variable used before initialization
' Variables declared but never used
' Variables assigned twice but never used between assignments
' Possible array bound violations
' Declared variables
' Interface analysis
' Parameter type mismatches
' Parameter number mismatches
' Non-usage of the results of functions
' Uncalled functions and procedures
' Storage management faults
' Images not stored in resources
' Out of bound program's non-volatile memory.
6.3.5. Condition Testing
Condition testing is the test case design method that exercise the conditions contained in a program module. It may include:-
' Boolean variable error
' String index out of bound error
' Null pointer assignment
' Input output connection exception
' Parsing (conversion) errors
' Arithmetic expression error
6.3.6 Interface Testing
Interface testing is integral part on Integration testing. Therefore we checked for
' Interface misuse
' Interface misunderstanding
We examined the code to be tested and explicitly list each call to an external component. In the system, standard tests for GUIs have been performed, which are as follows:
' The position and related labels for all controls were checked.
' Name of the form is also given appropriately.
' All menu functions and sub functions were verified for correctness.
' Validations for all inputs were done.
' Each menu function were tested, whether it invokes the
' Corresponding functionality properly.
' Pull down controls was verified for proper functionality.
' Whether the non-editable text control is disabling and it was also
' Verified that it doesn't exceed the maximum allowed length.
6.3.7 Object Testing
Object testing is to test objects as individual components, which are often larger than single functions. Here following activities have taken place.
' Testing the individual operations associated with objects.
' Testing individual object classes.
' Testing clusters of object.
' Testing the object-oriented system
Testing can be done in two ways:
Bottom up approach
Top down approach
Bottom up Approach:
Testing can be performed starting from smallest and lowest level modules and proceeding one at a time. For each module in bottom up testing a short program executes the module and provides the needed data so that the module is asked to perform the way it will when embedded within the larger system. When bottom level modules are tested attention turns to those on the next level that use the lower level ones they are tested individually and then linked with the previously examined lower level modules.
Top down approach:
This type of testing starts from upper level modules. Since the detailed activities usually performed in the lower level routines are not provided stubs are written. A stub is a module shell called by upper level module and that when reached properly will return a message to the calling module indicating that proper interaction occurred. No attempt is made to verify the correctness of the lower level module.
The system has been tested and implemented successfully and thus ensured that all the requirements as listed in the software requirements specification are completely fulfilled. In case of erroneous input corresponding error messages are displayed.
8.1 Limitations Of Our System
' Mobile device is necessary.
' Farmers have to call to CM to register with system.
' Through call only farmers can say their query to CM.
' Farmers can interact with system through CM only.
8.2 Future Enhancement
It is a vision of extending e-revolution to farmers and cooperatives through a three pronged strategy: a) development of knowledge inputs and e-services of relevance to rural India, b) evolve effective dissemination strategies to encourage active use of the facilities by farmers & cooperatives, c) the broad aim is to empower farmers and cooperatives through latest in information and communication technology.
This project will be helpful for farmers to know more about market information; will act as unique interface of schemes and compensation. Through this they will be always in touch of new techniques and trends of farming. But at some extends, new user may feel some kind of stress about its use. Overall this system is faster, secure and comfortable.
The Indian farmers are dependent on timely supply of the fertilizers for maintaining their soil productivity. Majority of the Indian farmers are very poor and illiterate which results in improper application of fertilizers. They lack in awareness and education and often depend on unscrupulous middle men for advice.
The objective is to take the latest information and knowledge inputs to farmers so that they can improve their productivity and improve their economic well being.
1. Register farmers into Smile-Farm. They can subscribe to the Query Services on various Categories of the Smile-Farm initiative.
2. Address issues on calls with farmers, respond to them using current knowledge artifacts available in the system.
3. The Subject Matter Experts on various Categories keep updating Tips and Advisories in the system.
4. Include Advisors Tips on the Categories to provide solutions when the farmer has a specific need.