Soo Park and Janine Aquino

Slides:



Advertisements
Similar presentations
An Introductory Tutorial. Background and Purpose.
Advertisements

Web Applications Development Using Coldbox Platform Eddie Johnston.
Oct 31, 2000Database Management -- Fall R. Larson Database Management: Introduction to Terms and Concepts University of California, Berkeley School.
Tina design review Main design decisions. Top level modules. Responsibilities. Phases A & B. Test plan. Time table.
Usage of the Python Programming Language in the CMS Experiment Rick Wilkinson (Caltech), Benedikt Hegner (CERN) On behalf of CMS Offline & Computing 1.
Microsoft Access Ervin Ha.
Microsoft Access Database software. What is a database? … a database is an organized collection of data. A collection of data of similar information compiled.
CS-EE 481 Spring Founders Day, 2005 University of Portland School of Engineering Project Pocket Gopher Conversational Learning Agent Team Josh Jones.
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
® IBM Software Group © 2009 IBM Corporation Rational Publishing Engine RQM Multi Level Report Tutorial David Rennie, IBM Rational Services A/NZ
Visual Linker Final presentation.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Mapping to Relational Databases Presented by Ramona Su.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
Be “GUI ready” developing in RPG by Robert Arce from PrismaTech. Be “GUI ready” developing in RPG-ILE Presented by: Robert Arce.
Start-SPPowerShell – Introduction to PowerShell for SharePoint Admins and Developers Paul BAker.
Data quality & VALIDATION
Architecture Review 10/11/2004
Configuration Management using Ansible
Team MITRE Sentinel Final Presentation
Project Management: Messages
Simulation Production System
Web Routing Designing an Interface
Modern Systems Analysis and Design Third Edition
GO! with Microsoft Office 2016
Microsoft Access 2013 Bobby Wan.
Access Tutorial 1 Creating a Database
CSCI-235 Micro-Computer Applications
Physical Data Model – step-by-step instructions and template
Software Specification Tools
Developing Forms and Subforms.
Computer Aided Software Engineering (CASE)
Modern Systems Analysis and Design Third Edition
Excise Tasks CS 4640 Programming Languages for Web Applications
System Design.
GO! with Microsoft Access 2016
CH#3 Software Designing (Object Oriented Design)
Databases.
RELATIONAL DATABASE MODEL
Chapter 2: Operating-System Structures
SharePoint Saturday Omaha April 2016
MS Access: Creating Advanced Form Design
Intro To Design 1 Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department.
Access Tutorial 1 Creating a Database
MODULE 7 Microsoft Access 2010
File Systems and Databases
Preparing your Data using Python
Modern Systems Analysis and Design Third Edition
Preparing your Data using Python
ARCH-1: Application Architecture made Simple
CIS16 Application Programming with Visual Basic
Modern Systems Analysis and Design Third Edition
Manuscript Transcription Assistant Initiative
NASA/ Johnson Space Center
Database Design Hacettepe University
Background Prepared by: Mr. Mahmoud Rafeek Alfarra.
Access Tutorial 1 Creating a Database
Problem Statement and Significance
Rational Publishing Engine RQM Multi Level Report Tutorial
Access Tutorial 1 Creating a Database
FileMaker Pro: Using Advanced Features & Working with Layouts
Exploring Microsoft® Office 2016 Series Editor Mary Anne Poatsy
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Microsoft Access Date.
Unit J: Creating a Database
Modern Systems Analysis and Design Third Edition
Visual Basic for Applications: Introduction
Unit – V Data Controls.
Information system analysis and design
Presentation transcript:

Soo Park and Janine Aquino Development of a Python GUI Interface to a YAML configuration File for Propagation of Largely Identical Database Records between Field Project Entries Soo Park and Janine Aquino

Background and Context EOL provides data management services to scientific field projects that occur all over the world Instrument PIs (Principal Investigators) collect data and provide that data to EOL EOL makes this data available to future users Takes about 1 hour per dataset to load

Our task.. Create a GUI tool to load datasets into the EOL Metadata Database Decrease the time to load a dataset from 1 hour to 15 minutes. Make the overall dataset loading process easier Increase consistency between similar data Easy to add new fields

Why Python & YAML We decided to create a Python GUI tool that creates or modifies YAML formatted configuration files (YAML stands for: YAML Ain’t Markup Language) Python is a scripting language that has good support for GUI development. Python is object-oriented YAML is a powerful, human-readable data serialization language

Why Python & YAML (cont) Our primary developer (Soo) is new to software engineering, so the following were key criteria Python and YAML are both easy to work with for beginners Prototype GUIs quickly using qt designer There are other python/QT developed software in-house to learn from YAML is used throughout EOL/CDS

Code Structure Model-View-Controller(MVC) architecture was used to structure the code MVC architecture is effective at separating the Model(data processing) from the View(GUI) Import external modules to perform repetitive tasks

Code Structure The model is stored within YAML-formatted files. Adding a new parameter to the GUI is very easy. Simply add the field name and type to two YAML-formatted GUI configuration files. Tab Separator Single Line Fields

Code Structure Simply add a line to a YAML-formatted message file to display a tooltip The GUI is created by reading the YAML and creating fields in the order they occur, so order is important.

Code Structure Five different field types: single line, multiple lines, drop box, check box, and date and time. The GUI incorporates all five field types and can read them from, or write them to, a YAML file in the format required to be loaded to the metadata database.

Code Diagram

What Worked Well PyYaml, a YAML implementation for Python, is effective and easy to use YAML files are parsed into Python dictionaries Implementing PyQt4(Python bindings for Qt) is straightforward

What was hard & what we learned MVC architecture YAML does not keep data ordered Making the code user-friendly

Demo ./load_data_proj

Demo

Demo

Demo If the dataset does not pass the checks:

Conclusion Python is a great object oriented language that effectively implements a GUI.

Thank you! Questions?