Skip to content

A budget execution & data analysis tool for federal budget analysts with the environmental protection agency based on WPF, Net 6, and is written in C#.

Notifications You must be signed in to change notification settings

is-leeroy-jenkins/Badger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Download β€’ Documentation β€’Build β€’ License

An open source budget execution & data analysis application for federal analysts developed in C# using WPF and released under the MIT license

Features

  • Mutliple data providers.
  • Charting and reporting.
  • Internal web browser, Baby, with queries optimized for searching .gov domains.
  • Pre-defined schema for moret than 100 environmental data models.
  • Editors for SQLite, SQL Compact Edition, MS Access, SQL Server Express.
  • Excel-ish UI on top of a real databases.
  • Mapping for congressional earmark reporting and montioring of polluction sites.
  • Finanical data bound to environmental programs and statutory authority.
  • Ad-hoc calculations.
  • Add agency/region/division-specific branding.
  • The winforms version of Badger is Sherpa

Database Providers

Databases play a critical role in environmental data analysis by providing a structured system to store, organize, and efficiently retrieve large amounts of data, allowing analysts to easily access and manipulate information needed to extract meaningful insights through queries and analysis tools; essentially acting as the central repository for data used in data analysis processes. Bubba provides the following providers to store and analyze data locally.

  • SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.
  • SQL CE is a discontinued but still useful relational database produced by Microsoft for applications that run on mobile devices and desktops.
  • SQL Server Express Edition is a scaled down, free edition of SQL Server, which includes the core database engine.
  • MS Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools. more here

System requirements

  • You need VC++ 2019 Runtime 32-bit and 64-bit versions

  • You will need .NET 6.

  • You need to install the version of VC++ Runtime that Baby Browser needs. Since we are using CefSharp 106, according to this we need the above versions

Documentation

Code

  • Controls - main UI layer with numerous controls and related functionality.
  • Styles - XAML-based styles for the Bubba UI layer.
  • Enumerations - various enumerations used for budgetary accounting.
  • Extensions- useful extension methods for budget analysis by type.
  • Clients - other tools used and available.
  • Ninja - models used in EPA budget data analysis.
  • IO - input output classes used for networking and the file systemm.
  • Static - static types used in the analysis of environmental budget data.
  • Interfaces - abstractions used in the analysis of environmental budget data.
  • bin - Binaries are included in the bin folder due to the complex Baby setup required. Don't empty this folder.
  • Badger uses CefSharp 106 for Baby Browser and is built on NET 8
  • Badger supports x64 specific builds
  • bin/storage - HTML and JS required for downloads manager and custom error pages

Generative AI

Vectorization is the process of converting textual data into numerical vectors and is a process that is usually applied once the text is cleaned. It can help improve the execution speed and reduce the training time of your code. Bubba provides the following vector stores on the OpenAI platform to support environmental data analysis with machine-learning:

  • Federal Appropriations - vectorized data set of federal appropriations available for fine-tuning learning models
  • Federal Regulations - vectorized dat aset of federal, financial regulations available for fine-tuning learning models

Data Tools

The tools used in environmental data analysis & buget execution play a crucial role by facilitating the collection, cleaning, organization, analysis, and interpretation of large datasets, allowing users to extract meaningful insights and make informed decisions by transforming raw data into actionable information through features like statistical analysis, data visualization, and machine learning algorithms. Some of the tools offered by Bubba include the following:

  • Datagrids
  • Pivot Tables
  • Plotting

Dashboards

Environmental data dashboards providing views that help users explore and analyze complex environmental data to make informed decisions, manage operations and research.

  • Status Of Programs
  • OMB Apportionments
  • MAX A-11

Visualization Tools

Data analysis in environmental science is used for a wide range of applications including: climate change analysis, biodiversity assessment, pollution detection, natural disaster management, land use monitoring, ecosystem health evaluation, and identifying environmental trends by utilizing techniques like spatial analysis, time series analysis, and statistical modeling, often leveraging satellite imagery and remote sensing data to analyze large datasets effectively.

  • 3D Charting
  • Pivot Charts
  • Plotting & Graphs

The Spreadsheet Interface.

An excel inspired control that allows you to create, edit, view and format the Microsoft Excel files without excel installed. It provides absolute ease of use UI experience with integrated ribbon to cover any possible business scenario.

