Diagram of Importer Flow. Step1: Get CSV/EXCEL file. Step2: Get user's categorizations, Step3: Confirm, Done
College of Engineering Unit: 
Electrical Engineering and Computer Science
Project Team Member(s): 
Andrew Johnson, Payton Olson, Tae Soo Kim, Gretel Rajamoney and Kwanghyuk Kim
Physical Location at Expo: 
Kelley Engineering Center
Project ID: 
Project Description: 

Farmers of the Northwest are annoyed by annual statement uploads. Transferring their financial data from their spreadsheet into the accounting website AgBiz Logic™ is tedious. Thus, our project automated as much of the process as possible. 

AgBiz Logic™ is a website designed to help farmers organize their financial data and make financial decisions. AgBiz Logic™ is a part of a suite of economic, financial, and environmental decision tools aimed at easing the transition for end users from physical to digital bookkeeping and budgeting. The site takes financial data in the form of income and expense documents as input, and produces a budget for the user based on their data. Its primary users are local farmers in the Pacific Northwest who don't want to hire a dedicated accountant but still want help handling finances. 

Our team created a CSV/Excel spreadsheet importer for AgBiz Logic™. It takes a user's income and expenses as two files. Using an algorithm created with machine learning, the importer will attempt to automatically sort all the items in the spreadsheets into categories AgBiz Logic™ recognizes. However, not everything in a spreadsheet can be categorized perfectly. If the importer is unsure about something in the spreadsheet, it will display it in the user-categorization step. From there, the user can manually categorize the few items not yet categorized. Afterwords, the user is taken to a confirmation page, and their financial data is submitted into the AgBiz Logic™ database.

The importer is going to be part of the AgBiz Logic™ website, so it was written in the web framework Django with Python. Django manages the server-side functionality of the website. All of the elements of the website (HTML, CSS, JavaScript) are generated on the Django server and sent to the user. Using Python on the server side, the user's files are parsed and fed to the categorizer. The categorizer contains the algorithm for sorting individual items in the spreadsheet. 

The algorithm created with machine learning used sets of example financial data to train. After it had trained with the data sets, the algorithm was stored as a large dictionary with possible user labels as keys and the AgBiz Logic™ categories as values. Each item in the user's database would be compared with this dictionary. If an item's label is a match or a close match to a key in the dictionary, the item would be sorted into the category mapped to that key. If a user's label is not in the dictionary or simply not close enough to a key in the dictionary, the item is marked as uncategorized and sent to the user-categorization step to be manually sorted. 

The user-categorization step implements a card-view. There is a grid of boxes called cards representing the unsorted items from the user's spreadsheet. The user can click on each card to bring up a modal where they can select a category for the item. Once the user is satisfied with their categorizations, the user is brought to a confirmation page with the final categorizations and totals for each category. After the categorization page, the user's data is submitted to the AgBiz Logic™ database. 

Project Communication Piece(s): 
PDF icon This is the poster we are displaying at the in-person expo1.08 MB
This team is open to networking
This team is open to collaboration opportunities
This team is open to employment offers