Design Document Rajiv Chalasani (Team Leader) Mark Goesmann Dave Nyman Kevin Staake Design Document Table of Contents 1. 0 Vision Statement 2.0 System Requirements 3. 0 Design 3.1 Overall application layout 3.1.0 Inputs 3.1.1 Grouping 3.1.2 Menu 3.1.3 Summary 3.2 Login Screen Design 3.3 User Files Form Design 3.4 Labor Design 3.5 Depreciable Items Design 3.6 Supplies Design 3.7 Land Design 3.8 Package Design 3.9 Crop Design 3.10 Production Design 3.11 Sales Design 3.12 Revenue Distribution Design 4.0 Database 4.1 Database Elements 4.2 Database Relationships 2 Design Document 1. 0 Vision Statement The purpose of our project, International Computerized Agricultural Budgeting (ICAB), is to develop an application to aid farmers in lesser developed countries in Eastern Europe, South America, and Central America. Our software will allow them to better estimate their budget and foresee overhead costs, depreciation of value of equipment they own, and the amount of revenue they can expect to have. 2.0 System Requirements As determined by our client, the system requirements must not be very high. As such, the hardware requirements are 64 MB of ram and 512 MHz processor. The operating system requirements that our project will work on are those that support the Java Runtime Environment 6 (JRE 6), specific versions of operating systems not supported are those before Windows 2000, and the equivalent Linux and Apple operating systems. The user must have at least 20 MB of free space on their hard drive in order to install our program. 3. 0 Design 3.1 Overall Application Layout 3.1.0 Inputs 3 Design Document The main interface of our project will be a standalone application. It will be comprised of a login screen followed by the main form. The main form will have a series of buttons on the left side to help indicate which step the user is currently performing. At first, only one button will be available, but as the user completes a panel, access to a new panel will be granted and the previous ones will be available for the user to revisit. We have chosen the order of panels to be sequential because of the hierarchy of information needed to calculate parts of later panels for the user and to calculate the overall summary at the end. The order of completion of panels seemed to naturally follow: “Labor”, “Depreciable Items”, “Supplies”, and “Land”. The top half of every panel requiring user input is reserved solely for user input (in nearly every instance this is a set of dropdown boxes) which allows users to add an item to the database. There will be a ‘Submit’ button on the right hand side directly below the areas for user input that actually performs the addition of the data to the database. In many cases, directly below the input section of the panels will be a data grid view that allows you to see the items in the data base that are relevant to the user’s current position in our program. The users of this program will be able to modify items in the database by clicking on the corresponding item in the data grid view, making the desired changes, and then clicking the ‘Edit’ button. 4 Design Document 3.1.1 Grouping The user will also be able to group items together to make packages and enter the packages to easily fill out the panel where the user enters data about his/her crops. The ability to do this greatly simplifies the actions of entering data when filling out the ‘Crop’ panel, which eases the burden upon the user. Making packages is not mandatory but heavily decreases repetitious actions in the ‘Crop’ panel. Crops are mandatory because the information from this panel will be used to make the predictions about the expected yield and revenue for the user. 3.1.2 Menus In the menu the user can access to four primary menu Items. 1. File 2. User 3. View 4. Help 1. File – Through file the user select user to start on a clean application. Save to save the work into the database. Save as.. to save the work into the database as a different file. Print will generate the summary documentation for the farmers. To export the summary to a text file or a PDF the user can go through the export submenu. Finally, the user can quit the application which will ask the user to save the information and logs the user out before quitting. 5 Design Document 2. User – The user will allow the user to logout from the application. 3. View – This allows the user to can view of the application. If the user is new to the application then the user can select full view to access everything openly. 4. Help – Allow will provide users to access the documentation of the application. About will provide information about the application. Finally Help can be used to access the user help document. The user can search for the help about the specific item. 3.1.3 Calculations Our project will include several different calculation functions, such as: depreciation of equipment, expected yield, expected total labor, and the cost of supplies. 3.1.1 Summary Panels In our project there will be several different summaries the user can view. One of the summaries produced is ‘Revenue’, the corresponding panel allows the user to see their projected revenue for each crop by sales, weight, and cost. Another summary created by our program is ‘Production’, this panel allows the user to see where his money is going per crop, and how much he/she will make in return. The last summary panel is ‘Sales’, this is a very simple way for the user to compare crops and see the revenue generated. 6 Design Document 3.2 Login Screen Design The login screen asks the user to input the user information and also users to create accounts. New users can click on the new user button and create and account. If the user is returning they have to provide a username and password. The user will be forwarded to the User Files Form. 3.3 User Files Form Design The User Files Form displays all the files saved by the returning User. If the user is new or if the returning user wants to create new files then can click on the new user button. The user can open the previously saved files by selecting the name from the List box and clicking OK. 3.4 Labor Panel Design The labor panel takes four inputs, the type of labor, the category of labor, the average pay of a person doing that job, and the monetary units that the pay is in. These inputs are added through editable drop down boxes. Like many of the other forms in our project, there is a ‘Submit’ button that adds the data into the database. These items are then viewable in the data grid viewer. Once an item is in the data grid view you can select it and the items will appear in the combo box above. Then a user can change the items and click ‘Edit’ and it will modify the item or the user can click the ‘Remove’ button to remove the item. 7 Design Document 3.5 Depreciable Items Panel Design The Depreciable panel is very similar to the Labor panel. It takes eleven inputs, among the more important inputs are: category (which is a way to group the items), description (which is a brief description of the item to help identify it), salvage value (which is how much the item is worth when it is useless to you), price (the amount you played for the item and a monetary unit corresponding to it), life of the item (how long the item will last and the corresponding unit), insurance (the amount if insurance the item has and the corresponding unit), use (the amount of time spent using the item). Below the input section is a data grid view which shows the items that have been input so far. 3.6 Supplies Panel Design The Supplies panel is similar to the previous panels. There is a ‘Category’ drop down box that allows the user to choose the general category of the supply or create a new category. The text displayed in the ‘Description’ drop down box is a brief description to help the user recognize the item, which is also editable because of the dynamic nature of farming equipment which is constantly changing. ‘Price’ is how much the user paid for the item and there is also a corresponding monetary unit that the user must enter. There are also ‘Remove’, ‘Edit’, and ‘Submit’ buttons which do actions similar to those performed in the previous panels. A data grid view at the bottom of the screen lets the user view the items that have been added. 8 Design Document 3.7 Land Panel Design The ‘Land’ panel is also similar to the previous panels. There is a place to add the name of the farm and the person who owns the farm. The user can input the total size of the farm, total area for crops, and total area for pasture, since this program is to be released internationally, the user must input his/her unit for area which may be a local unit or an international standard unit. As per our user interface standards, there are also ‘Submit’, ‘Edit’, and ‘Remove’ buttons and a data grid viewer that act in the same way as those seen in the previous panels. 3.8 Package Panel Design The ‘Package’ panel is the first of the grouping panels. Its use is simply to reduce repetition for the user. The user can enter a name in the name field. The options for the ‘Depreciable’, ‘Supply’, and ‘Labor’ drop down boxes are automatically pulled from their corresponding panels. By clicking the ‘Submit’ button the user will add the name to the list of packages in the ‘Package Name’ list box and it will also add any items entered in the depreciable, supply, and labor drop down boxes in the ‘Package Content’ list box. The user can also add additional items to a package by clicking the ‘Add’ button next to the item he/she wants to add. 3.9 Crop Panel Design 9 Design Document The ‘Crop’ panel is very similar to the ‘Package’ panel, a slight difference is there are tabs to the right of the navigation pane which let the user choose how to categorize his/her crops, such as ‘Commercial’, ‘Non-commercial’, and ‘Green House’. When the user enters the first crop name it changes the first tab’s name to that item and allows the user to add packages, depreciable items and supplies. The user must also enter three dates, the ‘Begin Crop Date’ which is the day the user plants the crop, the ‘Begin Harvest Day’ which is the expected first day of harvest, and the ‘End Harvest Day’ which is the expected last day of harvest. Then the user must enter the estimated average price of the product and the type of monetary unit. As the user adds items to the crop they will be available in the data grid view under the input panel. By clicking ‘New Crop’ a new tab will appear and you can add another crop. The ‘Remove’ button will delete the currently selected tab. 3.10 Production Panel Design The ‘Production’ panel is the first of the output panels. There are two tabs on this panel dividing the input in to field and green house. It shows a large table that pulls data from the previous forms. There are eight fields on this data grid view, they are: Crop, Area, Days, Total Production, Price, Gross Sales, Production Cost, and Net Return (of the crop), several of these fields are calculated based on information the user had given earlier in the program. 3.11 Sales Panel Design 10 Design Document The ‘Sales’ panel is another panel that performs calculations for the user. After taking some user input, it makes predictions on the amount of money it will cost the user to sell an item (also known as the cost to market). The user must enter the driver pay per trip, pay per km, sales commission, average load hauled, average distance per trip, and fuel consumption. Then, once the user presses the ‘Calculate’ button a chart is filled in with the crop Name, Gross Sales (as shown on the Production panel), Transportation Cost (which is calculated from the information the user just entered), and Net Revenue. 3.12 Distribution of Revenue Panel Design The ‘Distribution of Revenue’ panel gets its information from the ‘Crop’ panel. It places each crop in the left data grid, directly across from that in the right data grid view, the user is shown when he/she will be able to harvest and receive money for that crop. There is also a tab allowing the user to view the data grids with the corresponding local weight unit, letting the user view the data either by money or weight produced. 4.0 Database 11 Design Document 4.1 Database Elements Our database will be comprised of several different items and relationships. Land, Supplies, Depreciable Items, and Labor are the major inputs. Crops and Packages take entries from these inputs and allow the user to group them. Land is an entity which is comprised of registration, ownership, area, and type. Where registration is simply an id, ownership is the person who owns the land, area is the size of the land, and type is what the land is used for. Supplies are comprised of a description, category, type, and value. The description gives a brief description of the item and what it is for. The category helps the user later while group grouping items, and corresponds to the type of the supply. The value of a supply is how much that item costs to buy. Depreciable Items are large items, such as tractors and equipment, the value of these items decreases over time. Depreciable Items are comprised of a description, category, 12 Design Document type, depreciation rate, and value very similar to supplies, the main difference being that depreciable items have a depreciation rate as well. The depreciation rate is how quickly an item loses its value. Labor is another entity in our database, which is comprised of cost, labor type, description, and category. The cost of labor is the amount of money a person doing that job makes. Labor type is the job that person holds, for example tractor diver. Description is what these people do for their job. And category is a way to group jobs. The Package entity is a way to group the Supplies, Labor, and Depreciation, which are different types of items, together to reduce user repetition. Package is simply comprised of a name and description field. As an example, many crops require plowing, so the user can make a plow package that consists of a tractor driver, a tractor, and a plow. Crop is the final grouping method, it stores the crop type, area, and all of the packages that it is made up of. Sales is a class which stores the users input about the costs for the user to sell the crop. The class includes the pay for the driver, load being shipped in tons, no. of trips, sales commission, pay by distance and the average distance per trip. 4.2 Database Relationships The relationships in our entity diagram would best be explained by starting with the inputs: Supplies, Depreciable Items, and Labor all have a zero-to-many relationship with the Package entity and a many-to-many relationship with the Crop entity. The Package entity has a zero-to-many relationship with Crop and Crop has a one-to-many relationship with package. The Package entity has many relationships with labor 13 Design Document supplies and depreciable Items. The Land entity is set to the side in our diagram because it only has a one-to-many relationship with the Crop entity and Crop has a oneto-many relationship with the Land entity. The sales panel connects to the crop with a one to one and the crop has a one-one relationship with sales. 14