Spreadhsheet Features

  • Ribbon – Ribbon integrated with organically enhanced UI experience.
  • Editing and Selection - Interactive support for editing and cell selection in workbook.
  • Formulas - Provides support for 400+ most widely used formulas which any business user needs and allows you to add, remove and edit the formulas like in excel.
  • Name Manager – Supports the name ranges in the formulas. By using the name ranges, you can specify the name of the cell range.
  • Data validation – Provides support to ensure the data integrity by enforcing end users to enter valid data into the cells and if entered data does not meet the specified criteria, and error message is displayed.
  • Floating Cells - Provides support for floating cell mode that is when the text exceeds the length of the cell, it will float the text to the adjacent cell.
  • Merge Cells - Merge two or more adjacent cells into a single cell and display the contents of one cell in the merged cell.
  • Conditional Formatting - Provides support for excel compatible conditional formatting and allows you to apply formats to a range of cells depending on the value of cells or formula that meet specific criteria.
  • Import/Export data

Maps.

Visualize data about facilities or specific sites subject to environmental regulation. The EPA's Geospatial Data Access Project provides downloadable files of these facilities or sites in the following formats: Extensible Markup Language (XML), Keyhole Markup Language (KML), ESRI Geodatabase, and Comma Separated Value (CSV). Within the file is key facility information for use in mapping and reporting applications.

  • Congressional earmark reporting
  • Monitor pollution site remediation costs

Calculations

  • Perform ad-hoc calculations directly on bound data.
  • Avoid errors caused by toggling to and from different applications to add two numbers.

  • Quick access to the full functionality of the widows 10 calculator.

Federal Calendar

Every year, the U.S. Congress begins work on a federal budget for the next fiscal year. The federal government’s fiscal year runs from October 1 of one calendar year through September 30 of the next. A fiscal year (FY) is a 52- or 53-week (or, alternatively, a 12-month) period that companies and governments use for taxing or accounting purposes. Fiscal years are most commonly used by entities that depend on a cycle that doesn't correspond to the calendar year.

  • Calculation based on the federal fiscal year beginning Oct 1.
  • Compatible with full-time equivalency metrics.
  • Ad-hoc analysis of variable periods of availability.

Create, build, and maintain ad-hoc documents with Orca to provide real-time information for others via the web.

  • Single or multi-page documents
  • Present and access media (*.mp3, *mp4, etc)

  • Network communications (HTTP, HTTPS, FTP, and UDP)
  • HTML5, CSS, and Javascript

Environmental Program Analysis

EMAP was a research program to develop the tools necessary to monitor and assess the status and trends of national ecological resources. Data sets generated in the course of EMAP's research are available to be searched and downloaded. The objectives of REMAP are to evaluate and improve EMAP concepts for state and local use, assess the applicability of EMAP indicators at differing spatial scales, and demonstrate the utility of EMAP for resolving issues of importance to EPA Regions and states. REMAP data are available online like EMAP data, but have smaller spatial and temporal scales.

The STORET Data Warehouse is U.S. EPA's repository of the water quality monitoring data collected by water resource management groups across the country. These organizations, including states, tribes, watershed groups, other federal agencies, volunteer groups and universities, submit datasets to the STORET Warehouse in order to make them publically accessible.

WSA is a survey of the biological condition of small streams throughout the U.S. conducted by the U.S. EPA in collaboration with states and tribes. The first WSA in 2004-2005 sampled 1,392 sites selected at random to represent the condition of all streams in regions that share similar ecological characteristics. Participants used the same standard methods at all sites, to ensure results that are comparable across the nation.


Some studies

Document Viewer

The PDF Viewer control supports viewing, reviewing, and printing PDF files in the WPF applications. The thumbnail, bookmark, hyperlink, and table of contents support provide easy navigation within and outside the PDF files. The form-filling support provides a platform to fill, flatten, save, and print PDF files with AcroForm. The PDF files can be reviewed with the abundantly available annotation tools.

  • Library of legal documentation used in evnironmental data analysis.
  • Interact with, view and access PDFs outside the application

SQL Editors

Common SQL operations used in data analysis: Filtering data: Using the WHERE clause to select specific rows based on conditions. Aggregation: Employing functions like SUM, AVG, COUNT, MIN, MAX to calculate summary statistics on groups of data. Joining tables: Combining data from multiple tables using JOIN operations to create a comprehensive view. Subqueries: Using nested queries to filter data based on results from another query.

SQLite

A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine that's open source and hand's-down one the best tools available.

SQL Compact Edition

A discontinued but super useful relational database produced by Microsoft for applications that run on mobile devices and desktops.

SQL Server Express

A free edition of MS' flagship database SQL Server, which includes the core database engine.

Baby

A light-weight, full-featured, open source version of Google Chrome web-browser written in C#. Baby embraces modern web standards, and supports HTML5, JavaScript, CSS3 and HTML5 audio/video elements. 3D content is supported via WebGL which uses OpenGL/DirectX for hardware accelerated rendering. Baby includes embedded modules for PDF, web page printing and the WebKit Inspector (developer tools). Baby has no external dependencies.

  • Stand-alone web browser built with the Chromium Embedded Framework
  • Ad-hoc searches with customized pop-up input.
  • customized search using Google's engine to query across multiple government research domains
  • HTML5, CSS3, JS, HTML5 Video, WebGL 3D, WebAssembly, etc

  • Tabbed browsing

  • Address bar (also opens Google)

  • Back, Forward, Stop, Refresh

  • Developer tools

  • Search bar (also highlights all instances)

  • Download manager

  • Custom error pages

  • Custom context menu

  • Easily add vendor-specific branding, buttons or hotkeys

  • View online & offline webpages

Hotkeys

Hotkeys Function
Ctrl+T Add a new tab
Ctrl+N Add a new window
Ctrl+W Close active tab
F5 Refresh active tab
F12 Open developer tools
Ctrl+Tab Switch to the next tab
Ctrl+Shift+Tab Switch to the previous tab
Ctrl+F Open search bar (Enter to find next, Esc to close)

What is WebAssembly?

WebAssembly or WASM is a "binary instruction format for a stack-based virtual machine [...] designed as a portable compilation target for programming languages, enabling deployment on the web". Said another way it's an intermediate bytecode format that can shipped to browsers to be run. This is notable because as an intermediate format it enables language designers to target browser development from languages beyond JavaScript. Many languages today have compilers available that will output WASM as a target some notable examples are C/C++, C#, Rust, Zig. Beyond that the ubiquity of javascript engines there's a large number of environments that have suddenly become possible WASM targets.

What is WebGL?

WebGL a 3D graphics API based on OpenGL ES itself a subset of the OpenGL graphics API designed for mobile or embedded applications. WebGL is notable because it offers a powerful, cross platform, 3D graphics target for the browser. For many targets the browser is able to use 3D acceleration and run directly on the computer's GPU which provides a much high performance graphics target than you otherwise have access to from the browser APIs. There are examples of rich 3D environments, games, and 3D accelerated applications that have shipped to browsers enabled by this technology.

YouTube

Google Maps

Popup Search Bar

Downloads Tab

Developer Tools

CefSharp Requirements

The binaries directory must contain these required dependencies:

  • libcef.dll (Chromium Embedded Framework Core library)
  • icudtl.dat (Unicode Support data)
  • chrome_elf.dll(Crash reporting library)
  • snapshot_blob.bin, v8_context_snapshot.bin (V8 snapshot data)
  • locales\en-US.pak, chrome_100_percent.pak, chrome_200_percent.pak, resources.pak,
  • d3dcompiler_47.dll
  • libEGL.dll
  • libGLESv2.dll

These are technically listed as optional, but the browser is unlikely to function without these files.

  • CefSharp.Core.dll, CefSharp.dll
  • CefSharp.Core.Runtime.dll
  • CefSharp.BrowserSubprocess.exe
  • CefSharp.BrowserSubProcess.Core.dll

These are required CefSharp binaries that are the common core logic binaries of CefSharp (only 1 required).

  • CefSharp.WinForms.dll
  • CefSharp.Wpf.dll
  • CefSharp.OffScreen.dll

By default CEF has it's own log file, Debug.log which is located in your executing folder. e.g. bin

πŸ™ Acknowledgements

Badger uses the following projects and libraries. Please consider supporting them as well (e.g., by starring their repositories):

CefSharp.WPF.Core .NET (WPF/Windows Forms) bindings for the Chromium Embedded Framework
Epplus EPPlus-Excel spreadsheets for .NET
Google.Api.CustomSearchAPI.v1 Google APIs Client Library for working with Customsearch v1
LiveCharts.Core Simple, flexible, interactive & powerful charts, maps
Microsoft.Interop.Outlook This an assembly you can use for Outlook 2013/2016/2019 COM interop
ModernWpfUI Modern styles and controls for your WPF applications
RestoreWindowPlace An easy to use window restore package
System.Data.SQLite .NET Framework Data Provider for SQLite.
System.Data.SqlCe .NET Framework Data Provider for SQL Compact Edition.
System.Data.OleDb .NET Framework Data Provider for OLE DB.
System.Data.SqlClient A collection of loading indicators for WPF
MahApps.Metro UI toolkit for WPF applications
ToastNotifications.Messages.Net6 Toast notifications for WPF
ToastNotifications.Messages Toast notifications for WPF
Syncfusion 24.1.41 Custom Controls Used in Badger

Privacy Policy

This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.

Bubba has integrated the following services for additional functions, which can be enabled or disabled at the first start (in the welcome dialog) or at any time in the settings:

  • api.github.com (Check for program updates)
  • ipify.org (Retrieve the public IP address used by the client)
  • ip-api.com (Retrieve network information such as geo location, ISP, DNS resolver used, etc. used by the client)

πŸ“ License

Bubba is published under the MIT General Public License v3.

About

A budget execution & data analysis tool for federal budget analysts with the environmental protection agency based on WPF, Net 6, and is written in C#.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published